登录验证页面
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>