Struts2的文件下载 | 学习笔记

简介: 快速学习 Struts2的文件下载,介绍了 Struts2的文件下载系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门Struts2的文件下载】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7323


Struts2的文件下载

 

一、文件下载

1、在 servlet 中的文件下载是通过流来实现的

2、Struts2 中可以通过流来实现下载

使用 Http Servlet Response 来实现,和以前 Servlet 中文件下载的方式一致。注意在这个 action 执行方法中返回 null。

有三个方面来了解:

1、action代码:

代码如下:

public class DownloadAction{

public String execute()throws IOException{

HttpServletRequest req=ServletActionContext.getRequest();

HttpServletResponse resp=

ServletActionContext.getResponse();

//获取路径

String path=req.getRealpath("/download");

File file = new File(path,"Struts2.chm");

resp.setContentLength((int)file.length());

resp.setCharacterEncoding("utf-8");

resp.setContentType("application/octet-stream");

resp.setHeader("Content-Disposition",

"attachment;filename=Struts2.ch);

byte[]buffer new byte[400];

int len=0;

Inputstream is = new FileInputstream(file);

Outputstream os = resp.getOutputStream();

while((len=is.read(buffer))!=-1){

os.write(buffer,0,len);

}

os.close();

is.close();

return null;

}

}

2、struts.xml 配置

代码如下:

<package name="default"namespace="/"extends="struts-default">

<!-·当action的处理方法返回空是 不用配置结果集->

<action name="download"

class="cn.sxt.action.DownLoadAction">

</action>

</package>

3、Jsp 页面

代码如下:

<Boby>

<a href=“download.action ”>struts2的文档</a>

</boby >

使用 Struts2本来结果集来进行文件下载

1、 Action 的代码

代码如下:

public class StreamDownloadAction{

private String fileName;

public String execute(){

return Action.SUCCESS;

}

public Inputstream getInputstream()throws

FileNotFoundException{

HttpServletRequest req=ServletActionContext.getRequest();

//获取路径

String path=reg.getRealPath("/download");

return new FileInputStream(new File(path,fileName));

}

public String getFileName(){

return fileName;

}

public void setFileName(String fileName){

this.fileName =fileName;

}

}

2、Strut.xml 配置文件

代码如下:

<action name="streamDownload"

class="cn.sxt.action.StreamDownloadAction">

<result type="stream">

<param name="inputName">inputstream</param>

<param

name="contentDisposition">attachment;filename=$fileName}</par

am>

</result>

</action>

3、Jsp 页面

代码如下

<body>

<a

href="streamDownLoad..action?fileName:=5 truts2.chm">struts2的文档

</a>

<a

href="streamDownload.action?fileName=Struts1.3.chm">struts1

档</a>

</body>

相关文章
|
前端开发 数据库
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
110 0
|
Java 开发者
springmvc.实现文件上传|学习笔记
快速学习springmvc.实现文件上传
|
缓存 Java Apache
Struts2实现单文件上传,多文件上传与下载(十)上
Struts2实现单文件上传,多文件上传与下载(十)
253 0
Struts2实现单文件上传,多文件上传与下载(十)上
Struts2实现单文件上传,多文件上传与下载(十)下
Struts2实现单文件上传,多文件上传与下载(十)
220 0
Struts2实现单文件上传,多文件上传与下载(十)下
|
前端开发 应用服务中间件
Struts2实现单文件上传,多文件上传与下载(十)中
Struts2实现单文件上传,多文件上传与下载(十)
107 0
Struts2实现单文件上传,多文件上传与下载(十)中
|
JavaScript 前端开发 应用服务中间件
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
298 0
SpringMVC的单文件上传,多文件上传和下载文件(十二)下
|
前端开发 Java 应用服务中间件
SpringMVC的单文件上传,多文件上传和下载文件(十二)上
SpringMVC的单文件上传,多文件上传和下载文件(十二)上
221 0
SpringMVC的单文件上传,多文件上传和下载文件(十二)上