jsp登錄界面連接mysql數據庫並進行驗證的方式

簡單的登陸連接數據庫進行JavaScript 驗證)

方法與步驟:

1.建立一個與數據庫相對應的實體類(pojoUser

2.建立一個與數據庫相連的DAODataBaseDAO

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>

⑥.連接數據庫的DAODataBaseDAO

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(urlname,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();

}

}

 

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