本文共 2729 字,大约阅读时间需要 9 分钟。
HttpSessionListner监听的是HttpSession域对象的创建与销毁
HttpSessionListener的方法:
监听器:
package pers.zhang.listener; /** * @author zhang * @date 2019/9/19 - 23:09 */import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class MySessionListener implements HttpSessionListener{ //计数器 static int count = 0; public synchronized void sessionCreated(HttpSessionEvent se) { //session创建,计数器+1 count++; //存入ServletContext域中 se.getSession().getServletContext().setAttribute("count",count); System.out.println("增加一人,现有" + count + "人"); } public synchronized void sessionDestroyed(HttpSessionEvent se) { //session销毁,计数器-1 count--; //存入ServletContext域中 se.getSession().getServletContext().setAttribute("count",count); System.out.println(); System.out.println("减少一人,现有" + count + "人"); }}
注册:
pers.zhang.listener.MySessionListener
启动服务器,访问两次,控制台输出:
增加一人,现有1人增加一人,现有2人
ServletRequestListener监听的是ServletRequest域的创建与销毁。
ServletRequest的生命周期
创建:每一请求都会创建request 销毁:请求结束ServletRequestListener的方法
监听器:
package pers.zhang.listener;import javax.servlet.ServletRequestEvent;import javax.servlet.ServletRequestListener;import java.util.Date;/** * @author zhang * @date 2019/9/20 - 0:07 */public class MyServletRequestListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent servletRequestEvent) { System.out.println("requestDestroyed" + "," + new Date()); System.out.println("当前訪问次数:" + servletRequestEvent.getServletContext().getAttribute("count")); } @Override public void requestInitialized(ServletRequestEvent servletRequestEvent) { System.out.println("requestInitialized" + "," + new Date()); Object count = servletRequestEvent.getServletContext().getAttribute("count"); Integer cInteger = 0; if (count != null) { cInteger = Integer.valueOf(count.toString()); }else{ count = 0; } System.out.println("历史訪问次数::" + count); cInteger++; servletRequestEvent.getServletContext().setAttribute("count", cInteger); }}
注册:
pers.zhang.listener.MyServletRequestListener
启动服务器并访问,控制台输出:
requestInitialized,Fri Sep 20 00:19:00 CST 2019历史訪问次数::0requestDestroyed,Fri Sep 20 00:19:01 CST 2019当前訪问次数:1
再次访问,控制台输出:
requestInitialized,Fri Sep 20 00:21:31 CST 2019历史訪问次数::1requestDestroyed,Fri Sep 20 00:21:31 CST 2019当前訪问次数:2
转载地址:http://kisqb.baihongyu.com/