01_05 JSP基礎語法之實戰(數據庫驗證登錄頁面)

用戶登錄程序實現(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開發實戰經典(名師講壇)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章