博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2 自定义拦截器(方法拦截器)
阅读量:5993 次
发布时间:2019-06-20

本文共 2398 字,大约阅读时间需要 7 分钟。

struts2系统自带了很多拦截器,有时需要我们自己定义,一般有两种方式:

一、实现Interceptor接口
1 public interface Interceptor extends Serializable{    2      public void init();    3      public void destroy();    4      public String intercept(ActionInvocation invocation)();    5 }
 

并实现上述方法

二、继承AbstractInterceptor类,重写intercept()方法即可 此方法更可行,其实AbstractInterceptor类也就是实现了Interceptor接口
1 invocation.invoke();表示该方法执行完后执行Action的execute()方法或者执行下一个拦截器    2 invocation.getAction(); 可以将该法强制转换为Action的类类型
 
三、方法拦截器:继承MethodFilterInterceptor类,重写doIntercept()方法 MethodFilerInterceptor实现方法过滤中用到的两个参数 execludeMethods:该参数指定拦截器拒绝拦截的方法列表,多个方法用“,”隔开(支持通配符*,例如add*,表示所有以add开头的方法),如果指定了这个参数拦截器不会拦截指定列表中的方法,就是所谓的黑名单 includeMethods: 该参数指定拦截器需要拦截的方法列表,多个方法用“,”隔开(支持通配符*,例如add*,表示所有以add开头的方法),如果指定了参数,则指定的Action在执行前会被拦截,即白名单。 定义好自定义拦截器后,就要使用自定义拦截器,在struts.xml文档中 一、包内定义拦截器
1 
2
3
4
5
6
 

 

二、action内使用拦截器
1 
2
3
4
5
 
主要:可以看出使用了自定义拦截器的action要配置默认拦截器的引用,因为默认拦截器包含了参数的读取、session的管理等功能 以下是例子: MyMethodInterceptor类
01 public class MyMethodInterceptor extends MethodFilterInterceptor{    02     protected String doIntercept(ActionInvocation invocation) throws Exception {    03         // TODO Auto-generated method stub    04         System.out.println("进入MyMethodInterceptor方法拦截器!!!!!!!!!!!!!");    05         Map session = invocation.getInvocationContext().getSession();    06         String name = (String) session.get("uname");    07         if (name != null) {    08             return invocation.invoke();    09         }    10         return "input";    11     }    12 }
 
struts.xml配置
   
    
    
       
                    
               
login            
            
               
               
           
       
        
           
           
{2}
           
index.jsp
           
/WEB-INF/Jsp/error.jsp
       
        
           
/WEB-INF/Jsp/show.jsp
       
        
           
/WEB-INF/Jsp/show.jsp
       
   
 

 

 相关:

转载地址:http://jwtlx.baihongyu.com/

你可能感兴趣的文章
jedis ShardedJedisPool的 HASH一致性算法(一)从String 的hashcode说起
查看>>
About Instruments
查看>>
那些开源程序中让人叹为观止的代码 - 3 保持元素纵横比
查看>>
线程工具类(根据电脑逻辑处理器个数控制同时运行的线程个数)
查看>>
十进制与二进制间的相互转换
查看>>
Guava包学习---Maps
查看>>
dp-(LCS 基因匹配)
查看>>
关于线程执行顺序的问题
查看>>
Docker系列07—Dockerfile 详解
查看>>
linux命令之awk命令
查看>>
爬虫项目总结
查看>>
ubuntu 16.04 mysql5.7.17 开放远程3306端口
查看>>
如何在鼠标hover时改变标注的样式
查看>>
在VS2010中使用wxWidgets 2.9.3
查看>>
NSDictionary
查看>>
ci框架——辅助函数
查看>>
拖拽球、三角网格绘制
查看>>
Oracle 基础练习
查看>>
第1个实验:用汇编语言点亮一盏LED
查看>>
2018年1月29日
查看>>