- 浏览: 1588003 次
- 性别:
- 来自: 吉林
文章分类
- 全部博客 (624)
- C/C++ (33)
- Java (181)
- 网络相关 (7)
- 我爱篮球 (3)
- 也爱足球 (4)
- 杂谈 (1)
- 系统架构 (3)
- Web Service (14)
- Framework (3)
- 系统命令 (8)
- 管理平台相关 (8)
- 其它 (35)
- Websphere (1)
- Struts2 (24)
- Hibernate (16)
- Spring (23)
- javascript (20)
- jquery (23)
- html/css/div (28)
- 数据库 (40)
- JavaWeb (27)
- 设计模式 (2)
- 文档编写 (3)
- SVN (5)
- Ant (1)
- Maven (13)
- 软件项目管理 (8)
- AOP (1)
- kindeditor (1)
- JSON (2)
- Servlt/JSP (4)
- WordXML (2)
- XML (12)
- 面试相关 (7)
- Tomcat (11)
- 性能与调优 (29)
- 职业发展 (2)
- 操作系统 (7)
- AJAX (2)
- DWR (1)
- Eclipse (12)
- 持续集成 (3)
- 批处理命令 (1)
- Mozilla Rhino (2)
- 新鲜技术 (18)
- Apache mina (2)
- 底层技术 (18)
- Linux (22)
- 新鲜技术,IT历史 (1)
- 敏捷开发 (1)
- 版本控制 (5)
- 较火技术 (7)
- 集群 (2)
- Web前端 (13)
- 报表工具 (3)
- 网站架构 (5)
- 大数据 (8)
- 分布式存储 (5)
- 云计算 (8)
- TCP/IP协议 (1)
- 负载均衡 (3)
- 硬件 (1)
- 表现层技术 (3)
- Velocity (3)
- jvm (6)
- 并发编程 (10)
- hadoop (8)
- 数据结构和算法 (12)
- 计算机原理 (1)
- 测试驱动开发-TDD (3)
- 开发技巧 (1)
- 分词器 (1)
- 项目构建工具 (2)
- JMX (4)
- RMI (1)
- 测试技术 (22)
- 网络完全 (1)
- Git (4)
- apache开源包 (4)
- Java常用 (1)
- mock (2)
- OSGi (2)
- MongoDB (1)
- JBPM (1)
- Storm (3)
- mysql (2)
- telnet (1)
- 正则表达式 (1)
- bootstrap (4)
- Apache ActiveMQ (1)
- redis (9)
- Nginx (2)
- rsync+inotify文件同步 (2)
- testng (1)
- 原型设计工具 (1)
- 工程能力 (1)
- 风险控制 (3)
- ibatis (1)
- 分布式 (4)
- 安全技术 (1)
- 计算机基础 (4)
- 消息中间件 (1)
- UML (2)
最新评论
-
u012236967:
java命令执行jar包(里面的main函数)的方式(包括依赖其它的jar包问题) -
世界尽头没有你:
Selenium自动化测试从入门到精通(Java版)百度网盘地 ...
自动化测试工具 Selenium WebDriver 入门教程(针对主流浏览器) -
小小西芹菜:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
dwr实现Reverse Ajax推送技术的三种方式 -
hellozhouqiao:
楼主,请教一点问题.现在我们需要在excel 的页脚里面加上图 ...
FreeMaker + xml 导出word(处理目录,图片和页眉页脚问题) -
乱在长安:
使用Timer会有各种各样的问题好嘛?!书上推荐使用Sched ...
DelayQueue (ScheduledThreadPoolExecutor调度的实现)
问题描述:前段时间在struts2下做文件上传,当上传大文件时出现了几个问题。
问题1:当有大文件上传时,即超过struts2配置的最大值时会报出一段英文的出错信息, "the request was rejected because its size ..."
问题2: 由于错误的产生,原来页面上输入的内容也全部不见了,也就是说参数(params)注入失败。
解决方法:解决第一个问题的方法挺多,现只列举最简便的方法。
解决方案1: 解决方法在上传文件的的action加入对addActionError方法的重写,代码如下:
- /**
- * 替换文件上传中出现的错误信息 引用 import java.util.regex.Matcher; import
- * java.util.regex.Pattern;
- *
- */
- @Override
- public void addActionError(String anErrorMessage) {
- // 这里要先判断一下,是我们要替换的错误,才处理
- if (anErrorMessage
- .startsWith("the request was rejected because its size")) {
- Matcher m = Pattern.compile("\\d+").matcher(anErrorMessage);
- String s1 = "";
- if (m.find())
- s1 = m.group();
- String s2 = "";
- if (m.find())
- s2 = m.group();
- // 偷梁换柱,将信息替换掉
- super.addActionError("你上传的文件大小(" + s1 + ")超过允许的大小(" + s2 + ")");
- // 也可以改为在Field级别的错误
- // super.addFieldError("file","你上传的文件大小(" + s1 + ")超过允许的大小(" + s2 +
- // ")");
- } else {// 否则按原来的方法处理
- super.addActionError(anErrorMessage);
- }
- }
/** * 替换文件上传中出现的错误信息 引用 import java.util.regex.Matcher; import * java.util.regex.Pattern; * */ @Override public void addActionError(String anErrorMessage) { // 这里要先判断一下,是我们要替换的错误,才处理 if (anErrorMessage .startsWith("the request was rejected because its size")) { Matcher m = Pattern.compile("\\d+").matcher(anErrorMessage); String s1 = ""; if (m.find()) s1 = m.group(); String s2 = ""; if (m.find()) s2 = m.group(); // 偷梁换柱,将信息替换掉 super.addActionError("你上传的文件大小(" + s1 + ")超过允许的大小(" + s2 + ")"); // 也可以改为在Field级别的错误 // super.addFieldError("file","你上传的文件大小(" + s1 + ")超过允许的大小(" + s2 + // ")"); } else {// 否则按原来的方法处理 super.addActionError(anErrorMessage); } }
这种解决方法的弊病是,无法将问题2来解决,下面推荐解决方案2。
解决方案2: 将struts2的默认上传文件大小调大,在struts.xml中加入
<constant name="struts.multipart.maxSize" value="10000000" />,这样整个系统中的上传大小最大都为 10000000byte了,但是如果超过了这个大小还是出现上述问题,所以最好能设置一个超大数(汗)。然后在上传的action中设置上传文件的大小小于10000000,这样就能按照你的方式来处理了。
if (file != null) { if(file.length() <= 2097152) //大于2M 2M= 2*1024*1024 { ..... .... } }
评论
2 楼
你有罪
2013-03-09
我发觉struts2上传文件时是先将文件上传到服务器中,上传完了后执行后台action的上传方法,如果上传文件很大的时候,很久都不会进到ACTION的方法,而且强行中断后struts会报错并返回一个input的视图。
1 楼
Navee
2012-10-29
第二个办法太暴力了````
发表评论
-
Struts2与Velocity整合
2014-02-19 17:13 2334转自:http://yjhexy.iteye.com/ ... -
Velocity简介和Velocity与Jsp、Freemarker的对比(java常用的三种表现层技术)
2014-02-19 17:09 1443Velocity 是一个基于java ... -
学习Struts2 jQuery Plugin 3.0(转)(此外还有struts-jquery-grid-tags, showcase等)
2014-01-14 20:04 1367from:http://blog.csdn.net/ld_f ... -
KindEditor上传图片问题
2013-03-19 15:24 3405转自:http://www.cnblogs.com/jav ... -
使用SVN检出Struts Spring Hibernate源码
2013-02-05 16:50 1357Spring Spring源码是由springframewo ... -
Servlet与Struts action线程安全问题分析
2012-08-23 10:22 1179Servlet/JSP技术和ASP、PHP等相比,由于其多线程 ... -
Struts2的addActionError() 与addFieldError ()
2012-08-23 09:41 1091addActionError() 与addFieldError ... -
struts2中<s:property value="xx"/>的工作原理
2012-08-20 10:18 1712使用struts2标签的jsp页面中<s:propert ... -
struts2的线程安全(好好看看)(在理解不扎实与测试下自己砸了理解的真理)
2012-08-08 15:57 2948转自:http://japi.iteye.com/blog/4 ... -
struts2下利用json进行文件上传和下载遇到的一些问题(暂时未明白)
2012-07-16 16:52 1319上传文件时:利用jquery的ajaxfileupload异步 ... -
struts2文件下载(使用struts2配置方式和单纯response方式)
2012-07-16 16:43 1866若是使用类似Servlet方式下载,可以通过ServletAc ... -
struts2文件上传(单个文件和多个文件)
2012-07-16 16:38 19641. 文件上传的原理: 表单元素的encty ... -
探究Struts2运行机制:StrutsPrepareAndExecuteFilter 源码剖析 (转)
2012-07-13 15:22 1205作者:niumd blog:http://ari.i ... -
Struts2的StrutsPrepareAndExecutefilter与FilterDispatcher
2012-07-13 15:18 981FilterDispatcher是早期struts2的过滤器, ... -
OGNL遍历list和map以及访问四个范围的属性值
2012-07-11 17:23 2344转自:http://blog.csdn.net/a9529 ... -
struts2的result为chain的跳转问题(参数设置)
2012-07-09 14:59 2632本文章非原创,本文章抄录于http://blog.sina.c ... -
struts2拦截器(转)
2012-07-01 13:52 1208转自:http://www.blogjava.ne ... -
struts2工作原理(转)
2012-07-01 13:45 1269读者如果曾经学习 过S ... -
Struts2返回JSON数据的具体应用范例(转)
2012-06-29 09:20 1403早在我刚学Struts2之初 ... -
从源代码角度看Struts2返回JSON数据的原理(转)
2012-06-28 23:30 2075前面一篇文章其实只是介绍了如何在Struts2中返回JSON数 ...
相关推荐
后者更为常用,因为它提供了更丰富的功能,如处理大文件分块上传、内存和磁盘存储策略等。在Action类中,你可以使用`FileUpload`类解析请求中的文件。 5. **文件存储**:解析出文件后,你需要将文件保存到服务器的...
Struts2允许设置最大上传文件大小,并通过`filter-mapping`配置限制可接受的MIME类型。 6. **错误处理与反馈**: 在处理文件上传和下载时,可能会出现各种异常,如文件不存在、磁盘空间不足等。因此,需要适当的错误...
在Struts2的配置文件(struts.xml)中,我们需要添加相应的拦截器来处理文件上传请求。这个"struts2(ssh)带进度条文件上传 demo 的jar包1"可能是为了演示如何实现这一功能,但由于描述中提到权限问题,jar包被分成...
总的来说,Struts2的文件上传功能结合拦截器机制,使得开发者能够轻松地处理用户上传的文件,同时确保系统在出现异常时能有良好的反馈和恢复机制。通过深入理解这一过程,你可以构建出更健壮和用户友好的web应用。
- 错误处理:可能包括处理文件上传过程中可能出现的异常,如文件过大、类型不合法等。 4. 实战经验: 对于初学者,这个源码可以帮助理解实际项目中如何运用Struts2进行文件操作。通过阅读源码,可以学习到如何...
用户上传文件后,表单提交至`/fileManage/upload`这个URL地址,并由Struts2框架调用`UploadAction`的`execute()`方法进行处理。 ### Struts2文件下载知识点 虽然给定文件的内容中没有直接提及文件下载的实现方法,...
需要注意的是,实际应用中还要考虑文件的安全性,例如防止文件覆盖、限制上传文件类型和大小,以及处理可能出现的异常情况。同时,对于文件保存路径的设置,应当避免硬编码,以提高代码的可维护性和安全性。
此外,还可以使用Struts2的`ParametersInterceptor`拦截器来处理文件上传。 二、文件下载 1. 创建下载服务:在Struts框架中,通常通过一个Action来提供文件下载服务。Action需要根据请求参数找到待下载文件的路径...
6. **错误处理与反馈**: 在处理过程中,可能会遇到文件过大、类型不符等问题。因此,你需要进行错误检查并在必要时向用户返回错误信息。 7. **安全考虑**: 为了防止恶意文件上传,如上传脚本文件执行攻击,需要对...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web框架,它极大地简化了Java web应用的开发工作。在Struts2中,文件上传是一个常见的需求,尤其在用户需要提交表单并附带文件时。下面将详细阐述如何...
总结起来,"ext struts2 swfupload 跨域文件上传"是关于如何使用EXTJS构建前端界面,结合Struts2处理服务器端逻辑,利用SwfUpload的跨域能力实现文件上传的一种解决方案。这个过程中涉及的技术包括JavaScript编程、...
2. 创建上传文件的JSP页面。 3. 编写Action类,使用Apache Commons FileUpload处理文件。 4. 验证和保存上传的文件。 5. 显示上传结果。 通过这种方式,你可以构建一个灵活且易于维护的文件上传系统。记住,文件...
文件上传可能会出现各种错误,比如文件过大、网络中断等,因此需要在Action中捕获并处理这些异常,给出相应的反馈信息。 7. **性能优化**: 如果文件数量巨大,可以考虑分批次上传,或者使用多线程上传,以提高...
文件上传过程中可能会出现各种错误,如文件过大、类型不正确等。在Action类中捕获这些异常,并根据需要重定向到错误页面。 7. **使用第三方库**: 虽然Struts1.2本身支持基本的文件上传,但处理大型文件或复杂的...
在处理用户交互,特别是文件上传时,Struts2提供了一种便捷的方式。然而,文件上传功能也涉及到一个重要的问题,那就是大小限制。在实际应用中,为了防止恶意用户上传大文件导致服务器资源耗尽,或者保护服务器免受...
Struts2是一个强大的Java web应用程序框架...以上就是关于"Struts2批量上传文件"的基本实现和相关知识点,希望对你有所帮助。在实际项目中,根据具体需求,可能还需要考虑性能优化、并发处理以及文件的版本控制等问题。
Struts2是一个强大的MVC...通过以上步骤,我们可以利用Struts2和Uploadify实现多文件上传功能,为用户提供友好的上传体验,同时确保服务器端能正确处理和存储上传的文件。在实际项目中,应根据具体需求进行定制和优化。
在Java Struts2框架中实现文件上传进度条显示,主要涉及到的技术点包括Struts2的文件上传、Ajax异步通信以及前端进度条组件的使用。下面将详细讲解这些知识点。 首先,Struts2的文件上传功能是通过Struts2提供的`...
在Struts2中实现文件上传功能,通常会涉及到处理大文件、用户体验优化等问题,如显示文件上传进度条。这个场景下,我们结合Ajax技术,可以创建一个实时反馈文件上传进度的动态界面,提升用户交互体验。 首先,我们...
在配置方面,Struts2的配置文件(struts.xml)需要设置允许文件上传的相关参数,如最大上传文件大小、临时文件目录等。此外,为了处理文件下载,你需要在Action中提供一个方法,该方法负责读取文件内容并将其设置到...