實現結果:在login.jsp頁面提交用戶名和密碼(可以驗證是否為空),點擊登錄跳轉到loginResult.jsp頁面進行驗證並顯示結果
JSP + JDBC + MySQL
login.jsp
設計一個表單,內容為兩個輸入框,一個用來輸入用戶名,另一個用來輸入密碼,並有一個提交按鈕
用JavaScript函數驗證輸入框是否都不為空
代碼為:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <script type="text/javascript"> 8 function $(id) { 9 return document.getElementById(id); 10 } 11 12 function check() { 13 var user = $("user").value; 14 var pwd = $("pwd").value; 15 16 $("userInfo").innerHTML=""; 17 $("pwdInfo").innerHTML=""; 18 19 if(user == "") { 20 $("userInfo").innerHTML="用戶名不能為空!"; 21 $("user").focus(); 22 return false; 23 } 24 25 if(pwd == "") { 26 $("pwdInfo").innerHTML="密碼不能為空!"; 27 $("pwd").focus(); 28 return false; 29 } 30 31 return true; 32 } 33 </script> 34 35 <style type="text/css"> 36 #userInfo{color:red;} 37 #pwdInfo{color:red;} 38 </style> 39 40 <title>登錄</title> 41 42 </head> 43 44 <body> 45 <center> 46 <form action="loginResult.jsp" method="post" onsubmit="return check()"> 47 <br><br><br><br><br><br> 48 <table> 49 <tr><td>用戶名:</td><td><input type="text" name="userName" id="user"><span id="userInfo" ></span></td></tr> 50 <tr><td>密碼:</td><td><input type="password" name="userPwd" id="pwd"><span id="pwdInfo"></span></td></tr> 51 <tr><td></td><td><input type="submit" value="登 錄"></td> 52 53 </table> 54 </form> 55 </center> 56 </body> 57 58 </html>
loginResult.jsp頁面
1、利用JSP內置對象獲取用戶名和密碼
1 String user = request.getParameter("userName"); 2 String password = request.getParameter("userPwd");
2、注冊驅動MySQL的驅動程序
Class.forName(“com.mysql.jdbc.Driver”);
3、構建連接符號字
String url1 = "jdbc:mysql://localhost:3306/" + 數據庫名; String url2 = "?user=" + 數據庫用戶名 + "&password=" + 數據庫密碼; String url3 = "&useUnicode=true&characterEncoding=UTF-8"; String url = url1 + url2 + url3;
4、構建數據庫連接對象
Connection conn = DriverManager.getConnection(url);
5、構建SQL語句,創建數據庫操作對象
String sql = "select * from loginInfo where username=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1,username);//設置值
6、執行查詢,得到查詢結果集
ResultSet rs = pstmt.executeQuery();
7、結果處理
如果rs.next()為true,則說明該用戶名存在,繼續驗證密碼是否正確;否則該用戶名不存在
if(rs.next()) { if(rs.getString("password").equals(password)) { %><center><h1>用戶 <%=rs.getString("userName")%>登陸成功!</h1></center><% } else { %><center><h1>密碼錯誤!</h1></center><% } } else { %><center><h1>用戶名不存在!</h1></center> <%}
8、釋放資源
if(rs != null) { rs.close(); } if(pstmt != null) { pstmt.close(); } if(conn != null) { conn.close(); }