事件源: ServletContext对象, ServletRequest对象 ,HttpSession对象 (域对象)
事件: ServletContextEvent , ServletRequestEvent,xxx(创建或销毁对象,对象的属性修改)
事件监听器(接口):ServletContextListener,ServletRequestListerner ......
web监听器: 是一些实现特定接口的java程序,用于监听web开发中常用的对象(ServletContext,ServletRequest,HttpSession)的创建和销毁行为,以及这些对象的属性修改行为(setAttribute,removeAttribute)。
事件源 | 事件对象 | web监听器 |
ServletContext对象 | ServletContextEvent(创建和销毁) | ServletContextListener接口 |
ServletContext对象的属性 | ServletContextAttributeEvent(增加,修改,删除) | ServletContextAttirbuteListener接口 |
ServletRequest对象
| ServletRequestEvent(创建和销毁) | ServletRequestListener接口 |
ServletReuqest对象属性 | ServletRequestAttributeEvent(增加,修改,删除) | ServletRequestAttributeListener |
HttpSession对象 | HttpSessionEvent(创建和销毁) | HttpSessionListener接口 |
HttpSession对象属性 | HttpSessionBindingEvent(增加,修改,删除) | HttpSessionAttributeListener接口 |
2 ServletContextListener
创建: 加载当前的web项目的时候
销毁: 关闭服务器或者重新部署web项目
3 ServletContextAttributeListener
增加: setAttribute("name",Object);
修改: setAttribute("name",Object); //把同名的属性进行修改
删除: removeAttribute("name");
4 ServletRequestListener
创建:用户每次发出请求的时候都会创建一个请求对象
销毁:完成整个请求之后请求对象销毁
5 ServletRequestAttributeListener
增加: setAttribute("name",Object);
修改: setAttribute("name",Object);
删除: removeAttribute("name");
6 HttpSessionListener
创建:调用requset.getSession(true)方法
销毁:
1)默认情况下,等待30分钟,服务器自动回收session对象
2)session.setMaxInactiveInterval(秒数) 设置服务器回收session的时间
全局设置:
<session-config>
<session-timeout>分种数</session-timeout>
<session-config>
3)session.invalidate() : 手动销毁session对象
7 HttpSessionAttribtuteListener
用于监听HttpSession对象的属性增加。修改,删除