Struts2拦截器总结学习
来源:互联网 发布:快意电梯营销网络 编辑:程序博客网 时间:2024/05/29 15:27
拦截器(Interceptor)是struts2的核心组成部分。
Struts2很多功能都是构建在拦截器基础之上的 例如文件的上传 下载 国际化 数据类型转换和数据校验等等
Strust2拦截器可以访问某个action方法之前或之后实施拦截
Strust2拦截器是可插拔的 拦截器是AOP(面向切面编程)的一种实现
拦截器栈(Interceptor Stack):将拦截器按一定顺序联结成一条链 在访问被拦截的方法时 Struts2拦截器链中的拦截器就会
按其之前定义的顺序被一次调用
Interceptor接口
每个拦截器都是实现另外com.opensymphony.xwork2.interceptor.Interceptor接口的Java类
init :该方法将在拦截器被创建之后立即被调用 它在拦截器的生命周期内只被调用一次 可以在该方法中对相关资源进行必要的
初始化
intercept:每次拦截一个请求 该方法就会被调用一次
destory:该方法将在拦截器被销毁之前被调用 它在拦截器的生命周期内也只被调用一次
Struts会依次调用为某个action而注册的每一个拦截器的intercept方法
每次调用intercept方法时 Struts会传递一个ActionInvocation接口的实例
ActionInvocation:代表一个给定Action的执行状态 拦截器可以从该类的对象里获得与该Action相关联的Action对象
和result对象 在完成拦截器自己的任务之后拦截器将调用ActionInvocation对象的invoke方法前进到Action处理流程的
下一个环节
AbstraceInterceptor类实现了Interceptor接口 并为init destory提供一个空白实现
如何自定义一个拦截器
1.定义一个拦截器的类
可实现Interceptor接口
继承AbstractInterceptor抽象类
2.在struts.xml文件中配置
<Interceptors>
<interceptor name="hello" class="自定义拦截器类">
</Interceptors>
<action name="testToken" class="自定义Action">
<interceptor-ref name="hello"><interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result>/success.jsp</result>
<result name='invalid.token">/error.jsp<result>
</action>
注意 在自定义的拦截器中可以选择不调用ActionInvocation的invoke()方法
那么后续的拦截器和Struts会渲染自定义拦截器intercept方法返回值对应的result
- Struts2拦截器总结学习
- struts2 学习总结 ---- 拦截器(interceptor)
- 【转载】struts2 学习总结 ---- 拦截器(interceptor)
- Struts2学习总结(八):拦截器
- Struts2拦截器总结
- Struts2 拦截器总结
- Struts2拦截器总结
- struts2拦截器学习
- Struts2拦截器学习
- Struts2拦截器学习
- Struts2拦截器学习
- 学习 -- Struts2拦截器
- Struts2拦截器学习
- Struts2 拦截器学习
- 学习struts2建bbs总结三:登录拦截器
- Struts2学习总结(十):paramsPrepareParams拦截器栈
- Struts2的拦截器总结
- Struts2总结之拦截器
- Java实战有感02
- Android activity生命周期----电源键关开
- C++ DLL导出类的一种方法(纯虚函数)
- 创建web服务器
- 读书计划
- Struts2拦截器总结学习
- 微服务:Eureka+Zuul+Ribbon+Feign+Hystrix构建微服务架构
- 终端
- Ubuntu16.04+Cuda8.0+OpenCV3.1.0+Caffe+Faster RCNN配置总结
- 浅谈HTML5离线缓存(Application Cache)
- iOS 11 SearchBar in NavigationBar
- Nginx+Tomcat搭建高性能负载均衡集群
- springboot入门之Thymeleaf篇
- erlang 使用】eredis 介绍