首页 > 开发 > Java > 正文

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

2024-07-14 08:41:08
字体:
来源:转载
供稿:网友

需求

通过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);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表