整体框架
一、拦截器简介
二、自定义拦截器
三、使用预定义的token拦截器
四、文件上传
五、文件下载
六、关于<result>元素的type属性
拦截器类似于Servlet中的过滤器,通过配置,一个拦截器可以拦截所有来自客户端的action请求。
拦截器将在Action中的目标方法之前被执行。
• Struts2框架本身已经使用了大量的拦截器,比如数据类型转换、表单校验、数据装载、国际化等功能,均是通过拦截器实现的。
struts-default.xml中定义了大量Struts2框架自带的拦截器,其中也定义了许多由多个拦截器所组成的拦截器栈。
• 通常我们在struts.xml中定义的<package>都继承自strtus-default,一方面,默认就使用了预定义的拦截器栈;另一方面,也可以通过名称使用另外的预定义拦截
抽象包的定义:
抽象包在其<package>的中声明属性abstract=“true”,表示我当前包为抽象包,不能处理任何Action请求,功能类似于抽象类
(1)横切性业务需求(使用过滤器来编程)
(2)正交性业务需求
当多个客户向服务器发出请求时,与服务器建立连接;
为了实现多所有客户的请求进行验证,设置一个横切性的业务,来处理请求验证,即拦截器。
使用过滤器完成的功能:
面向切面的编程(AOP)---过滤器实现
拦截器也是面向切面的编程,当web工程有横切性业务需求的时候,使用struts的拦截器,来完成相应的业务处理。
• struts-default.xml中定义的默认拦截器:
<default-interceptor-ref name="defaultStack"/>
如果action没有配置拦截器,则使用默认的拦截器。