【相關(guān)學(xué)習(xí)推薦:java基礎(chǔ)教程】

需求
通過ajax異步刷新頁面驗證用戶輸入的賬號密碼是否在數(shù)據(jù)庫中存在。
技術(shù)棧
JSP+Servlet+Oracle
具體代碼
JSP部分:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<script>
function createXMLHttpRequest() {
try {
xmlHttp = new XMLHttpRequest();//除了ie之外的其他瀏覽器使用ajax
} catch (tryMS) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//ie瀏覽器適配
} catch (otherMS) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//ie瀏覽器適配
} catch (failed) {
xmlHttp = null;
}
}
}
return xmlHttp;
}
//提交請求
var xmlHttp;
function checkUserExists() {
var u = document.getElementById("uname");
var username = u.value;
if (username == "") {
alert("請輸入用戶名");
u.focus();
return false;
}
//訪問字符串
var url = "loginServlet";
//創(chuàng)建核心xmlhttprequest組件
xmlHttp = createXMLHttpRequest();
//設(shè)置回調(diào)函數(shù)
xmlHttp.onreadystatechange = proessRequest;
//初始化核心組件
xmlHttp.open("post", url, true);
//設(shè)置請求頭
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//發(fā)送請求
xmlHttp.send("uname="+username);
}
//回調(diào)函數(shù)
function proessRequest() {
if (xmlHttp.status==200 && xmlHttp.readyState == 4) {
var b = xmlHttp.responseText;//得到服務(wù)端的輸出結(jié)果
if (b=="true") {
document.getElementById("alert").innerHTML = "<font color='red'>用戶名已經(jīng)存在!</font>";
}else {
document.getElementById("alert").innerHTML = "<font color='blue'>用戶名可以使用!</font>";
}
}
}
</script>
<body>
請輸入用戶名:
<input id="uname" name="uname" type="text" onblur="checkUserExists()" /><p id="alert" style="display:inline"></p>
</body>
</html>這里沒有用Dao層,直接用servlet和service層進行驗證。
下面是service下JDBC查詢的代碼:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.stx.service.User;
import com.stx.service.ConnectionManager;
public class ajaxService {
public boolean searchUser (String uname) {
//jdbc查詢用戶名是否存在
boolean isFalse = false;
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
connection = ConnectionManager.getConnection();
try {
stmt = connection.createStatement();
String sql = "select * from user_b where uname='"+uname+"'";//sql語句
rs = stmt.executeQuery(sql);
isFalse=rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectionManager.closeResultSet(rs);
ConnectionManager.closeStatement(stmt);
ConnectionManager.closeConnection(connection);
}
return isFalse;
}
}JDBC連接代碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectionManager {
private final static String DRIVER_CLASS = "oracle.jdbc.OracleDriver";
private final static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private final static String DBNAME = "ibook";
private final static String PASSWORD = "qwer";
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName(DRIVER_CLASS);
connection = DriverManager.getConnection(URL, DBNAME, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeConnection(Connection connection) {
try {
if (connection != null && !connection.isClosed())
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void closeStatement(Statement stmt) {
try {
if (stmt != null)
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}關(guān)于user類:
public class User {
private String uname;
public User() {
super();
}
public User(String uname) {
super();
this.uname = uname;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}關(guān)于控制層servlet:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.stx.service.ajaxService;
/**
* Servlet implementation class loginServlet
*/
public class loginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ajaxService ajaxService = new ajaxService();
/**
* @see HttpServlet#HttpServlet()
*/
public loginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String uname = request.getParameter("uname");//獲取到輸入的用戶名
boolean isUname = ajaxService.searchUser(uname);//調(diào)用service中的查詢方法
response.setCharacterEncoding("UTF-8");//設(shè)置字符編碼
PrintWriter out = response.getWriter();
out.print(isUname);
out.flush();
out.close();//關(guān)閉資源
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}相關(guān)文章推薦:ajax視頻教程
當(dāng)前名稱:實現(xiàn)AJAX+JAVA用戶登陸注冊驗證的代碼
當(dāng)前地址:http://www.chinadenli.net/article10/cggcdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、響應(yīng)式網(wǎng)站、面包屑導(dǎo)航、ChatGPT、網(wǎng)站設(shè)計公司、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)