1.什么是Servlet监听器?
先来看看什么是监听器。监听器是专门用于对其它对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时立即采取相应的行动。Servlet监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序的ServletContext,HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。
按监听的事件类型Servlet监听器可分为如下三种类型:
- 监听域对象自身的创建和销毁的事件监听器
- 监听域对象中的属性的增加和删除的事件监听器
- 监听绑定到HtppSession域中的某个对象的状态的事件监听器
2.域对象创建和销毁的事件监听器
域对象创建和销毁的事件监听器就是用来监听ServletContext,HttpSession,HttpServletRequest这三个对象的创建和销毁事件的监听器。域对象的创建和销毁时机:
- ServletContext:当web服务器启动时为每个web应用程序创建相应的ServletContext对象,web服务器关闭时为每个web应用程序销毁相应的ServletContext对象。
- HttpSession:浏览器开始与服务器会话时创建,调用HttpSession.invalidate();超过了session的最大有效时间间隔;服务器进程被停止。
- ServletRequest:每次请求开始时创建,每次访问结束后销毁。
3.如何编写Servlet监听器?
- Servlet规范为每种事件监听器都定义了相应的接口,编写事件监听程序只需要实现这些接口。
- 在web.xml中进行注册,web服务器按照它们在web.xml中的注册顺序来加载和执行这些S