Struts之 拦截器配置 ( Interceptor )
struts2体系结构的核心就是拦截器。
以链式执行,对真正要执行的方法(execute())进行拦截。首先执行Action配置的拦截器,在Action和Result执行之后,拦截器再一次执行(与先前调用相反的顺序),在此链式的执行过程中,任何一个拦截器都可以直接返回,从而终止余下的拦截器、Action及Result的执行。
未完~
================================分割线==============================================================
拦截器运行我们在执行前后插入代码执行。Struts2中的拦截器是一个强有力的工具,他可以为action动态添加输入验证(验证用户的输入是否正确)、
对象组装(将用户输入的数据转换为对象的属性)、权限控制(确保访问中是登录用户)、日志记录(记录action的执行情况)等功能,而不需要修改action。
要为action配置引用的拦截器,首先要在interceptors元素中使用interceptor元素定义拦截器,然后在action元素中使用interceptor-ref元素指定引用的拦截器。interceptor元素有两个必要的属性:name和class,前者指定拦截器的名字,后者指定拦截器的完整类名。
假如我们要为ResourceAction配置两个拦截器logger和security,如下所示
拦截器按照action引用拦截器的顺序执行。
如果一个action需要多个拦截器,一 一引用它们也是一件烦恼的事。我们可以将多个拦截器组合在一起,组成一个拦截器栈,
然后在action中直接引用拦截器栈即可
修改上面的例子,将logger和security拦截器放到拦截器栈中,示例如下:
要注意的是,如果你在一个action钟定义了其他的拦截器引用,那么这个action将不再使用默认的拦截器引用,如下:
如果action想要在默认拦截器引用的基础上添加新的拦截器,那么只能在action中重新配置默认拦截器的引用中的拦截器,
那么上面的例子修改如下:
Struts2提供的默认配置文件struts-default.xml定义了默认的拦截器栈引用,对于多数Web应用程序都是适用的。
至于少数有特殊需求的Web程序,你可以自由组合struts-default.xml中定义拦截器和拦截器栈。
注意:拦截器都是在包中定义的,在一个包中不能引用其他包中定义的拦截器,除非这两个包有继承关系(“子”包可以引用“父”包中的拦截器,反之则不行)
Struts之 拦截器配置 ( Interceptor )的更多相关文章
- struts自定义拦截器配置
配置自己的拦截器可以先参照下系统的拦截器是怎么配置的,首先打开struts-default.xml搜索下interceptor:系统里的拦截器有很多,拦截器都是放在堆栈里的,系统引用的是默认堆栈, & ...
- struts自定义拦截器
第01步:配置web.xml,启动struts框架 <?xml version="1.0" encoding="UTF-8"?> <web-a ...
- 2018.12.17 struts.xml 配置自定义拦截器配置
自定义拦截器有三个步骤哦 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PU ...
- Struts的拦截器
Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...
- Struts2 拦截器配置以及实现
@(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...
- Struts 2 拦截器
什么是Struts 2 拦截器 拦截器就是当用户请求后台Action类时在Action的Excute()方法执行前和Result返回魔板试图之后(将页面(数据)发送给浏览器渲染之前)所需要的一些通用 ...
- Struts2拦截器配置
1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AO ...
- Struts2-整理笔记(五)拦截器、拦截器配置
拦截器(Interceptor) 拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制. 拦截器的优点 简化了Action的实现 ...
- java struts学习-拦截器
引言: Struts2拦截器,每个拦截器类只有一个对象实例,即采用单例模式,所有引用这个拦截器的Action都共享这一拦截器类的实例,因此,在拦截器中如果使用类变量,要注意同步问题. • ...
随机推荐
- String replaceAll 正则注意事项及特殊用法(xjl456852原创)
我们知道String replaceAll(参数a, 参数b) 参数a是需要些正则表达式的. 但是今天试了试,发现参数b也有一些其它特性. 查看源码后,发现有些特性是平时不怎么用的.下面我来介绍一下这 ...
- 一、ECharts简介
ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11 ...
- HDU 3784 继续xxx定律 & HDU 2578 Dating with girls(1)
HDU 3784 继续xxx定律 HDU 2578 Dating with girls(1) 做3748之前要先做xxx定律 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ ...
- empty array & Array.from
empty array bug const duplicationArray = (arr = [], times = 2, debug = false) => { let result = [ ...
- JQuery中如何重置(reset)表单(且清空隐藏域)
由于JQuery中,提交表单是像下面这样的: 所以,想当然的认为,重置表单,当然就是像下面这样子喽: 但是,不幸的是,这样写的话,会有一个让你很郁闷的结果,那就是,表单无法重置! 后来,上网查了一下, ...
- 基础算法(java版本)
Practice Author: Dorae Date: 2018年10月11日13:57:44 转载请注明出处 具体代码请移步git 基础算法 图 Prim Kruskal Dijkstra Flo ...
- ajax多文件上传,js原生ajax请求(转)
function uploadImageFile(){ var xhr = new XMLHttpRequest(); //定义表单变量 var file = document.getElementB ...
- 一个经典的消费者和生产者的实现(linux )
#include <stdio.h> #include <pthread.h> #define BUFFER_SIZE 16 // 缓冲区数量 struct ...
- JavaScript设计模式 Item9 --适配器模式Adapter
适配器模式(转换器面模式),通常是为要使用的接口,不符本应用或本系统使用,而需引入的中间适配层类或对象的情况. 适配器模式的作用是解决两个软件实体间的接口不兼容的问题. 一.定义 适配器模式(Adap ...
- DetachedCriteria的使用
设计上能够灵活的依据 Criteria 的特点来方便地进行查询条件的组装.如今对 Hibernate的Criteria 的使用方法进行总结: Hibernate 设计了 CriteriaSpec ...