拦截器心得

1.拦截器与过滤器的区别  

  相同点:拦截器其实也是一种过滤器,都用于对请求和响应做拦截进行额外的处理.

  不同点:拦截器主要是通过过滤器来调用的,功能实现主要放在拦截器中,而过滤器主要是用来调用拦截器.而且过滤器属于java web中的概念范畴,而拦截器只有在struts2框架中采用这一概念

  2.struts-default.xml

  在struts2的源码包中有struts-default.xml的配置文件,文件中的package标签下有interceptors,在interceptors下有interceptor标签,用于定义拦截器,还有interceptor-stack用于引用部分定义的拦截器形成拦截器栈,而在interceptors同级的标签还有default-interceptor-stack用于定义默认的拦截器栈,而拦截器栈的执行顺序是从上到下依次执行定义的拦截器的,之所以我们自己编写的struts.xml都要继承struts.xml正是为了继承struts框架给我们定义好的拦截器栈,如不继承,其实拦截器将不起作用。

  3.核心过滤器

  在web.xml中,我们为了应用struts2还会配置struts2的核心过滤器类,这个过滤器类中有一个定义了struts-default.xml,struts-plugins.xml,struts.xml的静态变量,主要用于启动时加载的文件及其顺序,因此我们的struts.xml是继承自struts-default.xml,当struts.xml加载时就已经加载好了struts-default.xml.

原文地址:https://www.cnblogs.com/zlw-xf/p/9314278.html