JavaWeb中监听器的事件源(ServletContext、HttpSession、ServletRequest、JavaBean)
1、ServletContext
- 生命周期监听:ServletContextListener
- 属性监听:ServletContextAttributeListener
2、HttpSession
- 生命周期监听:HttpSessionListener
- 属性监听:HttpSessionAttributeListener
3、ServletReques
- 生命周期监听:ServletRequestListener
- 属性监听:ServletRequestAttributeListener
4、JaveBean
- 感知监听:HttpSessionBindingListener
- 钝化活化监听:HttpSessionActivationListener
前3个都是域对象监听器,需要在web.xml中配置注册一下。其中ServletContxt域的监听器使用的最多。域对象监听器主要有两个作用:1、监听域对象的“创建”与“销毁”;2、监听域对象中属性的变幻(增、删、改);
第4个不是给session添加,而是给Bean添加。即让Bean类实现监听器接口,然后再把Bean对象添加到session域中。不需要在web.xml中注册。
- 写一个监听器类,必须实现某个监听器接口;
- 在web.xml中配置一下;
监听器类
public class MyServletContextListener implements ServletContextListener,HttpSessionListener,ServletRequestListener { public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContext创建了..."); } public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext销毁了..."); } public void sessionCreated(HttpSessionEvent se) { System.out.println("HttpSession创建了..."); } public void sessionDestroyed(HttpSessionEvent se) { System.out.println("HttpSession销毁了..."); } public void requestDestroyed(ServletRequestEvent sre) { System.out.println("ServletRequest创建了..."); } public void requestInitialized(ServletRequestEvent sre) { System.out.println("ServletRequest销毁了..."); } }
配置web.xml
<listener> <listener-class>cn.edu.jxau.MyServletContextListener</listener-class> </listener>