Servlet监听器

来源:互联网 发布:php数据管理系统 编辑:程序博客网 时间:2024/06/06 20:39

功能是负责监听WEB的各种操作,当相关的事件触发之后将产生事件,并对此事件进行处理,在WEB中可以对application、session、request三种操作进行监听。

1.session监听

针对于session的监听操作提供了三个接口:HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener

1.1.session状态监听:HttpSessionListener接口,当需要对创建或销毁session的操作进行监听的时候,如下图

@WebListenerpublic class MyHttpSessionListener implements HttpSessionListener {@Overridepublic void sessionCreated(HttpSessionEvent se) {System.out.println("session創建" + se.getSession().getId());}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {HttpSession session =se.getSession(); session.invalidate();System.out.println(session.getCreationTime()); // 获取session的创建时间System.out.println(session.getLastAccessedTime()); // 获取上次与服务器交互时间System.out.println(session.getMaxInactiveInterval() );//获取session最大的不活动的间隔时间,以秒为单位120秒System.out.println("session銷燬" + se.getSession().getId());}

当一个新用户打开一个动态页时,服务器是会为新用户分配session,并且触发HttpSessionListener接口中的sessionCreated()事件,但是在用户销毁时却有两种不同的方式来触发sessionDestroyed()事件:

方式一:调用HttpSession接口的invalidate()方法,让一个session失效。

方式二:超过了配置的session超时时间,session超时时间,可以直接在项目中的web.xml配置。

<!-- 设置超时时间 --> <session-config><session-timeout>1</session-timeout></session-config>
1.2.session属性监听:HttpSessionAttributeListener接口



0 0