Struts2配置拦截器和拦截链

转载 2016年06月01日 10:56:26

1.拦截器的配置

此处以“检测用户是否登录”为例,

MyInterceptor.Java

[java] view plain copy
  1. public class MyInterceptor extends AbstractInterceptor {  
  2.   
  3.     @Override  
  4.     public String intercept(ActionInvocation invocation) throws Exception {  
  5.         System.out.println("---------intercept()---------");  
  6.         Map<String, Object> session = invocation.getInvocationContext().getSession();  
  7.         if (session.get("username") != null) {  
  8.             return invocation.invoke();  
  9.         } else {  
  10.             return "checkError";  
  11.         }  
  12.     }  
  13. }  


struts.xml文件中配置:

[html] view plain copy
  1. <package name="testLogin" namespace="/" extends="struts-default">  
  2.     <interceptors>  
  3.         <interceptor name="myInterceptor" class="MyInterceptor" />  
  4.         <!-- class="MyInterceptor"已在spring配置文件中配置bean -->  
  5.     </interceptors>  
  6.       
  7.     <action name="user" class="UserManagerAction">  
  8.         <result name="success">/user.jsp</result>  
  9.         <result name="error" type="redirect">/error.jsp</result>  
  10.         <result name="checkError">/checkSession.jsp</result>  
  11.         <interceptor-ref name="myInterceptor" />  
  12.         <interceptor-ref name="defaultStack" />  
  13.     </action>  
  14. </package>  

 

注意:action中,设置好自己的interceptor后,别忘了配置defaultStack拦截器。

defaultStack是Struts2默认的拦截器,帮助我们完成许多struts2提供的服务。

2.拦截链的配置

当一个action需要多个拦截器时,我们可以配置拦截链

[html] view plain copy
  1. <package name="testLogin" namespace="/" extends="struts-default">  
  2.     <interceptors>  
  3.         <interceptor name="myInterceptor" class="MyInterceptor" />  
  4.         <interceptor name="otherMyInterceptor" class="OtherMyInterceptor" />  
  5.         <!-- 已在spring的applicationContext-bean.xml中配置相关bean -->  
  6.           
  7.         <interceptor-stack name="defaultInterceptor">  
  8.             <interceptor-ref name="myInterceptor" />  
  9.             <interceptor-ref name="defaultStack" />  
  10.         </interceptor-stack>  
  11.           
  12.         <interceptor-stack name="otherDefaultInterceptor">  
  13.             <interceptor-ref name="otherMyInterceptor" />  
  14.             <interceptor-ref name="defaultStack" />  
  15.         </interceptor-stack>  
  16.     </interceptors>  
  17.       
  18.     <action name="user" class="UserManagerAction">  
  19.         <result name="success">/user.jsp</result>  
  20.         <result name="error" type="redirect">/error.jsp</result>  
  21.         <result name="checkError">/checkSession.jsp</result>  
  22.         <interceptor-ref name="otherDefaultInterceptor" />  
  23.     </action>  
  24. </package>  

3.设置默认拦截器/拦截链(普遍配置)

当多个action都需要配置相同的拦截器/拦截链时,考虑设置默认的拦截器/拦截链,则不用在每个action中依次配置了。

[html] view plain copy
  1. <package name="testLogin" namespace="/" extends="struts-default">  
  2.     <interceptors>  
  3.         <interceptor name="myInterceptor" class="MyInterceptor" />  
  4.         <interceptor name="otherMyInterceptor" class="OtherMyInterceptor" />  
  5.         <!-- 已在spring的applicationContext-bean.xml中配置相关bean -->  
  6.           
  7.         <interceptor-stack name="defaultInterceptor">  
  8.             <interceptor-ref name="myInterceptor" />  
  9.             <interceptor-ref name="defaultStack" />  
  10.         </interceptor-stack>  
  11.           
  12.         <interceptor-stack name="otherDefaultInterceptor">  
  13.             <interceptor-ref name="otherMyInterceptor" />  
  14.             <interceptor-ref name="defaultStack" />  
  15.         </interceptor-stack>  
  16.     </interceptors>  
  17.       
  18.     <default-interceptor-ref name="defaultInterceptor" />  
  19.       
  20.     <action name="user" class="UserManagerAction">  
  21.         <result name="success">/user.jsp</result>  
  22.         <result name="error" type="redirect">/error.jsp</result>  
  23.         <result name="checkError">/checkSession.jsp</result>  
  24.     </action>  
  25. </package>  

4.屏蔽默认拦截器/拦截链(特殊配置)

当所在package中设置了默认拦截器/拦截链,某些个别action需要特殊拦截器/拦截链时,单独在action中配置所需拦截器/拦截器,即可屏蔽默认拦截器/拦截链,执行单独设置的拦截器/拦截链。

[html] view plain copy
  1. <package name="testLogin" namespace="/" extends="struts-default">  
  2.     <interceptors>  
  3.         <interceptor name="myInterceptor" class="MyInterceptor" />  
  4.         <interceptor name="otherMyInterceptor" class="OtherMyInterceptor" />  
  5.         <!-- 已在spring的applicationContext-bean.xml中配置相关bean -->  
  6.           
  7.         <interceptor-stack name="defaultInterceptor">  
  8.             <interceptor-ref name="myInterceptor" />  
  9.             <interceptor-ref name="defaultStack" />  
  10.         </interceptor-stack>  
  11.           
  12.         <interceptor-stack name="otherDefaultInterceptor">  
  13.             <interceptor-ref name="otherMyInterceptor" />  
  14.             <interceptor-ref name="defaultStack" />  
  15.         </interceptor-stack>  
  16.     </interceptors>  
  17.       
  18.     <default-interceptor-ref name="defaultInterceptor" />  
  19.       
  20.     <action name="user" class="UserManagerAction">  
  21.         <result name="success">/user.jsp</result>  
  22.         <result name="error" type="redirect">/error.jsp</result>  
  23.         <result name="checkError">/checkSession.jsp</result>  
  24.         <interceptor-ref name="otherDefaultInterceptor" />  
  25.     </action>  
  26. </package>  
举报

相关文章推荐

Struts2配置拦截器和拦截链

1.拦截器的配置 此处以“检测用户是否登录”为例, MyInterceptor.Java [java] view plain copy public class MyInterc...

Struts2拦截器配置

转载于:http://blog.csdn.net/axin66ok/article/details/7321430 解决问题:系统学习拦截器的配置 1. 理解拦截器 1.1....

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

struts2 拦截器配置

CheckLoginInterceptor.java---拦截器具体实现类: Java代码   package com.sunhoo.hcpms.struts2.act...

Struts2拦截器的配置

实现了在没登录的情况下对查询数据action的拦截拦截器Interceptor.javapublic class Interceptor extends MethodFilterInterceptor...

struts2拦截器的配置

Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口;  Interceptor 它其中有三个方法(init(),destroy() ,...

Struts2拦截器配置

 Struts2拦截器配置 1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行...

Struts2配置拦截器

struts.xml中内容如下

struts2 拦截器的配置

最近换了家新公司,主要负责前后台交互这块,用的ssh框架,所以我接触的是struts和前端较多,现在总结一下配置拦截器的一些知识,巩固一下。 struts2拦截器可以拦截一些请求,比如用户没...

Struts2拦截器配置

1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是...

struts2 拦截器

拦截器 自定义拦截器          第一步:创建一个普通类,继承AbstractInterceptor,实现抽象方法intercept 第二步:在struts.xml 中配置拦截器 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)