什么是Listener ?
Listener提供了一种监控机制,让某些特定的事件发生的时候,去执行我们预期的代码。
Listener是interface,只要有类实现这个接口,并且在web.xml中注册就可生效。
什么时候会被Listen?
有三种存放位置类型:request、session、context
有两种情景会被触发:
1.当存放位置本身被创建或者被销毁的时候
2.当存放位置的内容被创建(added)、销毁(removed)、修改(replaced)时候
有几种Listener?
触发的第一种情况:
ServletRequestListener
1.requestInitialized(ServletRequestevent ev) 当request进来的时候执行
2.requestDestroyed(ServletRequestevent ev) 当request处理完要销毁前执行
HttpSessionListener
1.sessionCreated(HttpSessionEvent ev) - 当Session被建立的时候
2.sessionDestroyed(HttpSessionEvent ev) - 当Session time out或者被执行session.invalidate()。基本上就是被销毁前执行
ServletContextListener
1.contextInitialized(ServletContextEvent ev) - 当Web container启动或者部署WAR的时候执行
2.contextDestroyed(ServletContextEvent ev) - 当Web container要停止的时候
触发的第二种情况:
ServletRequestAttributeListener/HttpSessionAttributeListener/ServletContextAttributeListener
这些Listener关注的是内容的变化,当发生相应变化的时候执行相应的方法。xxx分别代表ServletRequest、HttpSession和ServletContext。
1.xxxAdded()
2.xxxReplaced()
3.xxxRemoved()
题外话:low coupling 低耦合
原文:http://www.cnblogs.com/luyu1993/p/7124001.html