`
zhaolianyang
  • 浏览: 97435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)

阅读更多
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的。
2
1
分享到:
评论

相关推荐

    struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)

    在第15讲中,我们聚焦于Struts2的文件上传和下载功能,这是web开发中常见的需求。在这里,我们将深入探讨这两个主题,同时也会涉及到一些源码分析和实用工具的使用。 **文件上传** 在Struts2中,文件上传是通过`...

    struts2学习笔记十九(第19讲.Struts2深入探索 续)

    在第19讲“Struts2深入探索”中,我们将继续深入理解Struts2的核心特性和工作原理,这包括但不限于配置、拦截器、插件、以及源码分析。以下是关于Struts2的一些关键知识点: 1. **MVC模式**:Struts2遵循Model-View...

    Struts2学习笔记

    10. **下载(三十一).txt**:这部分可能讲解了如何在Struts2中实现文件下载功能,包括设置响应头、生成下载链接和处理流。 以上就是对“Struts2学习笔记”涉及知识点的详细阐述。通过这些内容,学习者可以系统地...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    Java/JavaEE 学习笔记

    Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...

    Struts2学习笔记2011(详细图解)

    创建Struts2工程通常涉及配置构建工具(如Maven或Gradle),添加Struts2的依赖库,以及在项目结构中设置必需的目录和文件,比如`struts.xml`配置文件。 2. **第一个示例程序Hello Struts** "Hello Struts"是初学...

    J2EE学习笔记(J2ee初学者必备手册)

    Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...

    黑马程序员_struts2框架2016版视频_struts2_day01笔记

    ### Struts2框架概述 #### 1.1 什么是Struts2框架? **Struts2框架** 是一个基于MVC(Model-View-Controller)架构的开源Java Web应用程序框架,它简化了Java Web应用程序的开发过程。Struts2提供了一种简洁而强大...

    spring学习笔记

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................

    牛人的spring学习笔记,非常适合初学者

    #### 第十三课:SSH整合的jar包 1. **Struts2**:列出整合Struts2所需的jar包。 2. **Hibernate3.3.2**:列出整合Hibernate所需的jar包。 3. **Spring**:列出整合Spring所需的jar包。 通过以上内容的学习,初学者...

    马士兵hibernate学习笔记.docx

    《马士兵Hibernate学习笔记》是一份详尽的教程,涵盖了Hibernate框架的核心概念和技术要点。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它有效地解决了Java应用程序与数据库之间的数据交互问题,...

    JSP 完全学习笔记 全

    **JSP完全学习笔记概述** JSP(JavaServer Pages)是一种动态网页技术,它结合了HTML、Java代码和脚本语言,使得开发者可以方便地创建交互式的Web应用程序。本学习笔记全面涵盖了JSP的关键概念、核心语法、常用标签...

    spring2.5_学习笔记.

    #### 第十三课:SSH 整合的 Jar 包 - **Struts2**:列出 Struts2 及其相关库。 - **Hibernate3.3.2**:列出 Hibernate 3.3.2 及其相关库。 - **Spring**:列出 Spring 相关库。 以上知识点覆盖了 Spring2.5 的核心...

    Java学习笔记-个人整理的

    {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...

    spring2.5 学习笔记

    #### 第十三课:SSH 整合的 jar 包 - **所需 jar 包列表**: - **Struts2**:包括核心库和其他插件。 - **Hibernate3.3.2**:包括核心库和必要的插件。 - **Spring**:包括核心库、AOP、context、test 等模块。

    java学习笔记

    ### Java学习笔记知识点详解 #### 一、Java平台概述 - **J2SE (Java Platform Standard Edition)**: 标准版Java开发平台,主要用于桌面应用软件的开发。 - **J2EE (Java Platform Enterprise Edition)**: 企业版...

    JavaWeb程序设计任务教程第2版课后题答案

    9. **Struts和Struts2**:Struts是基于MVC设计模式的JavaWeb框架,Struts2是其升级版本,增加了更多功能和灵活性,如拦截器和插件系统。 10. **JSF(JavaServer Faces)**:JSF是另一种JavaWeb UI框架,它提供组件...

    webwork学习笔记

    ### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...

    springmvc第一天课堂笔记

    【SpringMVC基础概念】 ...通过这些基础知识的学习,你可以理解SpringMVC的核心概念,为后续的高级应用,如集合类型参数绑定、数据回显、文件上传、JSON交互、RESTful支持和拦截器的使用奠定坚实的基础。

Global site tag (gtag.js) - Google Analytics