最近发现struts1.x在下载文件时,当点击下载时,在弹出的保存、打开窗口时选择取消,后台报错,在网上查询了很久,用网络上的方法都没有解决这个问题,经测试发现struts2的文件下载并没有出现类似问题,因此查看了下struts2的源代码,修改了下载的代码,完美解决这个问题,在此备份以便以后查看
InputStream inputStream = null;
OutputStream os = null;
try {
response.addHeader("Content-Type", "application/octet-stream;charset=UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=download.txt"); //下载时文件名称
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
byte[] buff = new byte[8192];
inputStream = new FileInputStream("D://2.txt"); //文件路径
os = response.getOutputStream();
int count = 0;
while (-1 != (count = inputStream.read(buff))) {
os.write(buff, 0, count);
}
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(inputStream != null) {
inputStream.close();
}
if(os != null) {
os.close();
}
}
分享到:
相关推荐
学习Struts1.x需要理解其设计理念,掌握配置文件的编写,熟练运用Action、ActionForm、JSP标签,以及理解MVC模式在实际开发中的应用。虽然现在Struts1.x已经被Struts2等更新的框架所取代,但它的基础思想和设计模式...
- **Struts2.x** 配置文件较少,主要为struts.xml,支持注解配置,减少XML配置的繁琐。 8. **插件与扩展性**: - **Struts1.x** 插件较少,扩展性相对较弱。 - **Struts2.x** 有丰富的插件系统,如Ajax、...
在Struts1.x中,Action是核心组件之一,它必须继承自org.apache.struts.action.Action类,并且需要覆盖execute方法。Action对象由框架创建和管理,每一个HTTP请求都对应一个Action实例。然而,在Struts2.x中,Action...
- **手动搭建**:在 MyEclipse 中手动添加 Struts1.x 的相关依赖库,配置 web.xml 文件,并创建 struts-config.xml 文件来定义 Action 映射等配置。 - **IDE 工具支持**:利用 MyEclipse 或 Eclipse 等集成开发环境 ...
在Struts1.x中,文件上传主要依赖于`org.apache.struts.upload`包中的类。最常用的是`MultipartRequestHandler`,它实现了Servlet API中的`HttpServletRequestWrapper`接口,允许处理multipart/form-data类型的请求...
3. **配置文件**:主要包括struts-config.xml,这是Struts1.x的主配置文件,用于定义Action、ActionForm、ActionMapping等组件。在这里,你可以配置URL与Action类的映射,设置数据验证规则等。 4. **ActionForm**:...
Struts1.x提供了处理多文件上传的功能,使得开发者可以方便地集成到自己的应用程序中。 在Struts1.x中实现多文件上传,主要涉及以下几个核心概念和步骤: 1. **表单设计**:首先,你需要创建一个HTML表单,包含`...
总结来说,解决Struts2中下载取消报错问题的关键在于正确管理和控制文件流,确保在客户端取消下载时,服务器能够及时响应并终止操作。通过监控`ServletResponse`的状态和`ServletOutputStream`的关闭情况,可以有效...
在Struts1.x中,实现I18N(Internationalization)主要是通过资源文件(如*.properties)来管理不同语言的文本。这些文件按照语言和地区进行组织,例如,`message_en.properties`用于英文,`message_zh_...
然而,随着时间的推移,Struts 1.x 因为其局限性和安全问题,逐渐被Struts 2 和其他现代框架如Spring MVC、Play Framework等取代。尽管如此,了解 Struts 1.x 的基础知识对于理解Java Web开发的历史和演变仍然非常有...
- 首先,你需要下载Struts1.x的库文件,如struts-1.3.10-all.zip,并将其解压缩。 - 在解压后的lib目录中,你可以找到所有必需的jar文件,包括Struts框架的实现和其他依赖。 - 创建一个新的Web项目,例如myStruts...
1. **安装和配置**:了解如何在项目中集成Struts1.x框架,配置web.xml和struts-config.xml文件。 2. **Action和ActionForm**:深入理解这两者的作用,如何编写和使用它们。 3. **视图渲染**:熟悉JSP页面和Struts...
然而,需要注意的是,Struts1.x已经较为过时,现代的Web开发更多地转向了Spring MVC、Play Framework或AngularJS等更现代的解决方案。尽管如此,理解Struts1.x可以帮助我们了解Web框架的发展历程,以及MVC模式在实际...
首先,我们来看核心的`struts.jar`文件。这是Struts框架的核心库,包含了所有必要的类和接口,用于处理HTTP请求,管理Action类,以及实现MVC模式。它包含了ActionForm、Action、Dispatcher等关键组件,这些组件协同...
Struts 2.x权威指南(第3版)
Struts1.x是Apache软件基金会旗下Jakarta项目的一个核心组件,它是一款开源的MVC(Model-View-Controller)框架,用于构建企业级Java Web应用程序。这个框架在2000年代初非常流行,因其规范化的开发流程和强大的功能...
在Struts1.x中,实现文件上传功能是一个常见的需求,特别是在处理用户提交的表单时需要包含多个文件。下面我们将详细介绍如何使用Struts1.x来实现多个文件的上传。 首先,我们需要在HTML表单中添加`...
**国际化资源文件**:为了支持多语言环境,可以通过在`struts.properties`文件中配置`Struts.custom.i18n.resources`属性来指定资源文件。资源文件可以分为全局资源文件、包级别的资源文件和类级别的资源文件。当...
通过本系列教程的学习,读者将能够掌握Struts 1.x框架的基本使用方法,了解其核心组件和配置,并能够通过实践来加深对Struts 1.x开发过程的理解。同时,通过与Struts 2.x的比较,读者可以更深入地理解Web应用框架的...