public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost-----UserServlet---doPost--->"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String method = request.getParameter("method"); PrintWriter out = response.getWriter(); if ("ajaxhtml".equals(method)) { System.out.println("ajaxhtml------------------------------------>"); // 调用javaBean的方法 User user = new User(); UserService service = new UserServiceImpl(); List<User> userAll = service.getUserAll(); request.setAttribute("user", userAll); request.getRequestDispatcher("newList.jsp").forward(request, response); } else if ("ajaxjson".equals(method)) { String uname = request.getParameter("uname"); String upass = request.getParameter("upass"); // 判断:注意第二个equals判断是否加了! if (uname == null && uname.equals("")) { // 返回页面提示信息 out.print("1"); } else if (upass == null && upass.equals("")) { // 返回页面提示信息 out.print("2"); } else { // 1.去数据库里查询是否有这个用户和密码 User user = new User(); user.setUname(uname); user.setUpass(upass); UserService service = new UserServiceImpl(); User users = service.getUserByUnameAndUpass(user); if (users != null && !users.equals("")) { request.getSession().setAttribute("user", user); List<User> userAll = service.getUserAll(); StringBuffer json = new StringBuffer("["); for (int i = 0; i < userAll.size(); i++) { User u = userAll.get(i); // [{"id":"1","uname":"aa","upass":"aa"},{"id":"2","uname":"bb","upass":"bb"}] // 集合数据拼接成json数组 String str = "{\"id\":\"" + u.getId() + "\",\"uname\":\"" + u.getUname() + "\",\"upass\":\"" + u.getUpass() + "\"}"; json.append(str); if (i < userAll.size() - 1) { json.append(","); } } json.append("]"); out.print(json); } else { out.print("3"); } } out.close(); // 统计人数的相应业务的处理 } else if ("listener2".equals(method)) { System.out .println("listener2------------------------------------>"); String uname = request.getParameter("uname"); // 判断:注意第二个equals判断是否加了! if (uname != null && !uname.equals("")) { User user = new User(); user.setUname(uname); request.getSession().setAttribute("user", user); // 加listener2 是因为我把success放在listener2目录下: response.sendRedirect("listener2/success.jsp"); } else { // 返回页面提示信息 request.setAttribute("mess", "用户名不能为空"); System.out.println(1111); System.out.println("UserServlet------else---null->"); request.getRequestDispatcher("listener2/login.jsp").forward( request, response); } } else if ("listener".equals(method)) { String uname = request.getParameter("uname"); // 判断:注意第二个equals判断是否加了! if (uname != null && !uname.equals("")) { User user = new User(); user.setUname(uname); request.getSession().setAttribute("user", user); // 加listener 是因为我把success放在listener目录下: response.sendRedirect("listener/success.jsp"); } else { // 返回页面提示信息 request.setAttribute("mess", "用户名不能为空"); System.out.println("UserServlet------else---->"); request.getRequestDispatcher("listener/login.jsp").forward( request, response); } } else if ("login".equals(method)) { System.out.println("login--------------->" + method); String uname = request.getParameter("uname"); String upass = request.getParameter("upass"); User user = new User(); user.setUname(uname); user.setUpass(upass); // 1.把数据保存在User里 // 然后到后台去查询 UserService service = new UserServiceImpl(); User users = service.getUserByUnameAndUpass(user); System.out.println("doPost---------->" + users); if (users != null && !users.equals("")) { // 把users保存在Session作用域里 request.getSession().setAttribute("user", users); System.out .println("UserServlet------users != null&&users.equals(')---->" + users.getUname() + users.getUpass()); response.sendRedirect("success.jsp"); } else { // 返回页面提示信息 request.setAttribute("mess", "用户名或密码有误"); System.out.println("UserServlet------else---->"); request.getRequestDispatcher("login.jsp").forward(request, response); } System.out.println("doPost----end--UserServlet-->"); } else { // 解析upload.jsp页面 // 判断是否是这个类型:multipart/form-data post // 核心上传组件是哪几个对象 // 明确:核心 FileItemFactory ServletFileUpload FileItem对象 // 提交图片或文件 表单元素 判断一下 // 路径也要考虑 // 页面元素和图片(文件)名获取的方式不同 // FileItem对象取想要的元素: // 页面元素 (类似于获取这样的getParameter元素); 保存在User对象 // 上传的文件和图片 文件名和图片名拿到,保存在User对象里 // 最后: service.add(User); // 具体如下: // 声明或初始化 User user = new User(); String uploadfilepath = null; String uploadfileName = null; // images uploadfilepath = request.getSession().getServletContext() .getRealPath("images/"); System.out.println(uploadfilepath); File uploadnewname = new File(uploadfilepath); // 不存在这个目录,就自动创建一个新的 if (!uploadnewname.exists()) { uploadnewname.mkdir(); } // 判断是否是multipart/form-data post boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) {// 是multipart/form-data post类型 // 上传的核心组件 FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); // 解析 List<FileItem> fileitem = null; try { fileitem = upload.parseRequest(request); } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 迭代器遍历 Iterator<FileItem> items = fileitem.iterator(); while (items.hasNext()) { FileItem item = items.next(); // 表单元素 if (item.isFormField()) { String name = item.getFieldName(); // 获取实体类中的相同元素后,把元素放在User对象中 if ("uname".equals(name)) { user.setUname(item.getString("UTF-8")); } else if ("upass".equals(name)) { user.setUpass(item.getString("UTF-8")); } else if ("uremark".equals(name)) { user.setUremark(item.getString("UTF-8")); } System.out.println(user); } else { // 获取上传图片名或文件名 uploadfileName = item.getName(); File file = new File(uploadfileName); user.setUfile(file.getName()); // 设置保存的路径 File filepath = new File(uploadfilepath, file.getName()); // 写入路径 try { item.write(filepath); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("上传文件的路径: " + filepath); } } } else {// 不是multipart/form-data post的情况 // PrintWriter out = response.getWriter(); out.println("系统出现问题!"); out.close(); } // 调用javabean UserService service = new UserServiceImpl(); service.save(user); } } |