首页 > 代码库 > servlet HttpSession 监听器

servlet HttpSession 监听器

一、Servlet中对象作用域

1、 ServletContext 上下文

应用服务器一启动就产生该对象,服务器关闭即销毁

作用于全局,所有Servlet ,相当于静态变量

2、 HttpSession 会话

客户端第一次请求产生,session过期销毁

作用于同一个客户端,相当于成员变量

3、 ServletRequest请求

一次请求产生一个对象,请求结束即销毁

作用于同一次请求,相当于局部变量

二、Servlet监听器

工作流程:

(1)确定事件源

(2)写一个类,实现Servlet监听器接口,并从写接口里面的方法

(3)在web.xml里注册建立联系,

  <listener>

  <listener-class>Servlet类事件源全路径</listener-class>

  </listener>

(4)事件源触发事件,监听器调用相应方法

1、ServletContext事件

(1)ServletContextListener接口,用于监听ServletContext的创建与销毁

  相应方法:

  void contextInitialized(ServletContextEvent e); ServletContext创建触发

  void contextDestroyed(ServletContextEvent e); ServletContext销毁触发

 

(2)ServletContextAttribyteListener接口,用于监听ServletContext属性状态

  相应方法:

  void attributeAdded(ServletContextEvent e); ServletContext属性加入触发

  context.setAttribute(“a”,”b”);

  void attributeRemovd(ServletContextEvent e); ServletContext属性删除触发

  context.removeAttribute(“a”,);

  void attributeReplaced(ServletContextEvent e); ServletContext属性修改触发

  context.setAttribute(“a”,”c”);

2、HttpSession事件

(1)HttpSessionListener接口,用于监听session的创建与销毁

相应方法:

void sessionCreated(HttpsessionEvent e) session 创建触发

void sessionDestroyed (HttpsessionEvent e) session 销毁触发

 

(2)HttpSession AttributeListener接口,用于监听session属性状态

相应方法:同ServletContextAttribyteListener

 

(3)HttpSessionBindingListener接口,用于监听绑定对象到Session属性监听

唯一一个不用在web.xml里注册的监听接口

绑定

Ression.setAttribute(“a”, 实现该接口的对象),

触发void valueBound(HttpSessionBindingEvent e);方法

移除:

Ression.removeAttribute(“a”),

触发void valueUnbound(HttpSessionBindingEvent e);方法

 

3、 SercletRequest事件

(1)ServletRequestListener接口 用于监听request的销毁与创建

(2)ServletRequesAttributetListener接口 用于监听request的属性状态