关于java:拦截器和过滤器

27次阅读

共计 798 个字符,预计需要花费 2 分钟才能阅读完成。

拦截器(interceptor)

Java 中动静截取 Action 调用的对象,能够在办法的前后执行,拦截器的应用并不影响其余代码,是 springMVC 框架本人的;拦截器的应用用来实现一些特定的性能:如日志记录、权限查看、性能监控等,它只会拦挡拜访控制器办法,也是 AOP 思维具体利用~~~~~~~~~~~~

监控器的实现步骤

1)定义类用来实现接口 HandlerINterceptor   注册
2)Component 标记在类上,spring 主动扫描,创建对象
3)重写办法
    a、preHandle 办法执行之前
        这个办法返回一个 boolean 值
        true 代表放行
        false 不放行
    b、postHandle 办法执行之后
    c、afterCompletion 办法执行最初
4)定义类用来实现 WebMvcConfigurer,用 Configuration 标记,作用是通知 spring 这是配置类
Autowired 依赖注入
5)从新 addInterceptors 办法
registry.addInterceptor()

拦挡链

 当有多个拦截器时,会造成拦挡链,执行出入程序按执行程序,先进后出~~~~

过滤器

 过滤器是一个程序,它先于与之相干的 servlet 或 JSP 页面运行在服务器上。它是随你的 web 利用启动而启动的,只初始化一次,当前就能够拦挡相干申请,只有当你的 web 利用进行或重新部署的时候才销毁。作用
申请和回应的过滤,传入 request、response 提前过滤掉一些信息,或者提前设置一些参数,而后传入 servlet 或者 spring 的 actio 进行业务逻辑,过滤掉非法 url 和非法字符 

拦截器和过滤器的区别

1) 机制:拦截器是动静代理(反射机制),过滤器是函数回调
2)拦截器不依赖 servl 容器,过滤器须要
3)拦截器能够在办法前后实现,过滤器只能在申请前后各调用一次
4)拦截器能够利用依赖注入,因而在框架中,优先拦截器
5)拦截器包裹在过滤器之中 

正文完
 0