Struts2笔记七---拦截器
来源:互联网 发布:河北网络电视台官网 编辑:程序博客网 时间:2024/06/05 16:33
1.自定义拦截器:
要有一个自定义的拦截器类,它需要实现Interceptor接口,里面有一个intercept方法。这个就是拦截器主要的实现方法。
intercept这个方法有一个参数ActionInvocation invocation,这里必须要在intercept方法中使用invocation调用invoke()方法。
在这个invoke()方法之前执行的代码就是Struts执行我们的Action之前执行的拦截内容,invoke()方法之后执行的代码就是执行完
我们的Action后再执行的拦截过程。具体如下:
以上拦截器是计算执行自定义Action的时间。
写好了拦截器类,下一步就需要在struts.xml中配上我的自定义拦截器了。
这里的struts.xml还有一种写法
要有一个自定义的拦截器类,它需要实现Interceptor接口,里面有一个intercept方法。这个就是拦截器主要的实现方法。
intercept这个方法有一个参数ActionInvocation invocation,这里必须要在intercept方法中使用invocation调用invoke()方法。
在这个invoke()方法之前执行的代码就是Struts执行我们的Action之前执行的拦截内容,invoke()方法之后执行的代码就是执行完
我们的Action后再执行的拦截过程。具体如下:
public class MyInterceptor implements Interceptor {public void destroy() {}public void init() {}public String intercept(ActionInvocation invocation) throws Exception {long start = System.currentTimeMillis();String invoke = invocation.invoke();long end = System.currentTimeMillis();System.out.println("action time = " + (end - start));return invoke;}}
以上拦截器是计算执行自定义Action的时间。
写好了拦截器类,下一步就需要在struts.xml中配上我的自定义拦截器了。
<package name="test" namespace="/" extends="struts-default"><interceptors><!-- 配一个拦截器名字叫my,这个拦截器的实现类是com.edifier.interceptor.MyInterceptor --><interceptor name="my" class="com.edifier.interceptor.MyInterceptor"></interceptor></interceptors><action name="test" class="com.edifier.action.TestAction"><result>/test.jsp</result><interceptor-ref name="defaultStack"></interceptor-ref><!-- 执行这个action会想执行struts默认的拦截器 --><interceptor-ref name="my"></interceptor-ref><!-- 之后执行我们自定义的拦截器 --></action></package>
这里的struts.xml还有一种写法
<package name="global-package" namespace="/" extends="struts-default"><interceptors><!-- 配一个拦截器名字叫my,这个拦截器的实现类是com.edifier.interceptor.MyInterceptor --><interceptor name="my" class="com.edifier.interceptor.MyInterceptor"></interceptor><interceptor-stack name="myInterceptor"><!-- 再自定义一个拦截器栈,这个拦截器栈会先执行我的自定义拦截器,然后再执行默认拦截器 --><interceptor-ref name="my" /><interceptor-ref name="defaultStack" /></interceptor-stack></interceptors></package><package name="test" namespace="/" extends="global-package"><action name="test" class="com.edifier.action.TestAction"><result>/test.jsp</result><!-- 继承global-package包,在这个Action中加上自定义的拦截器栈,它就会先执行我的自定义拦截器,然后再执行默认拦截器 --><interceptor-ref name="myInterceptor"></interceptor-ref></action></package>
0 0
- Struts2笔记七---拦截器
- struts2 18拦截器详解(七) --- ChainingInterceptor
- 拦截器---struts2学习笔记
- struts2 学习笔记拦截器
- struts2学习笔记-----拦截器
- struts2自定义拦截器笔记
- struts2拦截器(interceptor) 笔记
- struts2系列学习笔记(11)---------------拦截器
- struts2学习笔记之拦截器(Interceptor)
- Struts2拦截器Interceptor学习笔记
- Struts2学习笔记之自定义拦截器
- struts2学习笔记拦截器实现原理
- Struts2学习笔记之自定义拦截器
- struts2学习笔记(九)拦截器
- Struts2笔记——自定义拦截器
- struts2 拦截器学习笔记01
- struts2学习笔记之拦截器(Interceptor)
- JavaEE笔记(三)Struts2 拦截器
- STM32学习笔记——利用通用定时器TIM2进行精确延时
- Struts2笔记六之i18n国际化
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- android Matrix图片随意的放大缩小,拖动
- 《STL源码剖析》---stl_deque.h阅读笔记(2)
- Struts2笔记七---拦截器
- 错排公式
- hdu 4259 Double Dealing(循环节+最小公倍数)
- 黑马视频学习笔记-数组(一)-初始化
- Humble Numbers - HDU 1058 递推
- 只有读书最平等
- 跟着ZHONGHuan学习设计模式--桥接模式
- 编译QT项目出现错误:error C2144: syntax error : 'void' should be preceded by ';'
- SJF2410烧录