终于把之前的项目算是写完了,不过因为逻辑十分简单,就简单的使用了JSP+JavaBean的开发方式,但是也深深感觉到自己的servlet学的什么也不是,所以决定写一个非常简单的用户管理的小项目来练手;也算是对于新的IDE的熟悉过程,下面是代码,实时更新
先写实体类Users:
package com.test.entity; /** * Created by lenovo on 2016/9/14. */ public class Users { private int id; private String username; private String password; private String content; private String photo; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } }
servlet代码:
package com.test.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import com.jspsmart.upload.File; import com.jspsmart.upload.SmartUpload; import com.jspsmart.upload.SmartUploadException; import com.test.dao.UsersDao; import com.test.entity.Users; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.PageContext; import static java.lang.System.out; /** * Created by sjz on 2016/9/14. */ public class UsersServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { doGet(request,response); } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String method = request.getParameter("method"); out.println(method); switch (method){ case "insert" : insert(request,response); break; case "delete" : delete(request,response); break; case "toUpdate": int id3 = Integer.parseInt(request.getParameter("id")); Users user3 = UsersDao.selectById(id3); request.setAttribute("user",user3); request.getRequestDispatcher("../show.jsp").forward(request,response); case "update" : System.out.println(request.getPart("id")+"aaaa"); int id = Integer.parseInt(request.getParameter("id")); update(request,response,id); break; case "select" : //select(request,response); int id2 = Integer.parseInt(request.getParameter("id")); Users user2 = UsersDao.selectById(id2); request.setAttribute("user",user2); request.getRequestDispatcher("../show.jsp").forward(request,response); break; case "list" : //list(request,response);\ List<Users> list = UsersDao.select(); request.setAttribute("list",list); request.getRequestDispatcher("../list.jsp").forward(request,response); break; } } private void insert(HttpServletRequest request, HttpServletResponse response) { SmartUpload su = new SmartUpload(); JspFactory _jspxFactory = null; PageContext pageContext = null; _jspxFactory = JspFactory.getDefaultFactory(); pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true); try { su.initialize(pageContext); su.upload(); PrintWriter out = response.getWriter(); out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>"); String username = su.getRequest().getParameter("username"); String password = su.getRequest().getParameter("password"); String content = su.getRequest().getParameter("content"); File file = su.getFiles().getFile(0); if (file.isMissing()) System.out.println("未选择文件"); String photo = file.getFileName(); String path = "/picture"; path = path + "/" + photo; file.saveAs(path, SmartUpload.SAVE_VIRTUAL); System.out.println(photo); Users user = new Users(); user.setUsername(username); user.setPassword(password); user.setContent(content); user.setPhoto(photo); if(UsersDao.insert(user)){ out.println("成功"); response.setHeader("refresh", "3;UsersServlet?method=list"); } else{ out.println("失败"); response.setHeader("refresh", "3;UsersServlet?method=insert"); } } catch (ServletException e) { e.printStackTrace(); } catch (SmartUploadException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void delete(HttpServletRequest request, HttpServletResponse response) { int id = Integer.parseInt(request.getParameter("id")); try{ if(UsersDao.delete(id)){ out.println("成功"); request.getRequestDispatcher("UsersServlet?method=list").forward(request,response); } else{ out.println("失败"); request.getRequestDispatcher("../list.jsp").forward(request,response); } } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void update(HttpServletRequest request, HttpServletResponse response, int id) { SmartUpload su = new SmartUpload(); JspFactory _jspxFactory = null; PageContext pageContext = null; _jspxFactory = JspFactory.getDefaultFactory(); pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true); try { su.initialize(pageContext); su.upload(); PrintWriter out = response.getWriter(); out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>"); String username = su.getRequest().getParameter("username"); String password = su.getRequest().getParameter("password"); String content = su.getRequest().getParameter("content"); File file = su.getFiles().getFile(0); if (file.isMissing()) System.out.println("未选择文件"); String photo = file.getFileName(); String path = "/picture"; path = path + "/" + photo; file.saveAs(path, SmartUpload.SAVE_VIRTUAL); System.out.println(photo); Users user = new Users(); user.setUsername(username); user.setPassword(password); user.setContent(content); user.setPhoto(photo); if(UsersDao.update(user,id)){ out.println("成功"); response.setHeader("refresh", "3;UsersServlet?method=list"); } else{ out.println("失败"); response.setHeader("refresh", "3;UsersServlet?method=insert"); } } catch (ServletException e) { e.printStackTrace(); } catch (SmartUploadException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void select(HttpServletRequest request, HttpServletResponse response) { } private void list(HttpServletRequest request, HttpServletResponse response) { } }
add.jsp:
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2016/9/14 Time: 16:31 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>用户添加页</title> </head> <body> <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); %> <form action="/servlet/UsersServlet?method=insert" method="post"enctype="multipart/form-data"> <!--<input type="hidden" name="method" value="insert">--> 用户名:<input type="text" name="username"><br> 密 码:<input type="password" name="password"><br> 简 介:<textarea name="content" placeholder="在这里输入您的简介"></textarea><br> 照片:<input type="file" name="photo"><br> <input type="submit" value="提交"> </form> </body> </html>
list.jsp:
<%@ page import="com.test.entity.Users" %> <%@ page import="java.util.List" %><%-- Created by IntelliJ IDEA. User: lenovo Date: 2016/9/18 Time: 9:36 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>用户列表</title> </head> <body> <tr> <td>用户ID</td> <td>用户名</td> <td>用户简介</td> <td>照片</td> </tr><br> <% List<Users> list = (List<Users>) request.getAttribute("list"); for (int i=0;list!=null&&i<list.size();i++){ %> <tr> <td><%=list.get(i).getId()%></td> <td><%=list.get(i).getUsername()%></td> <td><%=list.get(i).getContent()%></td> <td><img src="../picture/<%=list.get(i).getPhoto()%>" style="width:100px;height:100px;"></td> <a href="UsersServlet?method=select&id=<%=list.get(i).getId()%>">修改</a> <a href="UsersServlet?method=delete&id=<%=list.get(i).getId()%>">删除</a> </tr> <br> <% } %> </body> </html>
show.jsp:
<%@ page import="com.test.entity.Users" %><%-- Created by IntelliJ IDEA. User: lenovo Date: 2016/9/18 Time: 9:27 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>用户详情页</title> </head> <body> <% Users user = (Users) request.getAttribute("user"); %> <form action="/servlet/UsersServlet?method=update&id=<%=user.getId()%>" method="post"enctype="multipart/form-data"> <input type="hidden" name="method" value="update"> 用户名:<input name="username" type="text" value="<%=user.getUsername()%>"><br> 密码:<input name="password" type="password" value="<%=user.getPassword()%>"><br> 简介:<textarea name="content"><%=user.getContent()%></textarea><br> 照片:<img src="../picture/<%=user.getPhoto()%>" style="width:100px;height:100px;"> <input type="file" name="photo"><br> <input type="submit" value="提交"> </form> </body> </html>
写完这个小项目真的成就感一级强烈,终于把Servlet页面跳转的门给进去了,所有代码逻辑性也并不是特别强烈,现在看来不应该写用户管理,新闻管理的话会更好,但是已经写完了,就可以进行下一步的学习了。全部代码都放在这里以供以后自己写东西参考