标签:
1.拦截器(interceptor):拦截器是Struts2的核心,Struts2的众多功能都是通过拦截器来实现的。与filter工作流程相似,只拦截action。
2.Interceptor接口(继承)
public String intercept(ActionInvocation arg0) throws Exception { String in = arg0.invoke(); return in ; }
3.ActionInvocation 接口
4.PreResultListener接口
5.每个拦截器中的代码的执行顺序,在Action之前,拦截器的执行顺序与堆栈中定义的一致;
而在Action和Result之后,拦截器的执行顺序与堆栈中定义的顺序相反。
5.拦截器的配置
<interceptors> <interceptor name="InterceptorMy" class="com.liule.interceptor.InterceptorMy"></interceptor> </interceptors> <action name="LoginAction"> <result name="sucess">/servlet.jsp</result> <interceptor-ref name="InterceptorMy"></interceptor-ref> </action>
6.在不明确声明拦截器的时候,调用默认的拦截器
指定默认的拦截器栈:
<default-interceptor-ref name="defaultStack" />
7.一旦定义了自己的拦截器,将其配置到action上后,我们需要在action的最后加上默认的拦截器栈:defaultStack
<action name="LoginAction"> <result name="sucess">/servlet.jsp</result> <interceptor-ref name="InterceptorMy"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
8.初始化参数
<interceptors> <interceptor name="InterceptorMy" class="com.liule.interceptor.InterceptorMy"> <param name="hello">shengsiyuan</param> </interceptor> </interceptors>
public class InterceptorMy implements Interceptor { private String hello; public String getHello() { return hello; } public void setHello(String hello) { this.hello = hello; } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init() { // TODO Auto-generated method stub } @Override public String intercept(ActionInvocation arg0) throws Exception { String in = arg0.invoke(); return in ; } }
9.AbstractInterceptor 类(类似于适配器)
10.定义拦截器时可以直接继承AbstractInterceptor抽象类(该来实现了Interceptor接口,并且对init()和destory()方法进行了空实现),然后实现其抽象方法intercept即可。
11.方法过滤拦截器(可以对指定方法进行拦截的拦截器)
12.MethodFilterInterceptor 类,继承了AbstractInterceptor
13.参数:(拦截器是不是执行)
在方法过滤拦截器中,如果既没指定include参数与exclude参数,那么所有的方法都会拦截,也就是说所有的方法都默认为include。如果仅仅指定了include,那么只会拦截include中的方法,没有包含在include的不会被执行。
14.Map map = invocation.getInvocationContext().getSession();
15.Action.LOGIN 表示用户没有登录,让用户再登陆一下。
标签:
原文地址:http://www.cnblogs.com/liu-Gray/p/4946749.html