Struts2详解:上传文件与配置限制

需积分: 0 1 下载量 125 浏览量 更新于2024-08-17 收藏 922KB PPT 举报
"这篇文档是关于使用Struts2框架进行文件上传的说明,涵盖了Struts2的配置细节和上传文件的处理方式。" 在Struts2框架中,上传文件是常见的功能之一,以下是对该主题的详细解释: 一、设置临时文件夹 在Struts2中,上传的文件会被暂时保存在服务器的某个位置,这个位置可以通过配置常量`struts.multipart.saveDir`来设定。例如,设置值为`/tmp`表示文件将被保存在系统的临时目录下。 二、文件大小限制 默认情况下,Struts2允许上传的最大文件大小为2MB。如果需要上传更大文件,可以通过配置常量`struts.multipart.maxSize`来调整,例如,将其值设为`16777216`表示允许最大16MB的文件上传。 三、文件类型限制 限制上传文件类型有两种主要方法: 1. JavaScript前端校验:在客户端通过JavaScript获取上传文件的扩展名并进行判断,但这种方法仅提供基本的安全性,因为用户可以绕过前端校验。 2. Struts2拦截器:在服务器端,可以通过配置Struts2拦截器来限制文件类型。例如,在action配置中,添加`myinterceptor`,并设置`allowedTypes`参数为允许的文件类型,如`image/bmp,image/png,image/gif,image/jpeg,image/jpg`,同时可以设置`maximumSize`参数限制文件大小。 四、Struts2框架概述 Struts2是一个基于Model-View-Controller (MVC)模式的Java Web框架,由Apache软件基金会维护。它的设计旨在解决传统Struts1框架的一些问题,如耦合度高、扩展性不足等。Struts2提供了丰富的特性,包括页面导航管理、输入数据验证、国际化与本地化支持、Ajax集成以及防止表单重复提交等。 五、Struts2的优点 1. **无侵入式设计**:与Struts1不同,Struts2应用可以独立于Servlet API和Struts API,降低了耦合度。 2. **拦截器**:提供AOP(面向切面编程)能力,可用于实现权限控制等功能。 3. **类型转换器**:自动将请求参数转换为所需类型,简化了开发。 4. **多视图支持**:支持JSP、FreeMarker、Velocity等多种视图技术。 5. **输入校验**:针对特定方法进行输入验证,提升了用户体验。 6. **国际化管理**:支持全局、包级和Action级别的国际化资源文件。 六、Struts1与Struts2的区别 从Struts1到Struts2的升级,主要变化在于控制器部分,Struts1使用ActionServlet,而Struts2则采用Filter作为控制器,这种方式使得Struts2更易于集成和配置。 总结,Struts2在文件上传方面提供了灵活的配置选项,同时在设计和功能上相比Struts1有所优化,提高了开发效率和代码的可维护性。了解并熟练掌握这些知识对于进行Struts2的Web应用开发至关重要。