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 )的更多相关文章

  1. struts自定义拦截器配置

    配置自己的拦截器可以先参照下系统的拦截器是怎么配置的,首先打开struts-default.xml搜索下interceptor:系统里的拦截器有很多,拦截器都是放在堆栈里的,系统引用的是默认堆栈, & ...

  2. struts自定义拦截器

    第01步:配置web.xml,启动struts框架 <?xml version="1.0" encoding="UTF-8"?> <web-a ...

  3. 2018.12.17 struts.xml 配置自定义拦截器配置

    自定义拦截器有三个步骤哦 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PU ...

  4. Struts的拦截器

    Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...

  5. Struts2 拦截器配置以及实现

    @(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...

  6. Struts 2 拦截器

    什么是Struts 2 拦截器  拦截器就是当用户请求后台Action类时在Action的Excute()方法执行前和Result返回魔板试图之后(将页面(数据)发送给浏览器渲染之前)所需要的一些通用 ...

  7. Struts2拦截器配置

    1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AO ...

  8. Struts2-整理笔记(五)拦截器、拦截器配置

    拦截器(Interceptor) 拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制. 拦截器的优点 简化了Action的实现 ...

  9. java struts学习-拦截器

    引言: Struts2拦截器,每个拦截器类只有一个对象实例,即采用单例模式,所有引用这个拦截器的Action都共享这一拦截器类的实例,因此,在拦截器中如果使用类变量,要注意同步问题. •       ...

随机推荐

  1. 一、ECharts简介

    ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11 ...

  2. How to put username &password in MongoDB(Security&Authentication)?(配置用户认证在MongoDB)

    Default do not need username and password authenticate when access mongoDB ,I want to set up the use ...

  3. codeforces gym 100357 K (表达式 模拟)

    题目大意 将一个含有+,-,^,()的表达式按照运算顺序转换成树状的形式. 解题分析 用递归的方式来处理表达式,首先直接去掉两边的括号(如果不止一对全部去光),然后找出不在括号内且优先级最低的符号.如 ...

  4. Ubuntu 16.04安装VMware-Workstation-12

    1.下载: https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.1.1-3770994.x86_64. ...

  5. ubuntu16.04 卸载 php7并安装php5.6记录

    ubuntu16.04版本从默认源安装的php版本为7.x版本,我们都知道php7.0已经舍弃了很多旧版本的函数等内容,这对旧系统来说是致命的,那么,我们就有了安装旧版php的需求,而同一主机安装两个 ...

  6. 1.4-动态路由协议OSPF①

    r2#sh ip ospf border-routers 查看ABR 修改OSPF接口优先级 r1(config)#int e 0 r1(config-if)#ip ospf priority 100 ...

  7. HDUJ 2070 Fibbonacci Number

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. Linux后台执行

    在Linux中有时你须要将脚本(test.sh)和可运行程序(exe)后台运行,请使用例如以下方式: nohup ./test.sh & nohup ./exe & 这样执行的程序能够 ...

  9. STM8S PWM 应用 呼吸灯

    //主功能接受:使用MCU STM8S105C6 的PWM通道2 PC2 来做呼吸灯 已经验证OK,呵 //呵,这个PWM设置刚開始用还是有点麻烦,由于是自己摸索.花点时间.还是解决了 . //所用子 ...

  10. 【转】 vsftp上传文件出现553 Could not create file解决方法

    因工作需要,需要搭建一个ftp服务器,我使用ubuntu 10.04操作系统,下载vsftpdy源代码, 进行了编译,安装,然后按照INSTALL文件,创建了用户等操作.    因为时间比较紧,我采用 ...