登录验证页面
login.html:(完成前端页面的操作)
<html>
<head>
<title>用户登录</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function check(){
if (document.all.userName.value == ""){
alert("对不起,登录帐号不能为空!");
return false;
}
if (document.all.userPWD.value == ""){
alert("对不起,登录密码不能为空!");
return false;
}
return true;
}
</script>
<body>
<h2>用户登录</h2>
<hr>
<form name="form1" method="post" action="chkuser.jsp" onSubmit="return check()">
登录帐号:
<input type="text" id="userName" name="userName"><br>
登录密码:
<input type="password" id="userPWD" name="userPWD"><br>
<input type="submit" name="submit" value="提交">
<input type="reset" name="reset" value="重填">
</form>
</body>
</html>
DBBean.java //完成数据库的操作
package test;
import java.sql.*;
public class DBBean {
Connection con = null;
Statement stat = null;//更新
PreparedStatement pstat = null;//动态更新
ResultSet rs = null;//查询
//无参数的构造函数
public DBBean() {}
//取得数据库连接
public Connection getCon(){
try{
//Class.forName("com.mysql.jdbc.Driver").newInstance();
//String url = "jdbc:mysql://localhost:3306/userdb?user=root&password=root&useUnicode=true&characterEncoding=gb2312";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=userdb","sa","123");
//con = DriverManager.getConnection(url);
}catch(Exception ex){
ex.printStackTrace();
}
return con;
}
//执行数据库查询并返回查询结果
public ResultSet query(String sql){
try{
con = getCon();
stat = con.createStatement();
rs = stat.executeQuery(sql);
}catch(Exception ex){
ex.printStackTrace();
}
return rs;
}
//执行数据库更新
public void update(String sql){
try{
con = getCon();
stat = con.createStatement();
stat.executeUpdate(sql);
}catch(Exception ex){
ex.printStackTrace();
}
}
//执行数据库更新
public void update(String sql,String[] args){
try{
con = getCon();
pstat = con.prepareStatement(sql);
for (int i=0;i<args.length;i++){
pstat.setString(i+1,args[i]);
}
pstat.executeUpdate();
}catch(Exception ex){
ex.printStackTrace();
}
}
//关闭数据库连接
public void close(){
try{
if (rs != null)rs.close();
if (stat != null)stat.close();
if (pstat != null)pstat.close();
if (con != null)con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
userBean.java
package test;(保存用户的信息)
public class UserBean {
//属性名称与表单元素相同时,可实现自省
String userName = null;
String userPWD = null;
boolean logined = false;
//无参数的构造方法
public UserBean() {}
//读取userName属性
public String getUserName() {
return userName;
}
//设置userName属性
public void setUserName(String userName) {
this.userName = userName;
}
//读取userPWD属性
public String getUserPWD() {
return userPWD;
}
//设置userPWD属性
public void setUserPWD(String userPWD) {
this.userPWD = userPWD;
}
//读取logined属性
public boolean isLogined() {
return logined;
}
//设置logined属性
public void setLogined(boolean logined) {
this.logined = logined;
}
}
chkuser.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="test.DBBean"%>
<%@ page import="test.UserBean"%>
<jsp:useBean id="myDBbean" class="test.DBBean"></jsp:useBean>
<jsp:useBean id="user" class="test.UserBean" scope="session"></jsp:useBean>
<jsp:setProperty name="user" property="*" />
<html>
<head>
<title>用户登录验证</title>
</head>
<body>
<h2>用户登录验证</h2>
<hr>
<%
//user对象中的userName和userPWD是通过自省完成赋值的
String userName = user.getUserName();
String userPWD = user.getUserPWD();
String sql = "select * from user1 where userName='"+userName+"' and userPwd='"+userPWD+"'";
if (user.isLogined()){
out.println("您已经登录过了!");
}else{
ResultSet rs = myDBbean.query(sql);
if (rs.next()){
user.setLogined(true);
out.println("恭喜您登录成功!");
}else{
user.setLogined(false);
out.println("对不起,您的帐号或密码不正确!");
}
}
%>
</body>
</html>