简单的登陆连接数据库进行JavaScript 验证)
方法与步骤:
1.建立一个与数据库相对应的实体类(pojo)User
2.建立一个与数据库相连的DAO类DataBaseDAO
3.建立一个从数据库管理数据库数据的类UserDAO
4.实体类是一个包,与数据库相关的是一个包
①.建立登陆页面
<html>
<head>
<title>登录界面</title>
</head>
<body>
<form action="checklogin.jsp" method="post" onsubmit="return validate()">
<table align="center" border="1">
<tr>
<td align="right">用户名:</td>
<td><input type="text" name="username" id="username" value=""/>
</td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type="password" name="password" id="password" value=""/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录"/>
<a href="zhuce.jsp"><input type="button" value="注册"/></a>
</td>
</tr>
</table>
</form>
</body>
</html>
②.建立检查用户和密码的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.anbo.test.dao.*,com.anbo.test.pojo.*"%>
<%
String name = request.getParameter("username");
name = new String(name.getBytes("iso-8859-1"),"utf-8");
String pwd = request.getParameter("password");
UserDAO ud = new UserDAO();
User u = ud.getUser(name,pwd);
if(u!=null){
response.sendRedirect("success.jsp");
}else{
out.println("<script>alert('用户名或者密码不正确,请登录或者注册');location.href='login.jsp';</script>");
}
%>
③.建立注册页面
<body>
<form action="checkzhuce.jsp" method="post" onsubmit="return validate()">
<table align="center" border="1">
<tr>
<td align="right">用户名:</td>
<td><input type="text" name="username" id="username" value="" />
</td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type="password" name="password" id="password" value=""/></td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td><input type="password" name="newpwd" id="newpwd" value=""/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="注册"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</body>
④.建立检查注册页面,并把数据添加到数据库
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.anbo.test.dao.*,com.anbo.test.pojo.*"%>
<%
String name = request.getParameter("username");
name = new String(name.getBytes("iso-8859-1"),"utf-8");
String pwd = request.getParameter("password");
String newpwd = request.getParameter("newpwd");
UserDAO ud = new UserDAO();
if(ud.addUser(name,pwd)){
out.println("<script>alert('注册成功!');location.href='success.jsp';</script>");
}else{
out.println("<script>alert('注册失败!');location.href='zhuce.jsp';</script>");
}
%>
⑤.登陆成功页面
成功登陆!
注:客户端验证(javaScript)
1.检查注册
<script type="text/javascript">
function validatename(){
var text=document.getElementById('username').value;
//if(text==null||text==''){
//不为空和输入的不是空格
if(text==null||text.replace(/^\s+,""/).replace(/^\s+$/,"")==''){
alert('用户名不能为空!');
//重新获得焦点
document.getElementById('username').focus();
return false;
}
return true;
}
function validatepwd(){
var pwd=document.getElementById("password").value;
var newpwd=document.getElementById("newpwd").value;
if(pwd==""||pwd.replace(/^\s+,""/).replace(/^\s+$/,"")==''){
alert('密码不能为空!');
document.getElementById("password").focus();
return false;
}
if(newpwd==""||newpwd.replace(/^\s+,""/).replace(/^\s+$/,"")==''){
alert('密码不能为空!');
document.getElementById("newpwd").focus();
return false;
}
if(pwd!=newpwd){
alert('密码不相等!请重新录入');
return false;
}
return true;
}
function validate(){
//注意他的逻辑关系当输入的为数字是返回的是false
var flag=validatename();
if(flag==false){
return false;
}
var flag=validatepwd();
if(flag==false){
return false;
}
return true;
}
</script>
2.检查登陆用户名和密码不能为空
<script type="text/javascript">
function validatename(){
var text=document.getElementById('username').value;
//if(text==null||text==''){
//不为空和输入的不是空格
if(text==null||text.replace(/^\s+,""/).replace(/^\s+$/,"")==''){
alert('用户名不能为空!');
//重新获得焦点
document.getElementById('username').focus();
return false;
}
return true;
}
function validatepwd(){
var pwd=document.getElementById("userpwd").value;
if(pwd==""||pwd.replace(/^\s+,""/).replace(/^\s+$/,"")==''){
alert('密码不能为空!');
document.getElementById("userpwd").focus();
return false;
}
return true;
}
function validate(){
//注意他的逻辑关系当输入的为数字是返回的是false
var flag=validatename();
if(flag==false){
return false;
}
var flag=validatepwd();
if(flag==false){
return false;
}
return true;
}
</script>
⑥.连接数据库的DAO类DataBaseDAO
package com.anbo.test.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DataBaseDAO {
private String driver="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://localhost:3306/myuser";
private String name = "root";
private String pwd="root";
Connection conn=null;
//建立与数据库的连接
public DataBaseDAO(){
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, name,pwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//关闭与数据库的连接
public void CloseConn(){
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//建立执行sql语句的对象并返回影响的行数
public int executeUpdate(String sql){
Statement stmt;
try {
stmt = this.conn.createStatement();
int rows = stmt.executeUpdate(sql);
return rows;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
//创建返回结果集的对象
public ResultSet executeQuery(String sql){
ResultSet rs;
Statement stmt;
try {
stmt = this.conn.createStatement();
rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//将数据插入到数据库
public int executeUpdate(String sql,Object[] p){
PreparedStatement pstmt;
try {
pstmt = this.conn.prepareStatement(sql);
int i=1;
for(Object o:p){
pstmt.setObject(i, o);
i++;
}
int rows = pstmt.executeUpdate();
return rows;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
}
⑦.创建管理数据库的UserDAO类
package com.anbo.test.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.anbo.test.pojo.User;
public class UserDAO {
//根据输入的数据从库总查询值,可以没有这个方法
public boolean checkuser(String name,String pwd){
String sql="select * from login where uname='"+name+"'and upwd='"+pwd+"'";
DataBaseDAO db = new DataBaseDAO();
ResultSet rs;
rs = db.executeQuery(sql);
try {
while(rs.next()){
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
db.CloseConn();
}
return false;
}
//判断用户是存在
public User getUser(String name,String pwd){
String sql="select * from login where uname='"+name+"'and upwd='"+pwd+"'";
DataBaseDAO db = new DataBaseDAO();
ResultSet rs=null;
User user=null;
rs = db.executeQuery(sql);
try {
while(rs.next()){
int id =rs.getInt(1);
String uname = rs.getString(2);
String upwd = rs.getString(3);
user = new User(id,uname,upwd);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
db.CloseConn();
}
return user;
}
//添加用户信息
public boolean addUser(String name,String pwd){
String sql="insert into login(uname,upwd) values(?,?)";
DataBaseDAO db = new DataBaseDAO();
Object[] pram={name,pwd};
int rows = db.executeUpdate(sql,pram);
if(rows>0){
return true;
}else{
return false;
}
}
}
⑧.创建User实体类
package com.anbo.test.pojo;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(int id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
}
public User() {
super();
}
}