过滤器:
1、J2EE中定义的Web开发规范,在所有的Web容器中通用。
2、当容器一启动就立刻初始化过滤器。
3、当容器停止或重启或网站重新部署才被destroy()。
4、初始化参数通过void init(FilterConfig filterConfig)传递。
5、过滤器只有一个实例。
拦截器:
1、只能使用于Struts2框架,且只能对Action进行拦截。
2、只注册,但不被action引用或栈引用,不会初始化。
3、只有被拦截器栈引用,当容器停止或重启或网站重新部署才会调用destroy()。
4、参数传递通过<param>。
1、J2EE中定义的Web开发规范,在所有的Web容器中通用。
2、当容器一启动就立刻初始化过滤器。
3、当容器停止或重启或网站重新部署才被destroy()。
4、初始化参数通过void init(FilterConfig filterConfig)传递。
5、过滤器只有一个实例。
拦截器:
1、只能使用于Struts2框架,且只能对Action进行拦截。
2、只注册,但不被action引用或栈引用,不会初始化。
3、只有被拦截器栈引用,当容器停止或重启或网站重新部署才会调用destroy()。
4、参数传递通过<param>。
5、拦截器被ref引用几次就有几个实例。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="interceptor" extends="struts-default" namespace="/">
<interceptors>
<interceptor name="inter_one" class="itany.interceptor.InterceptorOne">
<param name="author">Frank</param>
</interceptor>
<interceptor name="inter_two" class="itany.interceptor.InterceptorTwo"/>
<interceptor-stack name="myinter">
<!--如果不引用defaultStack则无法实现数据的绑定 -->
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="inter_one"/>
<interceptor-ref name="inter_two"/>
</interceptor-stack>
<interceptor-stack name="yourinter">
<interceptor-ref name="inter_one">
<param name="author">Sophia</param>
</interceptor-ref>
<interceptor-ref name="inter_two"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myinter"/>
<action name="test" class="itany.action.TestAction">
<!-- <interceptor-ref name="myinter"/ -->
<result>index.jsp</result>
</action>
<action name="test2" class="itany.action.Test2Action">
<interceptor-ref name="inter_two"/>
<result>index.jsp</result>
</action>
</package>
</struts>