拦截器实现文件过滤

原创 2007年09月28日 09:42:00
拦截器实现文件过滤
Struts2提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松的实现文件过滤。Struts2中文件上传的过滤器是fileUpload,为了让该拦截器起作用,只需要在该Action配置该拦截器引用即可。
提示:关于拦截器更详细的介绍,请参阅本书的第七章。
配置fileUpload拦截器时,可以为其指定两个参数:
allowedTypes:该参数指定允许上传的文件类型,多个文件类型之间以英文逗号(,)隔开。
maximumSize:该参数指定允许上传的文件大小,单位是字节。
通过配置fileUpload的拦截器,可以更轻易的实现文件过滤,当文件过滤失败后,系统自动转入input逻辑视图,因此必须为该Action配置名为input的逻辑视图。除此之外,还必须显式地为该Action配置defaultStack的拦截器引用。
通过拦截器来实现文件过滤的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Struts2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts>
 <!-- 指定国际化资源文件的baseName为globalMessages -->
 <constant name="struts.custom.i18n.resources" value="globalMessages"/>
 <!-- 设置该应用使用的解码集 -->
 <constant name="struts.i18n.encoding" value="GBK"/>
 <package name="lee" extends="struts-default">
  <!-- 配置处理文件上传的Action -->
  <action name="upload" class="lee.UploadAction">
   <!-- 配置fileUpload的拦截器 -->
             <interceptor-ref name="fileUpload">
    <!-- 配置允许上传的文件类型 -->
                 <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
    <!-- 配置允许上传的文件大小 -->
                 <param name="maximumSize">2000</param>
             </interceptor-ref>
             <interceptor-ref name="defaultStack"/>
   <!-- 动态设置Action的属性值 -->
             <param name="savePath">/upload</param>
   <!-- 配置Struts2默认的视图资源 -->
   <result>/succ.jsp</result> 
   <!-- 配置该应用的input逻辑视图 -->
   <result name="input">/upload.jsp</result>
  </action>
 </package>
</struts>
上面的拦截器过滤不仅过滤了文件的类型,也过滤了文件大小。上传文件的类型只能是图片文件,且文件大小不能大于2000字节(当然,我们随时可以更改到更大)。如果我们上传文件的文件太大,系统将转入input的逻辑视图,也就是/upload.jsp页面。

 

拦截器过滤器登录检测

在访问某些资源时(如订单页面),需要用户登录后才能查看,因此需要进行登录检测。流程: 1、访问需要登录的资源时,由拦截器重定向到登录页面; 2、如果访问的是登录页面,拦截器不应该拦截; 3、用户登录成...
  • u013615806
  • u013615806
  • 2015年10月31日 19:40
  • 311

拦截器实现文件过滤(JSP)

上面手动实现文件过滤的方式虽然简单,但毕竟需要书写大量的过滤代码,不利于程序的高层次解构,而且开发复杂。 Struts 2提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松地实现文件过滤。Str...
  • god_7z1
  • god_7z1
  • 2012年09月12日 16:14
  • 668

struts2文件过滤拦截器fileUpload以及各种文件类型

分为两种方式吧,一种注解,一种配置struts.xml ① 查看文本打印 @InterceptorRefs({       @InterceptorRef ( ...
  • z69183787
  • z69183787
  • 2014年06月26日 21:33
  • 5381

配置拦截器防xss和sql注入

web项目防sql注入
  • u013627689
  • u013627689
  • 2017年11月19日 22:13
  • 212

责任链设计模式(过滤器、拦截器)

责任链设计模式(Chain of Responsibility)的应用有:Java Web中的过滤器链、Struts2中的拦截器栈。 先看一个问题: 给定一个字符串“被就业了:),敏感信息,”,对...
  • z69183787
  • z69183787
  • 2015年02月03日 16:25
  • 3272

使用拦截器Filter修补输入框的xss漏洞

package cmcc.jx.ict.xsgj.filter.xss; import java.io.IOException; import java.util.Iterator; import...
  • zyt_java
  • zyt_java
  • 2017年02月23日 13:45
  • 752

struts2 拦截器修改request的parameters参数失败的问题

为了解决struts2的xss(跨站脚本攻击)问题,我打算用struts2自带的拦截器来过滤所有由request传递来的参数。 ...
  • huplion
  • huplion
  • 2015年10月09日 15:04
  • 1496

【Struts2】:拦截器实现方法过滤

众所周知,我们在使用Struts2进行项目开发的时候,如果为某个Action配置拦截器,那么这个拦截器就会拦截该Action内的所有方法。但是在有些情况下,我们不需要拦截所有的方法,只想拦截指定的方法...
  • u010929604
  • u010929604
  • 2016年05月31日 16:32
  • 1881

使用拦截器的方法过滤特性

如果我们希望对Action中的部分方法实现拦截,Struts2为了实现方法过滤的功能,定义了一个名为MethodFilterInterceptor的类,该类继承了AbstractInterceptor...
  • qq_20545159
  • qq_20545159
  • 2015年05月10日 16:59
  • 834

Java中使用动态代理实现拦截器

拦截器在在流行的开源框架中很常见,依赖的技术就是Java的动态代理。 理解拦截器的核心原理对理解这些开源框架的体系结构至关重要。 下面以一个简单的模型的来说明拦截器的实现的一般方法。 ...
  • JJ_nan
  • JJ_nan
  • 2017年05月17日 09:36
  • 852
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:拦截器实现文件过滤
举报原因:
原因补充:

(最多只允许输入30个字)