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);
}
}
|