8.过滤器和监听器介绍
8.1过滤器 Filter(掌握)
Filter 过滤器概述
过滤器:作用在请求到处理请求前先处理工作,还可以在响应前做一些处理工作
过滤器:在Servlet 2.3版本的时候 制定了Filter的规范,在Servlet 2.4版本进行Filter修正,
然后直到Servlet3.1 版本一直没有更新
Filter 的出现原本SUN公司是想替代Servlet
总结:从历史的角度看,Filter 具有 Servlet组件的功能,还应该比Servlet更强大
Filter 生命周期方法
Filter Servlet
init:容器启动的时候会自动创建Filter对象并且执行init方法 init:第一次请求来的时候创建servlet对象前执行init方法
destroy : 容器关闭或者应用程序卸载的时候会自动的执行 类似
doFilter : 该方法处理请求 类似
总结 :Filter 过滤器不仅可以拦截动态资源 、 还可以拦截静态资源 (imag 、 js 、 html 、 css 等)
Filter 拦截器链 (可以自定义多个Filter 形成一个链条,作用于某个特定资源)
1.在请求被多个拦截器拦截的时候,web.xml配置的Mapping-Filter先后顺序,进行拦截
2.拦截器链执行流程图:
8.2监听器 Listener (了解)
Web技术中有三大组件:Servlet 、 Filter 、Listener
Listener 监听器:用来监听应用程序的状态(三个域对象的生命周期的状态,以及域对象的数据的操作的状态)。
Sun公司定义了8种监听器:
ServletContextListener 监听ServletContext对象的创建、销毁(监听该对象的生命周期的状态)
HttpSessionListener 监听HttpSession对象的创建、销毁(监听该对象的生命周期的状态)
ServletRequestListener 监听ServletRequest对象的创建、销毁(监听该对象的生命周期的状态)
ServletContextAttributeListener 监听ServletContext对象的放入数据 、 取数据、置换同key数据的监听器
HttpSessionAttributeListener 监听HttpSession对象的放入数据 、 取数据、置换同key数据的监听器
ServletRequestAttributeListener 监听ServletRequest对象的放入数据 、 取数据、置换同key数据的监听器
HttpSessionBindingListener 感知型监听器,用于监听对象是否绑定到HttpSession域中
HttpSessionActivationListener 感知型监听器,用于监听器对象的钝化 、 激活的状态
感知型监听器:不需要在web.xml文件中配置HttpSessionBindingListener:感知型监听器,用于监听绑定该接口的对象是否绑定到HttpSession对中。HttpSessionActivationListener:感知型监听器,用于监听HttpSession对象的钝化 、 激活
网友评论