01_05 JSP基础语法之实战(数据库验证登录页面)

用户登录程序实现(JSP+JDBC)

   用户登录操作必然都保存在数据表中,用户输入用户名和密码,进行验证。若输入正确,则登录成功,若不正确则登录失败。

一、数据表创建

netstart mysql     启动mysql服务

mysql�Curoot �Cpmysqladmin    进入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开发实战经典(名师讲坛)


你可能感兴趣的:(数据库连接)