Struts2的文件上传和下载续
接上面未完成的功能。
一、首先要去下载两个上传文件用的jar包(FileUpload和io的jar包):
下载地址:http://commons.apache.org/
说明:下载完成之后要解压出来,分别选择里面的两个jar文件拷贝到所创建的项目中去。
FileUpload中要拷贝的:commons-fileupload-1.2.2.jar;
io中要拷贝的:commons-io-2.0.1.jar。然后就可以实现上传和下载的功能了。
二、接着上面的项目,在upload文件夹下创建upload2.jsp页面:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
file1:<input type="file" name="file1"><br>
file2:<input type="file" name="file2"><br>
<input type="submit" value="submit">
</form>
</body>
</html>
三、在src目录下创建一个com.test.servlet包,并且新建一个文件上传的servlet,名称为UploadServlet,注意这里还没有使用struts2的技术:
package com.test.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
String path = request.getRealPath("/upload");
factory.setRepository(new File(path));
factory.setSizeThreshold(1024 * 1024);
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){
String name = item.getFieldName();
String value = item.getString("gbk");
request.setAttribute(name, value);
}
else{
String name = item.getFieldName();
String value = item.getName();
int start = value.lastIndexOf("\\");
String fileName = value.substring(start+1);
request.setAttribute(name, fileName);
item.write(new File(path,fileName));
// OutputStream os = new FileOutputStream(new File(path,fileName));
//
// InputStream is = item.getInputStream();
//
// byte[] buffer = new byte[400];
//
// int length = 0;
//
// while((length = is.read(buffer)) > 0){
// os.write(buffer,0,length);
// }
//
// os.close();
//
// is.close();
}
}
} catch (Exception e) {
// TODO: handle exception
}
request.getRequestDispatcher("upload/result2.jsp").forward(request, response);
}
}
四、在upload文件夹下创建一个result2.jsp页面:
<body>
username: ${requestScope.username }<br>
password: ${requestScope.password }<br>
file1: ${requestScope.file1 }<br>
file2: ${requestScope.file2 }
</body>
结果:能够实现上传的功能,不是基于struts2的。
分享到:
相关推荐
在第15讲中,我们聚焦于Struts2的文件上传和下载功能,这是web开发中常见的需求。在这里,我们将深入探讨这两个主题,同时也会涉及到一些源码分析和实用工具的使用。 **文件上传** 在Struts2中,文件上传是通过`...
在第19讲“Struts2深入探索”中,我们将继续深入理解Struts2的核心特性和工作原理,这包括但不限于配置、拦截器、插件、以及源码分析。以下是关于Struts2的一些关键知识点: 1. **MVC模式**:Struts2遵循Model-View...
10. **下载(三十一).txt**:这部分可能讲解了如何在Struts2中实现文件下载功能,包括设置响应头、生成下载链接和处理流。 以上就是对“Struts2学习笔记”涉及知识点的详细阐述。通过这些内容,学习者可以系统地...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
创建Struts2工程通常涉及配置构建工具(如Maven或Gradle),添加Struts2的依赖库,以及在项目结构中设置必需的目录和文件,比如`struts.xml`配置文件。 2. **第一个示例程序Hello Struts** "Hello Struts"是初学...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
### Struts2框架概述 #### 1.1 什么是Struts2框架? **Struts2框架** 是一个基于MVC(Model-View-Controller)架构的开源Java Web应用程序框架,它简化了Java Web应用程序的开发过程。Struts2提供了一种简洁而强大...
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................
#### 第十三课:SSH整合的jar包 1. **Struts2**:列出整合Struts2所需的jar包。 2. **Hibernate3.3.2**:列出整合Hibernate所需的jar包。 3. **Spring**:列出整合Spring所需的jar包。 通过以上内容的学习,初学者...
《马士兵Hibernate学习笔记》是一份详尽的教程,涵盖了Hibernate框架的核心概念和技术要点。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它有效地解决了Java应用程序与数据库之间的数据交互问题,...
**JSP完全学习笔记概述** JSP(JavaServer Pages)是一种动态网页技术,它结合了HTML、Java代码和脚本语言,使得开发者可以方便地创建交互式的Web应用程序。本学习笔记全面涵盖了JSP的关键概念、核心语法、常用标签...
#### 第十三课:SSH 整合的 Jar 包 - **Struts2**:列出 Struts2 及其相关库。 - **Hibernate3.3.2**:列出 Hibernate 3.3.2 及其相关库。 - **Spring**:列出 Spring 相关库。 以上知识点覆盖了 Spring2.5 的核心...
{12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...
#### 第十三课:SSH 整合的 jar 包 - **所需 jar 包列表**: - **Struts2**:包括核心库和其他插件。 - **Hibernate3.3.2**:包括核心库和必要的插件。 - **Spring**:包括核心库、AOP、context、test 等模块。
### Java学习笔记知识点详解 #### 一、Java平台概述 - **J2SE (Java Platform Standard Edition)**: 标准版Java开发平台,主要用于桌面应用软件的开发。 - **J2EE (Java Platform Enterprise Edition)**: 企业版...
9. **Struts和Struts2**:Struts是基于MVC设计模式的JavaWeb框架,Struts2是其升级版本,增加了更多功能和灵活性,如拦截器和插件系统。 10. **JSF(JavaServer Faces)**:JSF是另一种JavaWeb UI框架,它提供组件...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
【SpringMVC基础概念】 ...通过这些基础知识的学习,你可以理解SpringMVC的核心概念,为后续的高级应用,如集合类型参数绑定、数据回显、文件上传、JSON交互、RESTful支持和拦截器的使用奠定坚实的基础。