用struts2 写 流文件 下载,比如导出excle文件,用windows 的文件另存为,没有问题。但是用迅雷下载时,下载下来的文件的后缀为.action。
解决:思路,迅雷下载时取得的是请求的action的名称。可以将请求的action的后缀改成你要下载的流文件的后缀。(比如,excle 的后缀为xls)。
struts2拦截的请求的后缀名称是可以设置的。这个设置可以在自定义的strtus.properties或struts.xm中定义。
下面是struts.xml中的定义:
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
<constant name="struts.action.extension" value="action,htm,xls" />
这样设置之后,则后缀为.xls的请求,就会被struts2的拦截器所拦截,当成一个action去处理。迅雷下载时取得这个请求的url。就完成了要下载的流文件的后缀的问题。
补充一点:在实际开发中。配置在web.xml文件中的struts2的过滤器,一般不会去过滤所有的请求。会准确的配置出要过滤的请求。可以这样配置。
<!-- 定义Struts2的FilterDispatcher的Filter -->
<filter>
<!-- 定义核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 定义核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- FilterDispatcher用来初始化Struts2 并且处理所用的web请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.xls</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
在Web应用中,当用户点击一个链接或提交一个表单以下载文件时,服务器会将文件内容以二进制流的形式发送到客户端,浏览器接收到这个流后,将其保存为本地文件。Struts2框架提供了一套机制来处理这种HTTP响应。 1. *...
下面将详细讲解如何使用Struts2的文件流技术来实现这些功能。 首先,我们需要理解文件流的概念。文件流是I/O操作中的一种,它允许我们将文件的数据读取到内存中,或者将内存中的数据写入文件。在下载场景中,我们...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...
在表单中,你可以使用`<s:file>`标签来创建一个文件输入控件,然后提交表单时,Struts2会处理文件的上传。 文件下载则涉及到将服务器上的文件以二进制流的形式发送到客户端。在Struts2中,你可以在Action类中定义一...
在Struts2中实现文件下载的功能,可以帮助用户从服务器获取并保存文件到本地计算机,例如这里的"1.xls"文件。下面我们将深入探讨如何在Struts2框架下实现文件下载的实例。 首先,我们需要在项目的Web应用目录结构中...
这个项目示例提供了一个完整的解决方案,使得用户在上传多个文件时可以看到实时的进度条,同时支持文件的下载。 Struts2是Apache软件基金会下的一个开源项目,它是一款基于MVC(Model-View-Controller)设计模式的...
通过定义一个Action类处理下载请求,配置Struts2的Action映射,以及在JSP页面上创建触发下载的链接,我们可以为用户提供安全、便捷的文件下载体验。这个案例对于理解和实现在Java web应用中处理文件下载的流程非常有...
本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是Struts2提供的一种简单易用的文件上传方式。它通过Struts2的`FileUploadInterceptor`...
综上所述,基于Struts2的文件上传下载功能涉及到Action类的设计、Commons FileUpload的使用、Struts2配置、以及安全策略的实施。这个完整的源代码提供了实现这些功能的参考,帮助开发者快速搭建自己的文件管理系统。
2. **Struts2 Action类中的文件处理**: 文件上传后,Struts2会将文件内容存储在一个临时位置。通常,你需要在Action类中创建一个`File`对象和一个`String`类型的属性,如`private File file; private String ...
Struts2上传文件(直接用request)
- **struts.xml**:这是Struts2框架的核心配置文件,定义了应用程序中的Action映射、结果类型以及拦截器等关键配置信息。它主要包含以下几个元素: - `package`:表示一个包,其中可以包含多个Action。 - `action`...
在本项目中,我们关注的是Struts2中的文件上传和下载功能,这些功能是Web开发中常见的需求,尤其在处理用户数据提交或提供资源下载时。下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. ...
总结起来,“Struts2文件下载的参数”涉及到的主要知识点包括:Action类的使用、HTTP响应头的设置(尤其是`Content-Disposition`和`Content-Type`)、文件流的处理、Struts2的结果类型如`StreamResult`,以及安全...
在Struts2中,文件下载可以通过Action类来实现。首先,你需要在Action类中创建一个方法,该方法负责读取文件内容并将其流化到响应中。以下是一个简单的示例: ```java public class DownloadAction extends ...
2. **创建Action类**:定义一个Action类,该类通常包含一个用于接收文件的字段,使用`@Params`注解指定参数类型为`java.io.File`或`org.apache.struts2.dispatcher.multipart.UploadedFile`。 ```java public ...
在本文中,我们将深入探讨如何使用Struts2框架实现文件下载功能,尤其是处理包含中文名字的附件。Struts2是一个流行的Java Web开发框架,它提供了丰富的功能,包括处理HTTP请求、表单提交以及数据绑定等。对于文件...