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 用户注册
}
}