Javaspring程序员

拦截器,过滤器,监听器的区别

2017-12-02  本文已影响0人  chcvn
@作者博客

过滤器(Filter)

(它是Servlet技术中最实用的技术)

实现过滤

生命周期

处理乱码

Listener 监听器(3种监听)

ServletContext监听

ServletContextListener 用于对Servlet整个上下文进行监听(创建和销毁)
ServletContextAttributeListener 对Servlet上下文属性的监听(增删改属性)。

Session监听

HttpSessionListener接口:对Session的整体状态的监听。
HttpSessionAttributeListener接口:对session的属性监听。

<session-config>

    <session-timeout>120</session-timeout><!--session120分钟后超时销毁-->

</session-config>

Request监听

ServletRequestListener:用于对Request请求进行监听(创建、销毁)。
ServletRequestAttributeListener:对Request属性的监听(增删改属性)。

拦截器(Interceptor)

- 与上面2个器不同的是,拦截器不属于Servlet,而是struts框架的

- 拦截器是基于Java反射机制实现的,这点跟JDK的动态代理有点像
-  java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action
- 在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截,然后再之前或者之后加入某些操作 (AOP介绍,请访问 www.1314sl.com 的 Spring两大特性)
- 当一个请求到 ServletDispatcher的时候,Struts2会查找配置文件,并根据配置实例化相对的拦截器对象,对相关的操作进行拦截,然后再执行具体方法前,添加你自己的处理操作,然后进入请求的具体方法
     有点类似面向切片的技术(即AOP切面 是真的有点像)

总结:

    过滤器
        在客户请求到服务器的时候,请求对象传入的request,Response,前,过滤掉一些信息,或者设置一些参数,在传入Servlet或者struts的Action处理.
    监听器
        监听器随web服务的启动而启动,WEB服务的停止而停止,Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。(比如某个对象的创建和销毁)
    拦截器
        拦截器是动态拦截Action调用的对象,并且在执行对象方法前,可以做一些操作,也可以添加一些功能.而不影响核心功能

思维导图如下:

@作者博客
@Stone@Stone

© 著作权归作者所有 转载请保留原链接地址 @作者博客

上一篇下一篇

猜你喜欢

热点阅读