拦截器:就是在訪问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 ;
     }
}

最新文章

  1. 转网页WB.ExecWB控件打印方法
  2. Winform中Grid跨行复制一列
  3. C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)
  4. 禁止触屏滑动touchmove方法介绍
  5. 【转】Android ProgressDialog的使用2
  6. VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用
  7. Tomcat Java.OutOfMemoryError : PermGen Space异常
  8. 那什么时候会触发BFC呢?块级格式化上下文
  9. ES6笔记
  10. ARM 编译产生.map之RO RW ZI
  11. Unity for VsCode
  12. Java中的Graphics2D类基本使用教程
  13. 第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  14. 小程序循环多个picker选择器,实现动态增、减
  15. IDEA项目搭建三——简单配置Maven使用国内及本地仓库
  16. java判断集合是否相等
  17. 20165211 学习基础和C语言调查
  18. matlab fgetl()
  19. 【洛谷4719】 动态dp(树链剖分,dp,矩阵乘法)
  20. Kafka网络模型分析

热门文章

  1. RHEL7.1安装VNC
  2. Android捕获View焦点事件,LinearLayout结合HorizontalScrollView实现ViewPgaer和选项卡Tabs联动
  3. Swift vs C# Go OC
  4. 修正单纯形法&amp;#183;优化算法实现&amp;#183;Java
  5. call() 和 apply() 的作用和区别
  6. html的学习思维导图
  7. 使用PHP中的curl发送请求
  8. 【Uva 1632】Alibaba
  9. 关于Blocking IO,non-Blokcing IO,async IO的区别和理解
  10. 信号 signal sigaction补充