Struts文件下载(静态)

前言:在实际的开发中,我们可能需要动态下载和静态下载,

动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里,

静态下载:比如一些网站一些固定的资源,提供给我们下载

这里我写的是关于静态的下载实现流程:
第一步:

编写Action类,响应下载的的超链接:
  1)声明contentType(文件类型)contentLength( 下载的文件的长度)contentDisposition(响应信息的类型)这三个属性,并提供这三个属性的set和get方法

  ps:其中contentDisposition属性一定要声明而且也要指定属性值,:因为默认的属性值,无法响应下载的result的type类型的Stream

  具体声明如下:

 1     private String contentType;
 2     private long contentLength;
 3     private String contentDisposition;
 4     private InputStream inputStream;
 5
 6     public String getContentType() {
 7         return contentType;
 8     }
 9
10     public long getContentLength() {
11         return contentLength;
12     }
13
14     public String getContentDisposition() {
15         return contentDisposition;
16     }
17
18     public InputStream getInputStream() {
19         return inputStream;
20     }
21     

2提供inputstream:(提供一个输入流给浏览器下载)
代码如下:

 1     private InputStream inputStream;
 2         public InputStream getInputStream() {
 3         return inputStream;
 4     }
 5
 6
 7     public String execute() throws Exception {
 8
 9         //确定各个成员变量的值
10
11         contentDisposition = "attachment;filename=hidden.html";
12
13         ServletContext servletContext = ServletActionContext.getServletContext();//取得ServletContext对象
15         String fileName = servletContext.getRealPath("/File/hidden.html");//取得需要下载文件的路径
16         inputStream = new FileInputStream(fileName);
17
18
19         return SUCCESS;
20     }
时间: 2024-12-22 10:14:33

Struts文件下载(静态)的相关文章

struts 文件下载 annotation 注解版

[本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

struts 文件下载

文件下载步骤: (1)获取要下载的文件的文件名.对其进行编码处理,因为文件上传默认是get提交 (2)文件下载提交的业务方法 (3)返回文件流的方法 (4)下载显示的文件名 文件下载列表: <body> <table border="1"> <tr> <td>编号</td> <td>文件名</td> <td>操作</td> </tr> <c:forEach it

Struts文件下载

前三个动态提供 一般后面的两个就是用struts预设 1024b 即2Kb contentType="text/html"; contentDisposition="attachment;filename=date.html"; ServletContext context=ServletActionContext.getServletContext(); String fileName=context.getRealPath("/files/date.h

Struts文件下载具体解释

在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码 1.action类 public class FileDownLoadAction extends ActionSupport{ private String filename;//下载文件的名称 @Override public String execute() throws Exception { return SUCCESS; } //下载源 public InputStream getInputStre

java:struts框架2(方法的动态和静态调用)

1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

Servlet&amp;jsp基础:第二部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接: HttpServletResponse. 20 产生响应状态行... 20 HTTP状态常量... 20 setStatus(int sc)20 sendError21 构建响应消息头... 21 addHeader与setHeader21 addIntHeader与setIntHeader21 addDateHead

Struts1.3——文件上传和下载

1.Struts文件上传 在Web开发中,会经常涉及到文件的上传和下载,比如在注册账户的时候,我们需要上传自己的头像等. 我们可以利用Struts很方便地实现文件的上传. 1.1 开发步骤 现在,假设我们要在注册的时候上传自己的头像.新建项目名称为StrutsFileUpAndDown,并引入Struts1.3 (1)首先,写注册的JSP页面register.jsp 它的body内容如下: <body> <h1>注册用户</h1> <% --如果表单有文件控件,则

Struts2中文乱码问题源码分析___转

前几天在论坛上看到一篇帖子,是关于Struts2.0中文乱码的,楼主采用的是spring的字符编码过滤器 (CharacterEncodingFilter)统一编码为GBK,前台提交表单数据到Action,但是在Action中得到的中文全部是乱码,前 台的页面编码都是GBK没有问题.这是为什么呢?下面我们就通过阅读FilterDispatcher和CharacterEncodingFilter 这两个过滤器的源代码,了解其实现细节,最终得出为什么中文还是乱码! web.xml配置: 1     

4、struts2 文件上传下载

1.文件上传 struts提交的文件组件上传, 前台: 1.提交方式POST 2.表单类型 multipart/form-data 3.input type=file 后台: Apache提供的FileUpload组件 核心类: FileItemFactory FileItem的工厂 ServletFileUpload servlet 中的文件上传的核心类 FileItem 封装了上传的表单文件项的信息 总之 文件上传,处理起来比较麻烦 Struts的文件上传 文件上传拦截器帮助我们晚场了文件上