Struts2拦截器设置问题

我在工作中遇到了Struts2拦截器设置问题,后来终于解决了。

我们公司做的项目是分前后台的,前台是android手机终端,后台是J2EE,主要是给前台数据服务,我是写后台的。

后来领导为了查看数据,让我做了几个jsp页面,还做了登录功能。在登录模块中我使用了Struts2中的拦截器来控制用户非法操作。

但是手机终端是不需要登录也能访问后台的,加了拦截器后系统就不让访问了,因为拦截器拦截了地址。

解决方法:

<interceptors>
   <interceptor name="auth" class="authenticationInterceptor"/>
   <interceptor name="check" class="checkInterceptor"/>
   <interceptor-stack name="securityStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="auth"/>
    <interceptor-ref name="check"/>
   </interceptor-stack>
   
   <interceptor-stack name="mobileStack">
    <interceptor-ref name="defaultStack"/>
    <interceptor-ref name="check"/>
   </interceptor-stack>
  </interceptors>
  <default-interceptor-ref name="securityStack"/>

其中<interceptor name="auth" class="authenticationInterceptor"/>
<interceptor name="check" class="checkInterceptor"/>这两个是我自己写的拦截器,设为默认拦截器,我再定义了mobileStack拦截器,这个不包括auth拦截器,所以方式调用mobileStack拦截器的action就不会检查用户有没有登录。

终端访问的action我就用mobileStack拦截器,否则就用默认拦截器,这样就终端页能访问后台了。

原文地址:https://www.cnblogs.com/jirimutu01/p/2604693.html