HttpSessionListener接口
MySessionListener
public class MyHttpSessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent arg0) { System.out.println(arg0.getSource() + "被销毁了"); } public void sessionDestroyed(HttpSessionEvent arg0) { System.out.println(arg0.getSource() + "被创建了"); } } |
注册这个监听器
问:这两句打印什么时候会输出?
直接访问index.jsp或index.html会不会输出
引申出:session对象何时被创建???
答:访问index.html时不会创建session,但是jsp文件被访问是会创建session,因为session对象在getSession()方法被调用是才会创建,而jsp文件被译成servlet时java代码中有此方法的调用
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
。。。
如jsp页面中的page命令如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" session="false" %>
则servlet中不会调用getSession()
刷新jsp页面会不会打印
开心的浏览器访问jsp会不会打印
浏览器被关闭会不会摧毁session??不会,因为session默认存在30分钟
HttpSessionListener的作用:统计在线人数