在Servlet/JSP中除了ServletContextListener
外,还有ServletRequestListener
、HttpSessionListener
等监听器,可以监听请求、会话对象生命周期;ServletRequestAttributeListener
、HttpSessionAttributeListener
、ServletContextAttributeListener
可以监听属性的添加、删除或替换;HttpSessionBindingListener
、HttpSessionActivationListener
可以监听会话属性对象的绑定、删除。
生命周期监听器
所谓的生命周期监听器,就是可以在某个对象生成到被容器销毁之前,监听对象生命周期的状态变化。如在应用程序初始化或结束前,会分别调用contextInitialized()
与contextDestroyed()
方法,通过传入的ServletContextEvent
取得ServletContext
,以针对应用程序作出相对应的初始化或结束处理。
ServletContextListener
contextInitialized(sce: ServletContextEvent): void
contextDestroyed(sce: ServletContextEvent): void
ServletContextEvent
ServletContextEvent(source: ServletContext)
getServletContext(): ServletContext
如果想要在ServletRequest
(HttpServletRequest
)对象生成或结束时,做些相应动作,则可以实现ServletRequestListener
。
ServletRequestListener
requestInitialized(sre: ServletRequestEvent): void
requestDestroyed(sce: ServletRequestEvent): void
ServletRequestEvent
ServletRequestEvent(sc: ServletContext, request: ServletRequest)
getServletRequest(): ServletRequest
getServletContext(): ServletContext
如果想要在HttpSession
对象生成或结束时,做些相应动作,则可以实现HttpSessionListener
。
HttpSessionListener
sessionCreated(sre: HttpSessionEvent): void
sessionDestroyed(sce: HttpSessionEvent): void
HttpSessionEvent
HttpSessionEvent(source: HttpSession)
getSession(): HttpSession
一个HttpSessionListener
应用实例如下,假设有个应用程序在用户登录时会使用HttpSession
对象来进行会话管理:
//...
public class Login