struts2拦截器

来源:互联网 发布:淘宝店推广方案 编辑:程序博客网 时间:2024/06/06 13:04
1).了解Struts2拦截器的概念
2).掌握预定义拦截器
3).掌握预定义拦截器栈
4).掌握上传拦截器和重复提交拦截器的使用
5).掌握自定义拦截器

1、Struts2拦截器的概念
拦截器是Struts2框架的核心,它是一种可以让用户在Action执行之前和
执行之前和result执行之后进行一些功能处理的机制。

1)、拦截器的优点:
(1).简化Action的实现。拦截器能把很多功能从Action中独立出来,
     大量减少了Action的代码。
(2).功能更单一。把功能从Action中分离出来,分散到不同的拦截
     器中,这样每个拦截器的功能,以及Action本身的功能都更单一。
(3).通用代码模块化。拦截中分装代码模块。
(4).提高重用性。
(5).实现AOP(面向切面编程)。Struts2通过拦截器实现AOP。

2)、拦截器分类
预定义拦截器
自定义拦截器

2、预定义拦截器:Struts2的预定义拦截器都定义在struts-default.xml文件的struts-default包内。
说出 struts2 中至少 5 个默认拦截器
1、params:这个拦截器似必不可少的。把请求参数设置到响应的Action的属性中,并自动进行类型转换。(图片上传)
2、staticParams:将struts.xml配置文件里定义的Action参数,设置到对应的Action实例中,
<action name = "login" class="com.dre.controller.LoginAction">
<param name="account">test</param>
</action>
这要求action中一定要有一个account属性,并实现getter和setter方法。运行时,Action的account属性在初始化后,会接到这里的赋值“test”
3、fileUpload:用来处理文件上传
4、tokenSesion:
5、exception:异常处理机制<exception-mapping>

3、预定义拦截器栈
注意:如果有自己声明的拦截器,则首先被执行,
其他定义就无效了,因此默认拦截器栈需要手动引入。


4、上传拦截器和重复提交拦截器的使用
1)、文件上传拦截器(FileUpload)
Struts2做上传时会自动把file表单注入到Action的?属性对象,
该功能即是默认的FileUpload拦截器在起作用,但是假如要控制
更多上传信息,则须显式的配置该拦截器。

2)、重复提交拦截器(tokenSession)

5、自定义拦截器
1).创建类,实现Interceptor接口
2).在struts.xml中配置自定义拦截器
     (1)在package中定义拦截器<interceptors>
     (2)在action中引用拦截器<interceptor-ref>

拦截器和Filter(过滤器)有什么区别?
1、拦截器只对action请求有用;过滤器可以过滤所有拦截
2、拦截器不依赖servlet的API;过滤器和servlet的API一定相关
3、拦截器可以访问action上下文、值栈里的对象,而过滤器不能
4、在action的声命周期中,拦截器是插拔式的,可以多次被调用,而过滤器只能在容器初始化时被调用一次
原创粉丝点击