码迷,mamicode.com
首页 > 其他好文 > 详细

【Struts2三】拦截器

时间:2015-07-16 12:01:01      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:struts   struts2   

拦截器:就是在访问action之前,对其进行拦截!可以在拦截器中做一些逻辑的处理!比如权限验证,没有权限就不给予访问!
拦截器等效于servlet中的过滤器!

使用拦截器步骤:
1.定义自己的拦截器:
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

/**
 * 定义自己的拦截器,需要实现Intercept接口!
 *
 */
public class MyInterceptor implements Interceptor{

     public void destroy() {
          
     }

     public void init() {
          
     }
     /**
      * 重写intercept方法,在该方法中实现自己的拦截逻辑!
      * 调用invocation.invoke()方法放行action!
      */
     public String intercept(ActionInvocation invocation) throws Exception {
          System. out.println("图片上传" );
           return invocation.invoke();
//        return null;//不执行action
     }

}


2.在struts-interceptor.xml的配置文件中声明:
  需要在struts.xml中包含上述配置文件!

struts-interceptor.xml:
<?xml version= "1.0" encoding ="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
     <package name="interceptor" namespace="/" extends="struts-default" >
           <!-- 声明拦截器,拦截器声明应该位于action之前-->
           <interceptors>
               <!--声明自己定义的拦截器 -->
               <interceptor name= "imageInterceptor"
                    class= "cn.itheima03.struts2.interceptor.MyInterceptor" ></interceptor>

               <!-- 声明拦截器栈 -->
               <interceptor-stack name= "myInterceptor">
                    <interceptor-ref name="imageInterceptor" ></interceptor-ref>
                    <interceptor-ref name="defaultStack" ></interceptor-ref>
               </interceptor-stack>
           </interceptors>

           <!-- 修改默认的拦截器栈 -->
           <default-interceptor-ref name="myInterceptor" ></default-interceptor-ref>

           <!--声明action,在执行action之前,会先执行拦截器中的方法  -->
           <action name= "interceptorAction_*" method ="{1}"
                class= "cn.itheima03.struts2.interceptor.InterceptorTestAction" >
               <result>
                   index.jsp
               </result>
           </action>
     </package >

</struts>

3.定义action:
import com.opensymphony.xwork2.ActionSupport;

public class InterceptorTestAction extends ActionSupport{
     public String interceptor(){
          System. out.println("interceptor" );
           return SUCCESS ;
     }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

【Struts2三】拦截器

标签:struts   struts2   

原文地址:http://blog.csdn.net/damogu_arthur/article/details/46907207

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!