在名爲joker的數據庫中建立一個user1表,內容以下:
javascript
User類用於封裝用戶信息css
JdbcUtils用於鏈接數據庫:html
public class JdbcUtils { //註冊驅動的工具類 private static String url = "jdbc:mysql://localhost:3306/joker?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true"; private static String user = "root"; private static String password = "joker666"; private static String dv = "com.mysql.cj.jdbc.Driver"; //註冊驅動 static { try { Class.forName(dv); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //獲取鏈接對象 public static Connection getCon() throws SQLException{ Connection conn = null; conn = (Connection) DriverManager.getConnection(url, user, password); return conn; } //關閉的方法 public static void close(Statement statement,Connection conn){ if(statement !=null){ try { statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn !=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //關閉的方法 public static void close(PreparedStatement preparedStatement,Connection conn,ResultSet resultSet){ if(preparedStatement !=null){ try { preparedStatement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn !=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
UserDAO類用於數據庫的插入、查詢以及刪除(修改沒時間寫)java
public class UserDAO { //數據庫鏈接對象 public User login(String username,String password) { User u=null; Connection connection =null; PreparedStatement pstmt=null; ResultSet resultSet=null; //賦值 try { connection=JdbcUtils.getCon(); //靜態sql語句 String sql = "select * from user1 where name=? and password=?"; pstmt = (PreparedStatement) connection.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); resultSet = pstmt.executeQuery(); if(resultSet.next()){ u=new User(); u.setUsername(resultSet.getString("name")); u.setPassword(resultSet.getString("password")); u.setPnumber(resultSet.getString("phonenumber")); u.setSex(resultSet.getString("sex")); u.setEmail(resultSet.getString("email")); u.setHobby(resultSet.getString("hobby")); u.setAddr1(resultSet.getString("addr1")); u.setAddr2(resultSet.getString("addr2")); u.setIntroduce(resultSet.getString("introduce")); System.out.println("登陸成功!"); }else{ System.out.println("用戶名或者密碼錯誤!"); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtils.close(pstmt, connection); } return u; } /** * 添加用戶 * @param user */ public void addUser(User user) { Connection connection = null; PreparedStatement psmt = null; try { connection = JdbcUtils.getCon(); String sql ="insert into user1(name,password,phonenumber,sex,email,hobby,addr1,addr2,introduce)values(?,?,?,?,?,?,?,?,?);"; psmt = (PreparedStatement) connection.prepareStatement(sql); //運用實體對象進行參數賦值 psmt.setString(1, user.getUsername()); psmt.setString(2,user.getPassword()); psmt.setString(3,user.getPnumber()); psmt.setString(4,user.getSex()); psmt.setString(5,user.getEmail()); psmt.setString(6,user.getHobby()); psmt.setString(7,user.getAddr1()); psmt.setString(8,user.getAddr2()); psmt.setString(9,user.getIntroduce()); psmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JdbcUtils.close(psmt, connection); } } /** * 刪除用戶 * @param name * @return * @throws UnsupportedEncodingException */ public void delUser(String id) throws UnsupportedEncodingException { Connection connection = null; PreparedStatement psmt = null; int i_d; i_d = Integer.parseInt(id); try { connection = JdbcUtils.getCon(); String sql = "delete from user1 where id=?"; psmt = (PreparedStatement) connection.prepareStatement(sql); psmt.setInt(1, i_d); psmt.executeUpdate(); System.out.println("刪除成功!"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JdbcUtils.close(psmt, connection); } } /** * 查詢用戶 * @return */ public ResultSet seleUser() { Connection connection =null; PreparedStatement ps=null; ResultSet resultSet=null; //賦值 try { connection=JdbcUtils.getCon(); //靜態sql語句 String sql = "select * from user1"; ps = (PreparedStatement) connection.prepareStatement(sql); resultSet = ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return resultSet; } }
用戶點擊註冊按鈕會跳轉到此類,在此類將信息進行處理:mysql
/** * Servlet implementation class RegisterServlet */ @WebServlet("/RegisterServlet") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); //得到請求的各項信息 String name=request.getParameter("realname"); String password=request.getParameter("password"); String phonenumber=request.getParameter("phonenumber"); String sex=request.getParameter("sex"); String email=request.getParameter("email"); String[] hobby=request.getParameterValues("hobby"); String hobby1 = ""; int i; String addr1=request.getParameter("addr1"); String addr2=request.getParameter("addr2"); String introduce=request.getParameter("introduce"); //進行「轉碼」翻譯 for(i=0;i<hobby.length;i++) { if(hobby[i] != null) { hobby1 += hobby[i]; } } if(addr1.equals("1")) { addr1 = "河北省"; if(addr2.equals("10")) { addr2 = "承德市"; } if(addr2.equals("11")) { addr2 = "廊坊市"; } if(addr2.equals("12")) { addr2 = "唐山市"; } } if(addr1.equals("2")) { addr1 = "河南省"; if(addr2.equals("20")) { addr2 = "鄭州市"; } if(addr2.equals("21")) { addr2 = "開封市"; } if(addr2.equals("22")) { addr2 = "洛陽市"; } } if(addr1.equals("3")) { addr1 = "山東省"; if(addr2.equals("30")) { addr2 = "煙臺市"; } if(addr2.equals("31")) { addr2 = "德州市"; } if(addr2.equals("32")) { addr2 = "臨沂市"; } } //將信息封裝至User類中 User user=new User(); user.setUsername(name); user.setPassword(password); user.setPnumber(phonenumber); user.setSex(sex); user.setEmail(email); user.setHobby(hobby1); user.setAddr1(addr1); user.setAddr2(addr2); user.setIntroduce(introduce); //進行數據庫的插入 UserDAO userDAO=new UserDAO(); userDAO.addUser(user); System.out.println("註冊成功"); request.getRequestDispatcher("./index.jsp").forward(request, response); } }
用戶註冊成功後會跳轉到登陸界面,當用戶點擊登陸按鈕會跳轉到此類,在此類將請求的信息進行處理:sql
/** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); //得到請求信息 String username = request.getParameter("username"); String password = request.getParameter("password"); //判斷用戶是否存在 UserDAO userDAO=new UserDAO(); User user=userDAO.login(username, password); if(user!=null){ session.setMaxInactiveInterval(1800); session.setAttribute("user", user); //將對象放入session中 response.sendRedirect("./success1.jsp"); }else{ response.sendRedirect("./fail.jsp"); } } }
當管理員在登錄的時候會跳轉到此類,此類將信息進行處理:數據庫
/** * Servlet implementation class ManaloginServelet */ @WebServlet("/ManaloginServelet") public class ManaloginServelet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); //得到請求的管理員的用戶名和密碼 String username = request.getParameter("username"); String password = request.getParameter("password"); //默認內置帳號爲admin,密碼爲123456 if(username.equals("admin") && password.equals("123456")) { UserDAO userDAO=new UserDAO(); ResultSet resultSet = userDAO.seleUser(); //顯示第一頁的用戶信息 request.setAttribute("page", 1); session.setMaxInactiveInterval(1800); //將查詢到的用戶信息放入session中 session.setAttribute("rs", resultSet); response.sendRedirect("./adminServlet"); System.out.println("管理員登錄成功"); } else { response.sendRedirect("./Manafail.jsp"); } } }
當管理員登錄成功,會從ManaloginServelet跳轉至此類,在此將用戶信息分頁顯示,默認一頁顯示10人tomcat
/** * Servlet implementation class adminServlet */ @WebServlet("/adminServlet") public class adminServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); listPage listPage=new listPage(); List<User> list = new ArrayList<User>(); int rowCount; //記錄總個數 int pageCount; //記錄總頁數 int beginIndex = 1; //開始的個數 int i = 0; //用做循環 int pageSize = 10; //一頁大小 int prePage; //前一頁 int nextPage; //後一頁 int curPage = 1; //當前頁 String strcurPage ; HttpSession session = request.getSession(); ResultSet rs = (ResultSet)session.getAttribute("rs"); session.setAttribute("rs", rs); if(rs != null ) { try { UserDAO userDAO=new UserDAO(); ResultSet resultSet = userDAO.seleUser(); resultSet.last(); rowCount = resultSet.getRow(); // 總個數 pageCount = (int) Math.ceil(rowCount/(pageSize*1.0)); //總頁數 strcurPage = request.getParameter("cur"); if(strcurPage != null) { curPage = Integer.parseInt(strcurPage); } //設置上一頁 prePage = curPage-1; if(prePage <= 0) prePage = 1; //設置下一頁 nextPage = curPage+1; if(nextPage >= pageCount) nextPage = pageCount; beginIndex = (curPage-1)*pageSize+1; //開始指針指向當前頁的第一個數據 if (beginIndex <= 0) { //無上一頁 beginIndex = 1; } if (resultSet.absolute(beginIndex)) { do { //設置用戶信息 User user = new User() ; user.setUserID(beginIndex+i); user.setUser_ID(Integer.parseInt(resultSet.getString("id"))); user.setUsername(resultSet.getString("name")); user.setPassword(resultSet.getString("password")); user.setPnumber(resultSet.getString("phonenumber")); user.setSex(resultSet.getString("sex")); user.setEmail(resultSet.getString("email")); user.setHobby(resultSet.getString("hobby")); user.setAddr1(resultSet.getString("addr1")); user.setAddr2(resultSet.getString("addr2")); user.setIntroduce(resultSet.getString("introduce")); //添加用戶信息 list.add(user); i++; if (i == pageSize) { break; } } while (resultSet.next()); } //將信息封裝在listPage類中 listPage.setCurPage(curPage); listPage.setPrePage(prePage); listPage.setNextPage(nextPage); listPage.setPageCount(pageCount); listPage.setPageSize(pageSize); listPage.setRowCount(rowCount); listPage.setList(list); request.setAttribute("listPage", listPage); request.getRequestDispatcher("./Manasuccess1.jsp").forward(request, response); } catch (SQLException e) { e.printStackTrace(); } } } }
用於封裝用戶以及分頁信息session
管理員在查看用戶信息界面,欲查看用戶的介紹界面,會跳轉到此類eclipse
/** * Servlet implementation class admin2Servlet */ @WebServlet("/admin2Servlet") public class admin2Servlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id; HttpSession session = request.getSession(); ResultSet rs = (ResultSet)session.getAttribute("rs"); Connection connection =null; PreparedStatement ps=null; String introduce = ""; String cur = ""; int i_d; try { //得到請求的id,並轉換成int類型 id = request.getParameter("id"); id = java.net.URLDecoder.decode(id,"utf-8"); i_d = Integer.parseInt(id); //得到當前頁信息,用於返回 cur = request.getParameter("cur"); cur = java.net.URLDecoder.decode(cur,"utf-8"); session.setAttribute("rs", rs); connection=JdbcUtils.getCon(); //靜態sql語句 String sql = "select * from user1 where id=?"; ps = (PreparedStatement) connection.prepareStatement(sql); ps.setInt(1, i_d); rs = ps.executeQuery(); if(rs.next()){ introduce = rs.getString("introduce"); } //將introduce與cur放入request中 request.setAttribute("introduce", introduce); request.setAttribute("cur", cur); request.getRequestDispatcher("./Manasuccess2.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } finally { JdbcUtils.close(ps, connection); } } }
管理員在查看用戶信息界面,欲刪除某個用戶,會跳轉到此類
@WebServlet("/Delservlet") public class Delservlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); ResultSet res = (ResultSet)session.getAttribute("rs"); if(res != null){ String id = request.getParameter("id"); String cur = request.getParameter("cur"); id = java.net.URLDecoder.decode(id,"utf-8"); //刪除用戶信息 UserDAO userDAO=new UserDAO(); userDAO.delUser(id); session.setAttribute("rs", res); request.setAttribute("cur", cur); request.getRequestDispatcher("adminServlet").forward(request, response); }else{ response.sendRedirect("./fail.jsp"); } } }
項目地址:
書寫不易,轉載請留言!