AOP、Filter、拦截器,花落知多少

        AOP在上篇文章——编程新贵AOP中已经进行了阐述。


那么现在说的Filter和拦截器又都是什么概念呢?

        Filter技术是Servlet2.3新增加的功能,Servlet2.3是sun公司于2000年10月发布的,它的开发者包括许多个人和公司团体,充分体现了sun公司所倡导的代码开放性原则。在众多参与者的共同努力下,Servlet2.3比以往功能都强大了很多,而且性能也有了提高。

        那么Filter有什么功能呢?Filter可以用来设置字符集、控制权限、控制转向等等。简单点说:就是定义在访问某对象之前和访问之后要做的事情。


什么又是拦截器?

        拦截器是在Struts2中出现的概念。

        Struts2与Struts1相比,去掉了很多概念:ForwardAction,ActionMapping,ActionForm,Action的继承也变的可有可无(如果不声明拦截器等Struts2中特有的东西)。

        但是去掉了,不代表没有,只是在使用的时候,不会看到这些类的存在。若是你细细对比,在Struts2中你会找到他们的身影的。

        但是Struts2多了拦截器的概念,这个概念类似于Filter,Struts2的架构其实就是基于拦截器的。

        在Struts2中,还有一个概念:拦截器链(interceptor-stack)。有关于上次文件的、多选、静态参数、国际化等等好多个默认拦截器,当然也可以自己手动写拦截器。


Filter和拦截器有什么区别和联系?

        二者都是运用了AOP的思想,都让系统变的可配置。

        1.拦截器是基于java的反射机制,而过滤器是基于函数毁掉。

        2.拦截器不依赖servlet容器,过滤器依赖于servlet容器。

        3.拦截器只能对action起作用,而过滤器可以对几乎所有的请求起作用(可以保护资源)

        4.拦截器可以访问action上下文,、堆栈里面的对象,而过滤器不可以。

        执行顺序:过滤前-拦截钱-Action处理-拦截后-过滤后。


        通过上面的对比,可以看出,如果不访问Action里面的东西,那么拦截器可以做的,Filter都能做。在选择上,我更加倾向于Filter,因为用了拦截器,就带入侵入性,如果换一个别的MVC框架,这些拦截器就不能用了,而Filter不会。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值