AJAX+JAVA用户登陆注册验证的实现代码

需求

通过ajax异步刷新页面验证用户输入的账号密码是否在数据库中存在。

技术栈

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";

//创建核心xmlhttprequest组件

xmlHttp = createXMLHttpRequest();

//设置回调函数

xmlHttp.onreadystatechange = proessRequest;

//初始化核心组件

xmlHttp.open("post", url, true);

//设置请求头

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");

//发送请求

xmlHttp.send("uname="+username);

}

//回调函数

function proessRequest() {

if (xmlHttp.status==200 && xmlHttp.readyState == 4) {

var b = xmlHttp.responseText;//得到服务端的输出结果

if (b=="true") {

document.getElementById("alert").innerHTML = "<font color='red'>用户名已经存在!</font>";

}else {

document.getElementById("alert").innerHTML = "<font color='blue'>用户名可以使用!</font>";

}

}

}

</script>

<body>

请输入用户名:

<input id="uname" name="uname" type="text" onblur="checkUserExists()" /><div id="alert" style="display:inline"></div>

</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();

}

}

}

关于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;

}

关于控制层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);//调用service中的查询方法

response.setCharacterEncoding("UTF-8");//设置字符编码

PrintWriter out = response.getWriter();

out.print(isUname);

out.flush();

out.close();//关闭资源

}

/**

* @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);

}

}

以上是 AJAX+JAVA用户登陆注册验证的实现代码 的全部内容, 来源链接: utcz.com/z/328995.html

回到顶部