Struts2文件上传与下载实验指导书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName());
//判断文件是否存在 if(!upload.exists()){
upload.createNewFile(); } //以上传文件建立一个文件上传流 FileInputStream fis = new FileInputStream(getUpload()); //将上传文件的内容以平均1k的速度写入服务器 byte[] buffer = new byte[1024]; int len = 0; //fis.read(buffer)把fis中读到的内容放在buffer数组中,每次为 1024子节,即1k while ((len = fis.read(buffer)) > 0) {
STRUTS2 框架技术
实验指导书
实验项目名称: Struts2 文件上传与下载实验
Struts2 文件上传与下载实验
实验目的:
1.学习 Struts2 框架文件上传与下载配置,掌握在 MyEclipse 中搭建 Struts2 框架,并用会使用 Struts2 框架的文件上传与下载技术; 2.理解 Struts2 框架的文件上传与下载技术,并能简单运用。
public void setTitle(String title) { this.title = title;
}
public void setUpload(File upload) { this.upload = upload;
}
public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType;
}
public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName;
}
public String getTitle() { return (this.title);
}
public File getUpload() { return (this.upload);
值得注意的是,上面的 Action 还包含了两个属性: uploadFileName , uploadContentType,这两个属性分别用于封装上传文件的文件名,上 传文件的文件类型。这两个属性,体现了 Struts2 设计的灵巧,简化之处, Action 类直接通过 File 类型属性直接了上传文件的文件内容,但这个 File 属性无法获取上传文件的文件名和文件类型,所以 Struts2 直接将文件域中 包 含 的 上 传 文 件 名 和 文 件 类 型 的 信 息 封 装 到 uploadFileName 和 uploadContentType 属性中,可以认为,如果表单中包含一个 name 属 性为 XXX 的文件域,则对应 Action 需要使用 3 个属性来封装该文件域的 信息。
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport { //封装文件标题,这里没有用到,
6
Struts2 文件上传与下载实验
private String title; //封装上传文件域 private File upload; //封装上传文件类型 private String uploadContentType; //封装上传文件名 private String uploadFileName; //取得保存文件的地址,与struts.xml中的 //<param name="savePath">/upload</param>匹配 private String savePath; //执行文件上传的方法 public String execute() throws Exception { //以服务器的文件保存地址和原文件名建立上传文件输出流,该文件 输出流用于把上传的文件保存到服务器的规定地方。
<head> <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" /> <title>FileUpload</title>
</head> <body>
<form action="upload.action" method="post" enctype="multipart/form-data"> File Select : <s:file name="upload" /> <br> <input value="Submit" type="submit" />
<head> <title>success</title>
</head> <body>
success!<br> </body> </html> -----------------------------------------------------------------------------------------------5 新建 action 包和 UploadAction 文件(Struts2 的 Action 文件)
} } -----------------------------------------------------------------------------------------------说明:
上面的 action 和普通的 Action 没有太大的不同,一样提供了 upload 属性,这个属性对应上传页面的文件表单域<s:file name="upload" />,用于 封装表单域的请求参数。
3
wk.baidu.com
Struts2 文件上传与下载实验
index.xml -----------------------------------------------------------------------------------------------<%@ page language="java" pageEncoding="UTF-8"%> <html>
UploadAction -----------------------------------------------------------------------------------------------package action;
import org.apache.struts2.ServletActionContext; import java.io.*;
4
Struts2 文件上传与下载实验
upload.jsp
upload.jsp -----------------------------------------------------------------------------------------------<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <html>
<head> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-<link rel="stylesheet" type="text/css" href="styles.css"> -->
实验内容:
实验:文件上传
2
Struts2 文件上传与下载实验
步骤: 1.新建一个 Struts2FileUplaod 的 web 项目 有何变化 2.在 lib 包中添加 struts2 的 jar 包和使用 jakarta 文件上传框架的 jar 包
3.新建一个主界面用于跳转(index.jsp)
Struts2 文件上传 Struts2 其本身没有提供自己上传技术,也就是说,其需要调用其它的
解析代码来完成文件的上传。 Struts2 同时支持了 Common-FileUpload 和 COS 两个文件上传的框架,
Struts2 的优点就是在这两个框架上又做了进一步封装,使得文件上传的 代码更加简洁。
实验要求:
1.在规定期限独立完成实验内容; 2.提交文件统一压缩(命名:姓名+实验项目名称,如张三_Struts2 文件上传与 下载实验.zip);
命名参考如下
3.压缩文件包含以下内容: 1)提交相应项目文件 8 份 2)提交实验报告文件 1 份 命名参考如下
Struts2FileDownload 包含:
</head>
<body> <a href="jsp/upload.jsp">FileUp</a><br>
<br> </body> </html> -----------------------------------------------------------------------------------------------4.新建上传文件界面 (upload.jsp)和上传成功界面(succ.jsp)
//把读到的buffer写入到fos输出流中 fos.write(buffer, 0, len); } //关闭 fis.close(); fos.close(); return SUCCESS; }
7
Struts2 文件上传与下载实验
public void setSavePath(String value) { this.savePath = value;
Struts2FileDownload 包含:
1
Struts2 文件上传与下载实验
实验原理:
文件上传和下载 文件上传和文件下载是 Web 应用经常需要面对的问题; 文件上传即用户把客户端的文件通过一定的技术上传到服务器上; 文件下载即用户把服务器端的文件通过一定的技术下载到本机上;
常用的 2 中上传框架 Common-FileUpload 和 COS; Common-FileUpload 框架是 Apache 组织下 jakarta-commons 项目下的 一个小项目。 COS 框架是 oreilly 组织下的一个小项目,它比 Common-FileUpload 更加方便。
</form> </body> </html> -----------------------------------------------------------------------------------------------succ.jsp
5
Struts2 文件上传与下载实验
succ.jsp -----------------------------------------------------------------------------------------------<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <html>
}
public String getUploadContentType() { return (this.uploadContentType);
8
Struts2 文件上传与下载实验
}
public String getUploadFileName() { return (this.uploadFileName);
}
private String getSavePath() throws Exception { //根据savePath路径取得该web项目在每一台电脑中真实路径
return ServletActionContext.getServletContext(). getRealPath(
savePath); }
//判断文件是否存在 if(!upload.exists()){
upload.createNewFile(); } //以上传文件建立一个文件上传流 FileInputStream fis = new FileInputStream(getUpload()); //将上传文件的内容以平均1k的速度写入服务器 byte[] buffer = new byte[1024]; int len = 0; //fis.read(buffer)把fis中读到的内容放在buffer数组中,每次为 1024子节,即1k while ((len = fis.read(buffer)) > 0) {
STRUTS2 框架技术
实验指导书
实验项目名称: Struts2 文件上传与下载实验
Struts2 文件上传与下载实验
实验目的:
1.学习 Struts2 框架文件上传与下载配置,掌握在 MyEclipse 中搭建 Struts2 框架,并用会使用 Struts2 框架的文件上传与下载技术; 2.理解 Struts2 框架的文件上传与下载技术,并能简单运用。
public void setTitle(String title) { this.title = title;
}
public void setUpload(File upload) { this.upload = upload;
}
public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType;
}
public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName;
}
public String getTitle() { return (this.title);
}
public File getUpload() { return (this.upload);
值得注意的是,上面的 Action 还包含了两个属性: uploadFileName , uploadContentType,这两个属性分别用于封装上传文件的文件名,上 传文件的文件类型。这两个属性,体现了 Struts2 设计的灵巧,简化之处, Action 类直接通过 File 类型属性直接了上传文件的文件内容,但这个 File 属性无法获取上传文件的文件名和文件类型,所以 Struts2 直接将文件域中 包 含 的 上 传 文 件 名 和 文 件 类 型 的 信 息 封 装 到 uploadFileName 和 uploadContentType 属性中,可以认为,如果表单中包含一个 name 属 性为 XXX 的文件域,则对应 Action 需要使用 3 个属性来封装该文件域的 信息。
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport { //封装文件标题,这里没有用到,
6
Struts2 文件上传与下载实验
private String title; //封装上传文件域 private File upload; //封装上传文件类型 private String uploadContentType; //封装上传文件名 private String uploadFileName; //取得保存文件的地址,与struts.xml中的 //<param name="savePath">/upload</param>匹配 private String savePath; //执行文件上传的方法 public String execute() throws Exception { //以服务器的文件保存地址和原文件名建立上传文件输出流,该文件 输出流用于把上传的文件保存到服务器的规定地方。
<head> <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" /> <title>FileUpload</title>
</head> <body>
<form action="upload.action" method="post" enctype="multipart/form-data"> File Select : <s:file name="upload" /> <br> <input value="Submit" type="submit" />
<head> <title>success</title>
</head> <body>
success!<br> </body> </html> -----------------------------------------------------------------------------------------------5 新建 action 包和 UploadAction 文件(Struts2 的 Action 文件)
} } -----------------------------------------------------------------------------------------------说明:
上面的 action 和普通的 Action 没有太大的不同,一样提供了 upload 属性,这个属性对应上传页面的文件表单域<s:file name="upload" />,用于 封装表单域的请求参数。
3
wk.baidu.com
Struts2 文件上传与下载实验
index.xml -----------------------------------------------------------------------------------------------<%@ page language="java" pageEncoding="UTF-8"%> <html>
UploadAction -----------------------------------------------------------------------------------------------package action;
import org.apache.struts2.ServletActionContext; import java.io.*;
4
Struts2 文件上传与下载实验
upload.jsp
upload.jsp -----------------------------------------------------------------------------------------------<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <html>
<head> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-<link rel="stylesheet" type="text/css" href="styles.css"> -->
实验内容:
实验:文件上传
2
Struts2 文件上传与下载实验
步骤: 1.新建一个 Struts2FileUplaod 的 web 项目 有何变化 2.在 lib 包中添加 struts2 的 jar 包和使用 jakarta 文件上传框架的 jar 包
3.新建一个主界面用于跳转(index.jsp)
Struts2 文件上传 Struts2 其本身没有提供自己上传技术,也就是说,其需要调用其它的
解析代码来完成文件的上传。 Struts2 同时支持了 Common-FileUpload 和 COS 两个文件上传的框架,
Struts2 的优点就是在这两个框架上又做了进一步封装,使得文件上传的 代码更加简洁。
实验要求:
1.在规定期限独立完成实验内容; 2.提交文件统一压缩(命名:姓名+实验项目名称,如张三_Struts2 文件上传与 下载实验.zip);
命名参考如下
3.压缩文件包含以下内容: 1)提交相应项目文件 8 份 2)提交实验报告文件 1 份 命名参考如下
Struts2FileDownload 包含:
</head>
<body> <a href="jsp/upload.jsp">FileUp</a><br>
<br> </body> </html> -----------------------------------------------------------------------------------------------4.新建上传文件界面 (upload.jsp)和上传成功界面(succ.jsp)
//把读到的buffer写入到fos输出流中 fos.write(buffer, 0, len); } //关闭 fis.close(); fos.close(); return SUCCESS; }
7
Struts2 文件上传与下载实验
public void setSavePath(String value) { this.savePath = value;
Struts2FileDownload 包含:
1
Struts2 文件上传与下载实验
实验原理:
文件上传和下载 文件上传和文件下载是 Web 应用经常需要面对的问题; 文件上传即用户把客户端的文件通过一定的技术上传到服务器上; 文件下载即用户把服务器端的文件通过一定的技术下载到本机上;
常用的 2 中上传框架 Common-FileUpload 和 COS; Common-FileUpload 框架是 Apache 组织下 jakarta-commons 项目下的 一个小项目。 COS 框架是 oreilly 组织下的一个小项目,它比 Common-FileUpload 更加方便。
</form> </body> </html> -----------------------------------------------------------------------------------------------succ.jsp
5
Struts2 文件上传与下载实验
succ.jsp -----------------------------------------------------------------------------------------------<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <html>
}
public String getUploadContentType() { return (this.uploadContentType);
8
Struts2 文件上传与下载实验
}
public String getUploadFileName() { return (this.uploadFileName);
}
private String getSavePath() throws Exception { //根据savePath路径取得该web项目在每一台电脑中真实路径
return ServletActionContext.getServletContext(). getRealPath(
savePath); }