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>

相关文章
|
前端开发 JavaScript Java
struts2的文件上传
在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在...
977 0
Struts2文件上传
1  在Struts2中上传文件需要 commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar 这两个包。  2  确认页面form表单上的提交方式为POST,enctype属性的值为“multipart/form-data”。
881 0
Struts1——文件上传
       在struts1中,框架本身引入commons-fileupload:         只需几行代码+配置,便可以完成文件的上传。      首先使我们form表单里面的配置:   然后在ActionForm中,将我们的input为file的提交项对应为FormFile类型: 在Action中,通过我们的ActionForm就可以直接拿到上传文件的信息,进行存盘,入库等操作。
1034 0
|
Java 前端开发
struts2 文件下载
文件下载是一个很常见的功能,用struts2实现文件下载的步骤: 一)定义一个Action类,FileDownload.java [java] view plaincopy package com.struts2.filedownload;      import java.io.InputStream;  
1260 0

热门文章

最新文章

相关课程

更多