用戶登錄程序實現(JSP+JDBC)
用戶登錄操作必然都保存在數據表中,用戶輸入用戶名和密碼,進行驗證。若輸入正確,則登錄成功,若不正確則登錄失敗。
一、數據表創建
netstart mysql 啓動mysql服務
mysql–uroot –pmysqladmin 進入mysql
showdatabases; 查看數據庫
/*=======使用MLDN數據庫=========*/
USEmldn;
/*=======刪除user數據表=========*/
DROPTABLE IF EXISTS user;
/*=======創建user數據表=========*/
CREATETABLE user(
userid VARCHAR(30) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
password VARCHAR(20) NOT NULL
);
/*=======插入測試數據=========*/
INSERTINTO user(userid, name, password) VALUES("admin", "admin","admin");
二、頁面設計
Login.htm 提供用戶登錄表單
<html> <head><title>login</title></head> <body> <center> <h1>登陸操作</h1> <hr> <form action="login_check.jsp" method="post"> <table border="1"> <tr> <td colspan="2"> 用戶登陸 </td> </tr> <tr> <td>登陸ID:</td> <td><input type="text" name="id"></td> </tr> <tr> <td>登陸密碼:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2"> <input type="submit" value="登陸"> <input type="reset" value="重置"> </td> </tr> </table> </form> </center> </body> </html>
Login_check.jsp 登錄檢查頁面,用戶名及密碼正確則跳轉成功頁面,否則登錄失敗頁面。
<%@page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.sql.*"%> <html> <head><title>login</title></head> <body> <center> <h1>登陸操作</h1> <hr> <%! // 定義若干個數據庫的連接常量 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; public static final String DBUSER = "root" ; public static final String DBPASS = "mysqladmin" ; %> <% Connection conn = null ; // 數據庫連接 PreparedStatement pstmt = null ; // 數據庫預處理操作 ResultSet rs = null ; // 查詢要處理結果集 boolean flag = false ; // 保存標記 String name = null ; // 保存真實姓名 %> <% try{ %> <% Class.forName(DBDRIVER) ; conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; String sql = "SELECT name FROM user WHERE userid=? AND password=?" ; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,request.getParameter("id")) ; pstmt.setString(2,request.getParameter("password")) ; rs = pstmt.executeQuery() ; // 查詢 if(rs.next()){ // 如果有數據,則可以執行 flag = true ; // 表示登陸成功 name = rs.getString(1) ; } %> <% }catch(Exception e) { e.printStackTrace() ; } finally{ try{ rs.close() ; pstmt.close() ; conn.close() ; } catch(Exception e){} } %> <% if(flag){ // 登陸成功 %> <jsp:forward page="login_success.jsp"> <jsp:param name="uname" value="<%=name%>"/> </jsp:forward> <% } else { // 登陸失敗 %> <jsp:forward page="login_failure.htm"/> <% } %> </center> </body> </html>
Login_sucess.jsp 成功頁面
<%@page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>login</title></head> <body> <center> <h1>登陸操作</h1> <h2>登陸成功</h2> <h2>歡迎<font color="red"><%=request.getParameter("uname")%></font>光臨!</h2> </center> </body> </html>
Login_failure.htm 失敗頁面
<html> <head><title>login</title></head> <body> <center> <h1>登陸操作</h1> <h2>登陸失敗,請重新<a href="login.htm">登陸</a>!</h2> </center> </body> </html>
以上內容參考JAVAWEB開發實戰經典(名師講壇)