/** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version: 7.9.0 * <Author> <Date> <version> * 作者姓名 修改時間 版本號 */ public class User { //登陸查詢 ----- 括號內接收從網頁傳來的用戶輸入的參數 public static Boolean CheckUser(String username,String password) { int count = 0; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 1.加載驅動 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("加載驅動失敗"); } // 2.建立連接 try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/數據庫名", "用戶名", "密碼"); /*System.out.println("建立連接成功!");*/ String sql = "SELECT id FROM account WHERE name=? AND password=?"; ps=conn.prepareStatement(sql); ps.setString(1,username); ps.setString(2,password); rs=ps.executeQuery();
while (rs.next()){ count++; } } catch (SQLException e) { System.out.println("建立連接失敗"); } finally { // 3.關閉連接 try { if (null != conn) { conn.close(); } if (null != ps) { ps.close(); } /*System.out.println("關閉連接成功!");*/ } catch (SQLException e) { System.out.println("程序錯誤"); } } return count>0 ? true:false; } //新增用戶 ----- 括號內接收從網頁傳來的用戶輸入的參數 public static void AddUser(String username,String password) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 1.加載驅動 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("加載驅動失敗"); } // 2.建立連接 try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/數據庫名", "用戶名", "密碼"); /*System.out.println("建立連接成功!");*/ String sql = "INSERT INTO account SET (name,password) VALUE (?,?)"; ps=conn.prepareStatement(sql); ps.setString(1,username); ps.setString(2,password); rs=ps.executeQuery(); } catch (SQLException e) { System.out.println("建立連接失敗"); } finally { // 3.關閉連接 try { if (null != conn) { conn.close(); } if (null != ps) { ps.close(); } System.out.println("關閉連接成功!!!"); } catch (SQLException e) { System.out.println("程序錯誤"); } } } //修改密碼 --- 括號內接收從網頁傳來的用戶輸入的參數 public static void UpdateUser(String newpassword,String username,String password) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 1.加載驅動 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("加載驅動失敗"); } // 2.建立連接 try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/數據庫名", "用戶名", "密碼"); /*System.out.println("建立連接成功!");*/ String sql = "UPDATE account SET password=? WHERE name=? AND password=?"; ps=conn.prepareStatement(sql); ps.setString(1,newpassword); ps.setString(2,username); ps.setString(3,password); rs=ps.executeQuery(); } catch (SQLException e) { System.out.println("建立連接失敗"); } finally { // 3.關閉連接 try { if (null != conn) { conn.close(); } if (null != ps) { ps.close(); } System.out.println("關閉連接成功!"); } catch (SQLException e) { System.out.println("程序錯誤"); } } } }
/** * Copyright (C), 2017-2017 * FileName: Check * Author: ichimoku * Date: 2017/12/5 14:40 * version: 7.9.0 * <Author> <Date> <version> * 作者姓名 修改時間 版本號 */ @WebServlet(name="CheckUser",urlPatterns="/servlet/CheckUser") public class CheckUser extends HttpServlet{ private static final long serialVersionUID = 1L; public CheckUser(){ super(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //從網頁獲取輸入的用戶名和密碼 String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8"); String password = req.getParameter("password"); //在控制台打印從網頁獲取到的用戶名 System.out.println(username); //判斷用戶名和密碼是否為空 if (username!=null && password!=null){ boolean flag= User.CheckUser(username,password); //通過flag返回值 為true就會執行if,false就會執行else if (flag){ req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp); }else{ //req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp); } }else{ System.out.println("用戶的輸入為空"); } } }
/** * Copyright (C), 2017-2017 * FileName: Add * Author: ichimoku * Date: 2017/12/5 16:01 * version: 7.9.0 * <Author> <Date> <version> * 作者姓名 修改時間 版本號 */ @WebServlet(name="AddUser",urlPatterns="/servlet/AddUser") public class AddUser extends HttpServlet { private static final long serialVersionUID = 1L; public AddUser(){ super(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //從網頁獲取輸入的用戶名和密碼 String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8"); String password = req.getParameter("password"); //在控制台打印從網頁獲取到的用戶名 System.out.println(username); //判斷用戶名和密碼是否為空 if (username!=null && password!=null){ boolean flag=User.CheckUser(username,password); //通過flag返回值 為true就會執行if,false就會執行else,因為我們要新增用戶,如果返回ture就說明 //這個賬號已經有人使用,所以我們要提示注冊失敗,如果返回false,說明數據庫里沒有這個賬號,可以注冊 //在else里運行AddUser的方法,成功數據庫在數據庫里新增注冊數據! if (flag){ //req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp); }else{ //req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp); User.AddUser(username,password); req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp); } }else{ System.out.println("用戶的輸入為空"); } } }
/** * Copyright (C), 2017-2017 * FileName: Update * Author: ichimoku * Date: 2017/12/5 16:05 * version: 7.9.0 * <Author> <Date> <version> * 作者姓名 修改時間 版本號 */ @WebServlet(name="UpdateUser",urlPatterns="/servlet/UpdateUser") public class UpdateUser extends HttpServlet { private static final long serialVersionUID = 1L; public UpdateUser(){ super(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //從網頁獲取輸入的用戶名和密碼 String username = new String(req.getParameter("username").getBytes("iso-8859-1"), "utf-8"); String password = req.getParameter("password"); String newpassword = req.getParameter("newpassword"); //在控制台打印從網頁獲取到的用戶名 System.out.println(username); //判斷用戶名和密碼是否為空 if (username!=null && password!=null){ boolean flag=User.CheckUser(username,password); //通過flag返回值 為true就會執行if,false就會執行else,因為我們要修改密碼,所以當返回true,說明用戶輸入的賬號密碼 // 和數據庫匹配成功!所以我們在if下面執行UpdateUser方法,修改數據庫數值! if (flag){ User.UpdateUser(newpassword,username,password); req.getRequestDispatcher("/pages/user/login_success.html").forward(req, resp); }else{ //req.getRequestDispatcher("/pages/user//Welcome.jsp").forward(req, resp); } }else { System.out.println("用戶的輸入為空"); } } }
