- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2(拦截器_文件上传_输入验证_国际化),struts2国际化拦截器,struts2文件上传,struts2多文件上传,struts2文件上传下载,struts2ajax文件上传,struts文件上传,struts2实现文件上传,struts2文件上传配置,struts1文件上传
IT资讯交流网 WWW.IT315.ORG Struts2 第六章:Struts2的拦截器 – Interceptor 拦截器 Struts2自带的拦截器 Struts2本身提供了很多的拦截器,这些拦截器已经在struts-default.xml文件中定义,在Web应用程序中可以直接引用这些拦截器。具体情况如下: 配置和使用拦截器 前面所介绍的拦截器在struts-default.xml中已经进行了配置。如果您想要使用上述拦截器,只需要在应用程序struts.xml文件中继承struts-default包(package),最后在定义Action时,使用“interceptor-ref name=xx /”引用拦截器或拦截器栈(interceptor stack)。一旦您继承了struts-default包(package),所有Action都会调用拦截器栈 ——defaultStack。当然,在Action配置中加入“interceptor-ref name=xx /”可以覆盖defaultStack。 编写拦截器类 无论选择哪种方式创建拦截器,都需要对下述三个方法进行override。三个方法如下: void init(); 此方法在拦截器实例创建之后,intercept()方法被调用之前调用,用于初始化拦截器所需要资源。当项目启动时初始化方法就会被加载。 void destroy(); 该方法在拦截器实例清除之前调用,用于释放在init()方法中分配的资源。该方法只执行一次。 String intercept(ActionInvocation invocation) throws Exception; 该方法在Action执行之前被调用,拦截器为Action提供的附加功能在该方 法中实现。利用invocation参数,可以获取action执行的状态。在intercept()方法中,如果要继续执行后续部分,可以调用invocation.invoke()。 方法拦截器: 在struts2中还提供了一个特殊的拦截器抽象基类: erceptor.MethodFilterInterceptor 这个拦截器可以指定要拦截或排除的方法列表。通常情况下,拦截器将拦截Action的所有方法调用,但是在某些应用场景中,对某些方法的拦截将会出现一些问题。例如:我们只需要对Action中部分方法进行拦截,将要如何处理啦? MethodFilterInterceptor通过指定include/excluded方法列表来选择拦截或排除的方法,可以设置的参数如下: excludeMethods 要排除的方法 includeMethods 要拦截的方法 在设置拦截或排除的方法时,如果有多个方法,那么以逗号(,)分隔,如果一个方法的名字同时出现在excludeMethods和includeMethods参数中,那么会当作要拦截的方法。 拦截方法的拦截器: 配置拦截器2: 配置拦截器 如果在一个action需要多个拦截器,那又需要如何配置啦?另外,对于多个拦截器之间的执行顺序又是怎么样啦? 对于上述问题有二个解决方法: 为一个Action配置多个拦截器 将多个拦截器配为一个拦截器栈,然后在action中引用 配置拦截器-配置多个拦截器,注意顺序: 通过拦截器栈配置拦截拦截器: 定义默认拦截器-默认拦截器将会作用在所有Action上: 拦截器的配置细节: 配置拦截器的参数和覆盖拦截器的参数:DI(注入) 如果拦截器中包含有成员变量,可以通过在定义拦截器时使用param name=“name”value/param的方式,注入参数值。 在引用的地方,如果需要修改此属性值,仍然可以通过param name=“name”otherValue/param的形式覆盖参数的值。 系统拦截器的功能说明: alias拦截器 用于某个参数转换成另外一个参数来处理。示例: Timer: Timer用于记录Action执行所用的时间: 第七章:Struts2的文件上传 基本包: Struts2使用Common-Fileupload文件上传框架。所以,需要在web中增加以下两个jar文件:Commons-fileupload.jar和commons-io.jar。 到了struts2.1以后,由于它本身已经就依赖于fileupload包,所以,fileupload包已经包含在了项目中。 由Struts2的核心过虑器在用户每次请求时都会判断是否request的类型为multipart/form-data.如果是则将数据封装到用户指定的属性中。
文档评论(0)