您好:欢迎光临现金网-澳门现金网主页!

现金网

产品列表
联系我们contact us
现金网-澳门现金网主页
地 址:山东省济宁市历城区化纤厂路6号2楼
电 话:0531-881232334
struts 拦截器和过滤器的区别和原理
发布时间:2019-10-01 20:50

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  知道合伙人软件行家采纳数:16450获赞数:12202本人主要从事C#方向的技术开发工作,具有10多年的各类架构开发工作经验。向TA提问展开全部1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。

  1.filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制,这是两者最本质的区别。

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

  3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。

  3.Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。

  5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

  6.Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤。

  其实拦截器也可以理解为调用方法的一种改进。因为拦截器可以在目标对象执行以前由系统自动执行,而调用方法则必须显示的调用才可以。这就使拦截器本身拥有更高层次的解耦性。

  比如防止表单重复提交,进行输入校验…我们可以打开struts2-core.jar包下的struts-default.xml中看到struts2都实现了哪些拦截器。大家应该也都了解struts-default.xml这个文件是我们写struts.xml时需要继承的xml文件,其中就声明了大量的拦截器和拦截器栈。我们可以找到defaultStack这个拦截器栈,它就是struts2默认加载的拦截器栈,他提供了struts2的基本操作,比如得到参数并将参数赋值给对应的action中的属性……

Copyright©2015-2019现金网版权所有; 电话:0531-881232334
备案/许可证编号为: 地址:山东省济宁市历城区化纤厂路6号2楼