说明:本文章只讲解JavaWeb监听器的使用,不做详解。
三大域对象创建和销毁监听器一般实现了ServletContextListener、HttpSessionListener、ServletRequestListener这三个接口的监听器。
代码操作很简单,注意分为两个步骤(以Context级别的为例)
1.在项目的web.xml中配置(class里面是自定义监听的类)
<listener><!--自定义的监听器--> <listener-class>com.zpkj.space.utils.TestListener</listener-class> </listener>
2.创建该TestListener类,在contextInitialized方法中调用项目启动想要执行的方法就行了。
package com.zpkj.space.utils; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /** * Created by 李庆伟 on 2018/3/9. */ public class TestListener implements ServletContextListener{ //在项目启动时调用 public void contextInitialized(ServletContextEvent servletContextEvent) { } //在项目关闭时调用 public void contextDestroyed(ServletContextEvent servletContextEvent) { } }
这样JavaWeb监听器就Ok了。
如果是Session级别的,同时也要在web.xml配置
import javax.servlet.http.HttpSessionListener; /** * Created by 李庆伟 on 2018/3/9. */ public class TestListener implements HttpSessionListener { //在项目启动时调用 public void sessionCreated(HttpSessionEvent httpSessionEvent) { } //在项目关闭时调用 public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { } }
应用场景:
a.统计在线人数和在线用户
b.系统启动时加载初始化信息
c.统计站点访问
简单用例
package com.zpkj.space.utils; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /** * Created by 李庆伟 on 2018/3/9. * 统计在线人数 */ public class TestListener implements HttpSessionListener { public int count=0;//记录session的数量 public void sessionCreated(HttpSessionEvent arg0) {//监听session的创建 count++; arg0.getSession().getServletContext().setAttribute("Count", count); } public void sessionDestroyed(HttpSessionEvent arg0) {//监听session的撤销 count--; arg0.getSession().getServletContext().setAttribute("Count", count); } }