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进行文件上传和下载的基本操作。在实际应用中,还需要考虑错误处理、权限控制、文件大小限制等问题。对于大型项目,可以考虑使用成熟的框架如Spring MVC,它提供了更高级别的文件...
在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...
总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...
本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...
本示例基于Servlet和Apache Commons FileUpload库实现了一个简单的文件上传系统。下面将详细介绍这个过程及其涉及到的关键知识点。 首先,`servlet`是Java EE(企业版)的一部分,它是一种用于扩展Web服务器功能的...
本篇文章将深入探讨AJAX异步文件上传以及如何使用Servlet进行处理。 ### 1. AJAX异步文件上传原理 在HTML5之前,由于浏览器安全限制,AJAX无法直接处理文件,但HTML5引入了`FormData`对象,使得AJAX能够处理文件...
总结来说,Servlet实现文件上传功能涉及了HTTP协议、Servlet API的使用、文件I/O操作、安全性考量以及用户交互优化等多个方面。通过深入理解和实践这些知识点,我们可以构建出健壮、安全的文件上传功能。
以下是一个简单的文件上传Servlet示例: ```java @WebServlet("/FileUploadServlet") public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, ...
在本案例"JAVA_servlet的文件上传"中,我们将深入探讨如何使用Servlet实现文件上传功能,这对于构建交互性强的Web应用程序是至关重要的。文件上传功能允许用户在Web表单中选择本地文件并将其发送到服务器进行存储或...
在这个场景下,我们将探讨如何结合`jQuery ajaxFileUpload` 和Servlet实现文件上传的功能。 首先,`jQuery ajaxFileUpload` 插件允许用户在不刷新页面的情况下上传文件,提供了一种友好的用户体验。它的主要优点...
本示例结合了前端的Vue.js框架和后端的Servlet技术,提供了一种实现文件上传的解决方案。Vue.js是一个轻量级的渐进式JavaScript框架,而Servlet则是Java Web开发中的核心组件,用于处理HTTP请求和响应。接下来,我们...
【AjaxSubmit+Servlet实现表单文件上传与下载详解】 在Web开发中,文件上传和下载是常见的功能,尤其是在用户交互丰富的应用中。本项目【Demo Project】利用AjaxSubmit结合Servlet技术,提供了一种高效、异步的方式...
本篇文章将深入探讨如何使用Servlet实现多文件上传的功能。多文件上传是Web应用中常见的一种需求,例如用户可能需要上传一组图片、文档或其他类型的数据。Servlet提供了一种灵活的方式来处理这种需求。 首先,我们...
本工程用于借助Servlet3.0实现文件上传 本工程编码方式:UTF-8 注意: 1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C...
### Servlet实现文件上传与下载...通过上述介绍,我们可以看到使用Servlet技术实现文件上传与下载并不复杂,但需要注意细节处理,如文件路径的管理、异常情况的处理等。希望本文能帮助开发者更好地理解和实现这一功能。
- 虽然可以直接使用Servlet API处理文件上传,但更常见的是使用第三方库,如Apache Commons FileUpload或Spring MVC的MultipartFile。这些库简化了文件上传的处理,提供了更好的异常处理和性能。 10. **前端表单**...
本教程将详细介绍如何通过Servlet来实现CKEditor的文件上传功能。 首先,我们需要了解Servlet的概念。Servlet是Java服务器端程序,用于处理来自客户端(如浏览器)的请求并返回响应。在CKEditor的文件上传场景中,...
在本文中,我们将深入探讨如何使用Java的Servlet技术来实现一个简易的文件上传功能,并且在上传过程中添加进度条的显示。Servlet是Java Web开发中不可或缺的一部分,它提供了服务器端处理HTTP请求的能力,使得我们...
在实际应用中,还要考虑错误处理、安全性(防止恶意文件上传、超出存储限制等)、性能优化(如使用异步处理、限制并发上传等)等问题。总的来说,"基于Servlet实现文件的上传与下载"是Java Web开发者必须掌握的一项...