Struts 2 拦截器
2015-06-08 15:39
627 查看
计应134 王锐
1.拦截器
拦截器(Interceptor)是Struts 2 框架的核心组成部分,框架的很多功能都是构建在拦截器基础之上的,例如文件的上传和下载、数据类型的转换和数据的有效性验证等。
拦截器就是动态拦截Action调用的对象。它提供了一种机制,使开发者可以定义一个特点的功能模块,这个模块可以再Action执行之前或者执行之后运行,也可以在一个Action执行之前阻止Action执行,同时还提供了一种可以提取Action中可重用的部分方式。
Struts 2 框架的Action被一个或者多个拦截器(拦截器栈)所包围,所以有的用户请求都会被拦截器拦截,然后交给Action处理,处理结果以逻辑视图的方式返回给用户,然而这个调用的执行流程是由Struts 2 的配置文件(struts.xml)实现的。
2.定义一个拦截器
(1)、自定义一个实现Interceptor接口(或者继承自AbstractInerceptor)的类。
(2)、在struts.xml中注册上一步中定义的拦截器。
(3)、在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有得Action都被这个拦截器拦截。
3.拦截器的使用
在拦截器定义完成后,就可以使用拦截器或者拦截器栈来拦截指定的Action了。拦截器的拦截代码会将在Action的execute方法执行前被执行。
通过<interceptor-ref>元素可以在Action中使用拦截器,在Action中使用拦截器的配置语法和配置拦截器栈的语法是一样的,下面是一个示例:
在上面的例子中,先用<interceptor...>定义一个拦截器,然后在后面的多个Action中用<<interceptor-ref...>元素来引用拦截器。当在Action中添加了自定义的拦截器后,框架的默认拦截器不再起作用,所以要添加默认拦截器的引用,见代码<interceptor
name="hello" class="com.cqvie.helloInterceptor"/>,<interceptor-ref name="defaultStack"/>, <interceptor-ref name="hello"/>。
1.拦截器
拦截器(Interceptor)是Struts 2 框架的核心组成部分,框架的很多功能都是构建在拦截器基础之上的,例如文件的上传和下载、数据类型的转换和数据的有效性验证等。
拦截器就是动态拦截Action调用的对象。它提供了一种机制,使开发者可以定义一个特点的功能模块,这个模块可以再Action执行之前或者执行之后运行,也可以在一个Action执行之前阻止Action执行,同时还提供了一种可以提取Action中可重用的部分方式。
Struts 2 框架的Action被一个或者多个拦截器(拦截器栈)所包围,所以有的用户请求都会被拦截器拦截,然后交给Action处理,处理结果以逻辑视图的方式返回给用户,然而这个调用的执行流程是由Struts 2 的配置文件(struts.xml)实现的。
2.定义一个拦截器
(1)、自定义一个实现Interceptor接口(或者继承自AbstractInerceptor)的类。
(2)、在struts.xml中注册上一步中定义的拦截器。
(3)、在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有得Action都被这个拦截器拦截。
3.拦截器的使用
在拦截器定义完成后,就可以使用拦截器或者拦截器栈来拦截指定的Action了。拦截器的拦截代码会将在Action的execute方法执行前被执行。
通过<interceptor-ref>元素可以在Action中使用拦截器,在Action中使用拦截器的配置语法和配置拦截器栈的语法是一样的,下面是一个示例:
在上面的例子中,先用<interceptor...>定义一个拦截器,然后在后面的多个Action中用<<interceptor-ref...>元素来引用拦截器。当在Action中添加了自定义的拦截器后,框架的默认拦截器不再起作用,所以要添加默认拦截器的引用,见代码<interceptor
name="hello" class="com.cqvie.helloInterceptor"/>,<interceptor-ref name="defaultStack"/>, <interceptor-ref name="hello"/>。
相关文章推荐
- java集合框架详解(一)
- eclipse启动优化,终于不那么卡了!
- java中使用poi导出Excel详解
- eclipse GC机制
- java.lang.StackOverflowError
- 关于android项目中在eclipse里引入新jar导致新jar中的class not found Exception的解决
- Java多线程编程:变量共享分析(Thread)
- java.lang.RuntimeException: Unable to instantiate service无法启动IntentService zai
- 创建Struts2的Action
- 在web.xml中为Struts2配置拦截器
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- [Java]多线程之生产者消费者优化版
- Java中同步与并发用法分析
- struts2使用session 的三种方式
- spring配置jdbc与hibernate数据源
- spring security源码分析之core包
- Java_获取当前月最后一天
- Java Project和Web Project
- Java实现冒泡排序
- java实现读取文件中的iP字段