Java實現表單登陸及驗證
阿新 • • 發佈:2018-12-21
Java實現登陸及驗證
- 前端程式碼 前端程式碼只是一個表單隨意就好具體樣式看個人愛好
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>歡迎登陸</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/signin.css" rel="stylesheet"> </head> <body><script src="/demos/googlegg.js"></script> <div class="signin"> <div class="signin-head"><img src="images/test/head_120.png" alt="" class="img-circle"></div> <form class="form-signin" role="form" action="login" method="post"> <input name="username" type="text" class="form-control" placeholder="使用者名稱" required autofocus /> <input name="userpass" type="password" class="form-control" placeholder="密碼" required /> <input class="btn btn-lg btn-warning btn-block" type="submit" value="登陸"> </form> </div> <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';"> </div> </body> </html>
- 後端接受資料的程式碼
package login; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mysql.chelogin; /** * Servlet implementation class login */ @WebServlet("/login") public class login extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public login() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); PrintWriter pw = response.getWriter(); pw.append("sss"); String username = request.getParameter("username"); String userpass = request.getParameter("userpass"); System.out.println("賬號:"+username); System.out.println("userpass:"+userpass); chelogin ch = new chelogin(username,userpass); if(ch.check()) { System.out.println("登陸成功"); response.sendRedirect("logintrue.html"); }else { System.out.println("登陸失敗"); response.sendRedirect("loginfalse.html"); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
3.資料庫驗證的程式碼
package mysql; import java.sql.*; import java.sql.DriverManager; public class chelogin { String user = "root"; String password = "123123"; private String name; private String pass; public chelogin(String username,String userpass){ this.name = username; this.pass = userpass; } public boolean check(){ try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/login"; Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "select * from user where name = '"+name+"'"; ResultSet rs = stmt.executeQuery(sql); System.out.println(sql); System.out.println(pass); if(rs.next()) { if(rs.getString(3).equals(pass) ) { System.out.println(rs.getString(3)); return true; } else { System.out.println(rs.getString(3)); return false; } }else { return false; } } catch (Exception e) { e.printStackTrace(); return false; } } }
總結 前端用最簡單的表單提交 後端用request.getParameter()函式接收資料 資料用jdbc連線並且從資料庫中查詢