`

struts 1.2 文件上传部分剖析

阅读更多

参见《struts1.2 文件上传处理(引自javablog)》一文:

http://blog.163.com/old_tiger@126/blog/static/55145766200861425941381/

 

文中有一些解释错误之处,纠正如下:

 

// session中清空maxUploadSize             

request.getSession().removeAttribute("maxUploadSize"); 

//不需要清空maxUploadSize, 因为每次请求到来时是由RequestProcessor中的processPopulate方法->RequestUtils.populate()->从而触发multipartHandler.handleRequest(request); 如果从session 中清空了这一自定义的参数,那么下次请求来时这个设置就没有了。

 

 // 请求数据的size超出了规定的大小.

request.getSession().setAttribute(BasicConstants.baseSizeLimitExceededException, e);
//
按照文中的描述,exception应该都保存在request范围内而不是session

 

Struts根本没有把上传过程中出的超出最大值的异常带到Action,因为那是不可能的

//不是说不可能,而是因为multipartHandler.handleRequest(request)是在RequestProcessorprocessPopulate方法中被调用,而action的逻辑处理要在RequestProcessorprocessActionPerform方法中。如果真要把processPopulate中的异常带到processActionPerform中也是有办法的,比如把异常设在requestattribute中,在action处理的时候先去检查一下有没有出现这些异常等,但这就需要稍微改动一下struts的框架了。

 

<controller>中设置以下这些不是必需的:

<set-property value="true" property="inputForward" />
<set-property value="text/html; charset=UTF-8" property="contentType" />

 

struts在处理异常请求的时候将出现的ServletExceptionIOExcepton都交给了上层去处理了,根本不会抛出来。所以这两种异常是抓不到的。

//描述不准确,exception的配置处理是在processActionPerform中的processException函数中,而这发生在processPopulate方法之前,当然是抓不到的。

 

 

分享到:
评论

相关推荐

    偶遇struts1.2文件上传

    这篇博客"偶遇struts1.2文件上传"可能涉及到了如何在Struts1.2框架下实现文件上传功能,这是一个常见的需求,特别是在用户需要提交图像、文档等数据时。下面我们将详细讨论Struts1.2中的文件上传机制及其相关的源码...

    struts1.2上传图片源代码(包含检查文件格式、限制文件大小功能)

    Struts1.2是一个经典的Java Web开发框架,用于构建基于MVC(模型-视图-控制器)模式的应用程序。...对于初学者来说,这是一个很好的学习实例,可以帮助他们掌握Web开发中的文件上传操作和Struts1.2框架的使用。

    struts1.2上传图片例子

    通过对核心代码的分析,我们不仅了解了文件上传的基本流程,还学习了如何在Struts中配置和处理文件上传的过程。这对于初学者来说是一个很好的实践案例,有助于深入理解Struts框架的工作原理及其实现细节。

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    - **文档管理**:文件上传、下载、共享,版本控制。 - **会议管理**:预约、通知、记录。 - **日程安排**:个人及团队的日程规划。 - **公告通知**:发布、订阅公司内部消息。 - **项目管理**:跟踪项目进度,分配...

    struts 文件上传下载 程序

    本篇将基于一个具体的`struts`文件上传下载程序进行深入剖析,旨在帮助读者理解Struts在文件上传下载方面的实现原理及其具体应用。 #### 二、核心知识点解析 ##### 1. 文件上传实现机制 **1.1 文件上传处理类 `...

    struts-2.3.1.2-apps.zip

    这些示例展示了如何在实际项目中运用Struts2的各种特性,包括但不限于配置文件的设置、Action类的编写、结果类型配置、拦截器的使用、国际化、文件上传下载、Ajax集成等。 1. **配置文件**:在Struts2中,`struts....

    网上在线考试系统 (带完整数据库)

    系统采用了【Struts 1.2】框架,这是一个MVC(Model-View-Controller)架构的开源框架,用于构建企业级Java Web应用程序。Struts 1.2 提供了良好的结构化和可维护性,帮助开发者更好地组织和管理代码。 在数据库...

    struts2学习笔记.doc

    - **上传原理**:Struts2利用MultipartResolver实现文件上传功能。 - **配置与实现**: - 在`struts.xml`中配置上传相关的参数。 - 实现Action类中文件上传的具体逻辑。 **5.2 文件下载** - **下载原理**:Struts...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    Struts2学习笔记与心得

    - Struts2通过其强大的插件体系结构支持各种扩展插件,这些插件可以为开发人员提供额外的功能,如数据验证、国际化、文件上传等功能,极大地简化了开发过程。 ##### 1.5 远程调用支持 - Struts2支持多种远程调用...

    struts从入门到精通.doc

    - 讲解了如何使用Struts标签实现文件上传功能。 #### 第13章 StrutsBean标签库 - **13.1 如何获得Servlet上下文的有关内容** - 解释了如何使用StrutsBean标签获取Servlet上下文信息。 - **13.1 如何获得Java资源...

    struts 2 漏洞报告

    该漏洞的产生主要源于Struts 2 中的Jakarta Multipart解析器在处理文件上传时,未能正确处理客户端发送的`Content-Type`头字段。具体来说,当用户上传文件时,Struts 2 会根据`Content-Type`头部信息解析请求数据。...

    struts2讲义

    - Struts2提供了专门的文件上传拦截器来处理这些问题。 #### 第5章 Struts2标签库 - **5.1 Struts2标签使用原理解疑** - **知识点**: 介绍了Struts2标签库的工作原理。 - **核心内容**: - 标签库提供了一系列...

    Java开发常见错误及解决方案文件

    - 环境说明:在MyEclipse5.5使用Struts1.2、Spring2.0、Hibernate3.1和Tomcat服务器时出现错误。 - 错误提示:如找不到用户实体类等。 - 原因分析:Spring和Hibernate共用的一些jar包版本冲突导致了错误。 - ...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    J2EE电子商务系统开发从入门到精通--基于Struts和Hibernate技术实现

    - `struts-config.xml`文件用于配置Struts框架的行为,包括Action映射、表单bean、插件等信息。 **2.7 Struts标签库** - **2.7.1 Bean标签库** - Bean标签库提供了对bean的操作支持,例如获取bean的属性值等。 -...

Global site tag (gtag.js) - Google Analytics