欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量

程序员文章站 2022-06-24 12:17:41
在Web项目中,我们对下面这几个监听器必须熟练的使用,它们的作用真的很大。熟练的使用后,可以使我们少绕弯路,少写很多代码、 事件源 监听对像的创建和销...

在Web项目中,我们对下面这几个监听器必须熟练的使用,它们的作用真的很大。熟练的使用后,可以使我们少绕弯路,少写很多代码、

事件源             监听对像的创建和销毁           监听对像上属性的添加和删除 
HttpSession       HttpSessionListener        HttpSessionAttributeListener - HttpSessionEvent

ServletRequest    ServletRequestListenr          ServletRequestAttributeListener - ServletRequestEvent

ServletContext   ServletContextListener      ServletContextAttributeListener - ServletContextEvent

监听ServletContext的创建和销毁:

开发步骤:
第一步:实现ServletContextListener接口。

implements ServletContextListener

第二步:实现两个方法。
contextInitialized
contextDestroyed

ServletContext对象(项目)创建:
public void contextInitialized(ServletContextEvent sce) 

ServletContext对象(项目)消亡:
public void contextDestroyed(ServletContextEvent sce) 

第三步:在web.xml中添加节点。
为什么要配web.xml呢,因为我们的项目在启动的时候就需要监听,不可能由项目内部的类来完成,所以这个实现得依靠服务器了(在这里是Tomcat)

位置是在:filter- mapping标签之后 | listener | servlet标签之前


       完整类名
    

这一点与swing中的添加监听有所区别。

第四步:测试
1、发布项目启动。
2、通过Tomcat管理控制台停止此项目。(注意,不要通过myEclipse直接停Java虚拟机了)

监听ServletContext上的属性变化:

实现ServletContextAttributeListener接口:

implements ServletContextAttributeListener

实现三个方法:

    添加属性时自动调用
    public void attributeAdded(ServletContextAttributeEvent e) {    
    }

    删除属性时自动调用
    public void attributeRemoved(ServletContextAttributeEvent e) {  
    }

    修改属性时自动调用
    public void attributeReplaced(ServletContextAttributeEvent e) { 
    }

配置web.xml:


        完整类名
    

例如:在jsp页面中:


实例-网站在线人信息与网页点击量

分析:

网页点击量:

记录一个网站的点击量。
当服务器关闭时,必须要保存到文件中或是数据库中去。
当服务器启动时,先从文件中读取并放到ServletContext。
在Filter中(用ServletRequestListenr也可以)记录访问量,每次访问都加1。

好处:信息不是太重要,没有必要每次用户访问都访问数据库或是操作文件。

在为不影响用户的速度感受,应该开始一个新的线程同去操作数据。
这样即使在后台使用同步技术,用户也不会感觉到速度很慢。

在线人信息:

利用HttpSessionListener,监听HttpSession的创建和销毁。
sessionCreated
sessionDestroyed

Session的默认有效时间为30分。可以通过配置的方式修改它的值。
可以调用session.invalidate方法销毁当前Session.

主要作用是记录当前所有在线人数,无论是用户还是游客。

HttpSessionAttributeListener
主要作用是:记录当前在登录人数。注意,登录是指注册成为合法用户并成功登录的人。