Struts2——拦截器
来源:互联网 发布:数据分析师怎么样 编辑:程序博客网 时间:2024/05/17 04:01
Struts2的拦截器
1.拦截器原理
(1)请求Struts2的Action时,会先查找配置文件,实例化相应的拦截器对象并逐个调用,然后才会执行Action的execute方法。
(2)自定义拦截器,有三个步骤,a.编写拦截器类,实现com.opensymphony.xwork2.interceptor.Interceptor接口或继承AbstractInterceptor类。b.在struts.xml中定义自定义的拦截器。c.在struts.xml的Action中使用拦截器。
(3)自定义的拦截器类要重写intercept方法,其ActionInvocation类的参数代表它要拦截的Action,调用其invoke方法来将控制权下放给下一个拦截器或者Action的execute方法。
2.配置拦截器
(1)在struts.xml中配置拦截器,<package>标签下有<interceptors>标签,下面有多个<interceptor>标签。<interceptor>标签的属性有name(拦截器名)和class(拦截器类)。<interceptor>标签下还可以有<param>标签,给拦截器定义参数,有属性name(参数名)和内容(参数值)。若要获取这些参数,需要在拦截器类中定义与参数名同名的字段,并且定义相应的setter函数。
(2)可以将多个定义好的拦截器组成拦截器栈,使用<interceptor-stack>标签,有属性name(拦截器栈名),下面有多个<interceptor-ref>标签,有属性name(拦截器名)。且拦截器栈中不仅可以包含拦截器,还可以包含其他拦截器栈。
(3)使用拦截器,在struts.xml文件的action标签下添加<interceptor-ref>标签,name属性来制定拦截器或拦截器栈。系统默认拦截器栈为defaultStack。
(4)拦截器默认拦截Action的所有方法,也可以人为的过滤方法。让自定义的拦截器类继承MethodFilterInterceptor类,重写其doInterceptor方法、setExcludeMethods方法和setIncludeMethods方法。其中setExcludeMethods方法用来设置不被拦截的方法,setIncludeMethods方法用来设置要被拦截的方法,两者有冲突时以setIncludeMethods为准。然后配置struts.xml文件,在对应的<interceptor-ref>标签下加上<param>标签,name属性为setExcludeMethods或setIncludeMethods方法,内容为Action中要设置过滤的方法名。
3.Struts2內建的拦截器
內建拦截器可以完成请求参数解析,数据校验,文件上传控制等大部分功能,都被配置在struts-default.xml文件中,在配置struts.xml文件时,需要在<package>标签中继承这个文件:extends=“struts-default”。
- Struts2—拦截器
- struts2——拦截器
- Struts2——拦截器
- Struts2—拦截器(一)
- Struts2拦截器 —— prepare拦截器
- Struts2拦截器—自定义拦截器验证用户登录
- Struts2.0——什么是拦截器
- struts2——拦截器原理模拟!!!
- struts2——自定义拦截器!!!
- struts2——自定义拦截器
- Struts2(五)——核心拦截器
- struts2进阶【6】——拦截器
- Struts2笔记——自定义拦截器
- Struts2——MethodFilterInterceptor--方法拦截器
- 【SSH】——struts2 拦截器
- Struts2(五)——核心拦截器
- Struts2——拦截器(interceptor)
- Struts2(五)——核心拦截器
- PHP扩展迁移-注意事项
- hdu 2955 Robberies (0-1背包)
- 简单的二维码扫描
- 既点击改
- opencv中Pro文件配置内容
- Struts2——拦截器
- MyBatis获取插入记录的自增长字段值
- 有关于写php程序时从mysql数据库中提取数据乱码
- Red card
- List Set Map 解析
- JS:本地对象和方法 及 内置对象Math的方法
- JMenu
- 安装及配置nginx
- PHP7安装(mac)