监听器种类
1. ServletContextListener
/**
*可从servletContextEvent中获取当前applicationContext对象,从而进行操作,只在当期服务器启动时执行
*/
public void contextInitialized(ServletContextEvent servletContextEvent)
/**
*可从servletContextEvent中获取当前applicationContext对象,从而进行操作,仅在服务器正常关闭前执行,可以与init方法配合实现类似统计服务器运行时间等功能
*/
public void contextDestroyed(ServletContextEvent servletContextEvent)
2. ServletRequestListener
/**
*当前请求结束时执行
*/
public void requestDestroyed(ServletRequestEvent servletRequestEvent)
/**
*当前请求发起时执行,可从servletRequestEvent获取当前请求,从而获取请求中的参数,以及其他信息当然也可以做相应的操作
*/
public void requestInitialized(ServletRequestEvent servletRequestEvent)
3. HttpSessionListener
/**
*仅在当前回话启动时执行,可从httpSessionEvent中获取当期回话,从而获取当前会话的信息,当然也可以对当前会话做相应的操作,可以实现类似当前在线人数的统计实现等
*/
public void sessionCreated(HttpSessionEvent httpSessionEvent)
/**
*仅在当前回话结束时执行,可以做相应的资源释放等操作
*/
public void sessionDestroyed(HttpSessionEvent httpSessionEvent)
4. ServletContextAttributeListener
/**
*在当期程序运行期间,如果有向application中添加属性的操作,则会触发该监听器,通过servletContextAttributeEvent可以获取发生改变的属性名,以及属性值
*/
public void attributeAdded(ServletContextAttributeEvent servletContextAttributeEvent)
/**
*与added方法类似,在删除属性的时候触发
*/
public void attributeRemoved(ServletContextAttributeEvent servletContextAttributeEvent)
/**
*与added方法类似,在修改属性的时候触发
*/
public void attributeReplaced(ServletContextAttributeEvent servletContextAttributeEvent)
5. HttpSessionAttributeListener
/**
*与ServletContextAttributeListener中类似,只是监控对象变为当前session中的属性
*/
public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent)
public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent)
public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent)
6. ServletRequestAttributeListener
/**
*同样与ServletContextAttributeListener中类似,但是监控对象变为当前request中的属性
*/
public void attributeAdded(ServletRequestAttributeEvent servletRequestAttributeEvent)
public void attributeRemoved(ServletRequestAttributeEvent servletRequestAttributeEvent)
public void attributeReplaced(ServletRequestAttributeEvent servletRequestAttributeEvent)
7. HttpSessionBindingListener
/**
*与以上监听器不同无需注册,只需在一个bean中实现HttpSessionBindingListener,在bean中实现以下两个方法即可
*/
/**
*绑定
*/
public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent)
/**
*解除绑定
*/
public void valueUnbound(HttpSessionBindingEvent
8.HttpSessionActivationListener
/**
*与7类似,同时需要实现Serializable接口
*/
/**
*钝化(序列化)
*/
public void sessionWillPassivate(HttpSessionEvent httpSessionEvent)
/**
*活化化(反序列化)
*/
public void sessionDidActivate(HttpSessionEvent httpSessionEvent)
7、8使用方法都是直接将属性绑定到一个实现相应接口的bean的实例中即可。类似
session().setAttribute("user", new User())
8 主要是用在服务器终端后会话信息的保存
网友评论