监听器
监听器基础
监听客户端的请求,服务端的操作,通过监听器自动激发一些操作。监听器是 Web 开发的重要组成部分,对 Web 应用进行监督和控制,大大增强了 Web 应用的时间处理能力。
监听器原理
监听器的功能类似于 Java 中的 GUI 程序的监听器,可以监听由于 Web 应用中的状态改变而引起的 Servlet 容器产生的相应事件,然后做出客户希望的处理。
监听器类型
分为请求监听器、会话监听器、上下文监听器。有 8 个监听器接口和 6 个监听器事件类。 8 种监听器可以分为三类。
①监听 Session , request ,context 的创建与销毁,分别为 HttpSessionLister,ServletContextListener,ServletRequestListener。
②监听对象属性变化,分别为 HttpSessionAttribteListener,ServletContextAttributeListener,ServletRequestAttributelListener。
③监听Session内的对象,分别为 HttpSessionBindinglListener 和 HttpSessionActivationListener。与上面六类不同,这两类 Listener 监听的是 Session 内的对象,而非 Session 本身,不需要在 web.xml 中配置。
过滤器
过滤器基本原理
过滤器是 Servlet 的一种特殊用法。完成通用的操作,如编码的过滤、事务的提交、用户的登录状态等。过滤器能够在客户端请求到达 Servlet 之前被截获,处理之后再发给被请求的资源,还可以响应截获,修改之后再发给用户,分为之前、之后拦截。
过滤器的应用
可应用在 Servlet 程序和 Servlet 程序之间、JSP 页面和 JSP 页面之间、客户端和 Servlet 程序之间、Servlet 程序和 JSP 页面之间进行过滤请求处理。过滤器可以被指定和特定的 URL 相关联,只有当客户请求访问该特定的 URL 时,才会触发过滤器;过滤器本身不产生请求和响应,只提供过滤作用。
过滤器的实现
必须定义实现 Filter 接口的过滤器,在 doFilter() 方法中完成需要过滤的操作,配置过滤器信息或通过过滤器的注解实现。
过滤链
过滤器可以被串联成串,形成过滤链,协同修改请求和响应。