`

使用servlet进行文件上传

阅读更多
package cn.lhf.servlet;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.JOptionPane;
//文件上传的引入的包
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import cn.lhf.bean.*;
import cn.lhf.dao.AuthorDAO;
import cn.lhf.dao.BookDAO;
import cn.lhf.dao.PublisherDAO;
import cn.lhf.dao.TypeDAO;
import cn.lhf.dao.UserDAO;
import javax.*;
import java.io.PrintWriter;
/**
 * servlet类,获取有关进行用户管理的页面的信息,并进行有关的处理。
 * 
 */
@SuppressWarnings("serial")//
public class UserServlet extends HttpServlet
{
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		this.doPost(request, response);
	}
	@SuppressWarnings( { "unchecked", "deprecation" })
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
	    //设定请求和响应的对象,防止乱码
		request.setCharacterEncoding("GBK");
		response.setContentType("text/html;charset=GBK");
		response.setCharacterEncoding("GBK");
		//设定出错页面,出现异常时转向该页面
		String path = "error.jsp";
		// 获取页面中传递的标识
		String status = request.getParameter("status");
		PrintWriter out=response.getWriter();
		if (!"".equals(status)) 
		{
			
			if ("reg".equals(status)) //注册
			{
				// 工厂类
				DiskFileItemFactory factory = new DiskFileItemFactory();
				
				String rootpath = request.getRealPath("/uploadImage");
				// 设置临时目录,将文件放在该目录下
				factory.setRepository(new File(rootpath));
				// 设置大小
				factory.setSizeThreshold(1024 * 1024);
				// 准备上传
				ServletFileUpload upload = new ServletFileUpload(factory);
				User user = new User();
				UserDAO udao = new UserDAO();
				try 
				{
					List<FileItem> list = upload.parseRequest(request);
					// 遍历
					for (FileItem item : list) 
					{
						// 判断是否为表单
						if (item.isFormField()) 
						{
							// 得到字段名字
							String name = item.getFieldName();
							// 得到真正的值
							String value = item.getString("GBK");
							if ("userName".equals(name)) 
							{
								user.setUserName(value);
							}
							else if ("password".equals(name)) 
							{
								user.setPassword(value);
							} 
							else if ("sex".equals(name)) 
							{
								user.setSex(value);
							} 
							else if ("address".equals(name))
							{
								user.setAddress(value);
							}
							else if ("postcode".equals(name)) 
							{
								user.setPostcode(value);
							} 
							else if ("phone".equals(name)) 
							{
								user.setPhone(value);
							}
							else if ("email".equals(name)) 
							{
								user.setEmail(value);
							} 
							else if ("description".equals(name)) 
							{
								user.setDescription(value);
							}
						} 
						else 
						{
							// 如果是一个文件类型,用getName得到真正的值
							String value = item.getName();
							int start = value.lastIndexOf("\\");
							String fileName = value.substring(start + 1);
							user.setImageFile("uploadImage\\" + fileName);
							// 上传
							item.write(new File(rootpath, fileName));
						}//end for遍历
					}
				} 
				catch (Exception ex) 
				{
					ex.printStackTrace();
				}
				//调用udao的注册方法进行验证
				boolean flag = udao.insertUser(user);
				if (flag) //如果成功,则提示注册成功,并转向登录的页
				{
					JOptionPane.showMessageDialog(null,"恭喜你,注册成功!!");
					path = "login.jsp";
				}
				response.sendRedirect(path);
			}
		}// end 用户注册
		 
	}
}

 

分享到:
评论

相关推荐

    使用Servlet实现文件的上传与下载

    以上代码片段展示了如何使用Servlet进行文件上传和下载的基本操作。在实际应用中,还需要考虑错误处理、权限控制、文件大小限制等问题。对于大型项目,可以考虑使用成熟的框架如Spring MVC,它提供了更高级别的文件...

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    servlet实现文件上传下载

    总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...

    JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...

    基于servlet的文件上传

    本示例基于Servlet和Apache Commons FileUpload库实现了一个简单的文件上传系统。下面将详细介绍这个过程及其涉及到的关键知识点。 首先,`servlet`是Java EE(企业版)的一部分,它是一种用于扩展Web服务器功能的...

    ajax异步文件上传,servlet处理

    本篇文章将深入探讨AJAX异步文件上传以及如何使用Servlet进行处理。 ### 1. AJAX异步文件上传原理 在HTML5之前,由于浏览器安全限制,AJAX无法直接处理文件,但HTML5引入了`FormData`对象,使得AJAX能够处理文件...

    servlet实现文件上传功能

    总结来说,Servlet实现文件上传功能涉及了HTTP协议、Servlet API的使用、文件I/O操作、安全性考量以及用户交互优化等多个方面。通过深入理解和实践这些知识点,我们可以构建出健壮、安全的文件上传功能。

    Servlet中文件上传和下载

    以下是一个简单的文件上传Servlet示例: ```java @WebServlet("/FileUploadServlet") public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, ...

    JAVA_servlet的文件上传案例

    在本案例"JAVA_servlet的文件上传"中,我们将深入探讨如何使用Servlet实现文件上传功能,这对于构建交互性强的Web应用程序是至关重要的。文件上传功能允许用户在Web表单中选择本地文件并将其发送到服务器进行存储或...

    使用jQuery ajaxFileUpload+servlet实现文件上传

    在这个场景下,我们将探讨如何结合`jQuery ajaxFileUpload` 和Servlet实现文件上传的功能。 首先,`jQuery ajaxFileUpload` 插件允许用户在不刷新页面的情况下上传文件,提供了一种友好的用户体验。它的主要优点...

    vue+servlet的文件上传案例.rar

    本示例结合了前端的Vue.js框架和后端的Servlet技术,提供了一种实现文件上传的解决方案。Vue.js是一个轻量级的渐进式JavaScript框架,而Servlet则是Java Web开发中的核心组件,用于处理HTTP请求和响应。接下来,我们...

    【Demo Project】ajaxSubmit+Servlet表单文件上传和下载

    【AjaxSubmit+Servlet实现表单文件上传与下载详解】 在Web开发中,文件上传和下载是常见的功能,尤其是在用户交互丰富的应用中。本项目【Demo Project】利用AjaxSubmit结合Servlet技术,提供了一种高效、异步的方式...

    servlet实现多文件上传

    本篇文章将深入探讨如何使用Servlet实现多文件上传的功能。多文件上传是Web应用中常见的一种需求,例如用户可能需要上传一组图片、文档或其他类型的数据。Servlet提供了一种灵活的方式来处理这种需求。 首先,我们...

    servlet3.0文件上传 01.zip

    本工程用于借助Servlet3.0实现文件上传 本工程编码方式:UTF-8 注意: 1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C...

    Servlet实现文件上传与下载

    ### Servlet实现文件上传与下载...通过上述介绍,我们可以看到使用Servlet技术实现文件上传与下载并不复杂,但需要注意细节处理,如文件路径的管理、异常情况的处理等。希望本文能帮助开发者更好地理解和实现这一功能。

    servlet实现的上传文件实例

    - 虽然可以直接使用Servlet API处理文件上传,但更常见的是使用第三方库,如Apache Commons FileUpload或Spring MVC的MultipartFile。这些库简化了文件上传的处理,提供了更好的异常处理和性能。 10. **前端表单**...

    CKEditor 上传文件(Servlet实现)

    本教程将详细介绍如何通过Servlet来实现CKEditor的文件上传功能。 首先,我们需要了解Servlet的概念。Servlet是Java服务器端程序,用于处理来自客户端(如浏览器)的请求并返回响应。在CKEditor的文件上传场景中,...

    基于servlet的简易文件上传(带进度条)

    在本文中,我们将深入探讨如何使用Java的Servlet技术来实现一个简易的文件上传功能,并且在上传过程中添加进度条的显示。Servlet是Java Web开发中不可或缺的一部分,它提供了服务器端处理HTTP请求的能力,使得我们...

    基于Servlet实现文件的上传与下载

    在实际应用中,还要考虑错误处理、安全性(防止恶意文件上传、超出存储限制等)、性能优化(如使用异步处理、限制并发上传等)等问题。总的来说,"基于Servlet实现文件的上传与下载"是Java Web开发者必须掌握的一项...

Global site tag (gtag.js) - Google Analytics