JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量
程序员文章站
2022-03-07 12:12:00
在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 主要作用是:记录当前在登录人数。注意,登录是指注册成为合法用户并成功登录的人。
上一篇: 解决php 反序列化返回false