拦截器的工作原理,自定义拦截器的实现
来源:互联网 发布:python爬取股票数据 编辑:程序博客网 时间:2024/06/05 18:05
struts2的一个优点就是它为我们提供了拦截器。那么拦截器是怎么工作的呢!
这是我自己写的一个拦截器类:
package tm.change.interceptor;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class LoginInterceptor implements Interceptor{@Overridepublic void destroy() {System.out.println("@@@@@@@@@@@@@@@@@销毁");}@Overridepublic void init() {System.out.println("@@@@@@@@@@@@初始化");}@Overridepublic String intercept(ActionInvocation arg0) throws Exception {String name = (String) ActionContext.getContext().getSession().get("name");if(name!=null&& !name.equals("")){//invoke()方法执行说明拦截结束,否则被拦截arg0.invoke();return "success";}return "login";}}
那拦截器怎么配置呢?
这是struts.xml中的一段代码,注意看注释
<package name="csdn" namespace="/test" extends="struts-default"><interceptors><!-- 定义自己的拦截器loginInterceptor --><interceptor name="loginInterceptor" class="tm.change.interceptor.LoginInterceptor"></interceptor><!-- 定义自己的拦截器栈loginInterceptor --><interceptor-stack name="myStack"><interceptor-ref name="loginInterceptor"/><!-- 自定义类 --><interceptor-ref name="defaultStack"/><!-- struts-default.xml自带的 --></interceptor-stack></interceptors><!-- 将myStack设置为默认的拦截器,就是说如果某个action没有设置拦截器,那就会执行这个拦截器 --><default-interceptor-ref name="myStack"/>
再看下面连个action,上面的action设置了自己的拦截器,所以它执行defaultStack
下面这个action没有设置自己的拦截器,所以它执行默认的拦截器 myStack
<action name="login" class="tm.change.action.UserAction" method = "login"><interceptor-ref name="defaultStack"/><result name = "success">/index.jsp</result></action><action name="index" class="tm.change.action.UserAction" method = "login"><result name = "success">/index.jsp</result></action>
备注:有一点不得不提。那就是,都收到action请求时,都是先执行拦截器,然后再执行action中的method。
执行拦截器的时候,如果执行到 invoke() 方法,接着就执行method方法。如果没有执行invoke()方法,则不执行method方法。
0 0
- 拦截器的工作原理,自定义拦截器的实现
- 拦截器的工作原理
- 拦截器的工作原理
- Struts2的拦截器工作原理
- springmvc的拦截器工作原理
- springmvc 自定义拦截器实现未登录用户的拦截
- 【struts2】拦截器的工作模拟实现
- struts2中拦截器的全局拦截和自定义拦截
- Struts2自定义拦截器的实现
- struts2_11_自定义拦截器的实现
- Struts2拦截器的原理与实现
- Struts2拦截器的原理与实现
- Struts2拦截器实现原理的理解
- Struts2拦截器的原理与实现
- Struts2拦截器的原理与实现
- Struts2拦截器的原理与实现
- Struts2拦截器的原理与实现
- struts2 拦截器的原理和实现
- 二叉树相关算法实现-iOS
- 8张图带你走近JAVA!
- Saber几乎可以使用所有的SPICE
- GreenCleaner产品免责声明
- 【树莓派开发-Linux】Linux losetup命令、“~/. ”命令、 sync命令和挂载命令整理
- 拦截器的工作原理,自定义拦截器的实现
- [ASP.NET] SQL SERVER 统计一天24小内的交易量 编辑:吴立星
- 最大熵阈值分割代码
- SpringMVC原理
- TensorFlow 实现Multilayer Perceptron
- cpp 8.5
- Java 线程面试题
- ObjectMapper相关
- 导入Execl表格到数据库