Maison > Java > javaDidacticiel > le corps du texte

Code pour implémenter la vérification de l'enregistrement de la connexion utilisateur AJAX+JAVA

coldplay.xixi
Libérer: 2020-08-24 17:34:12
avant
3202 Les gens l'ont consulté

Code pour implémenter la vérification de l'enregistrement de la connexion utilisateur AJAX+JAVA

[Recommandations d'apprentissage associées : Tutoriel de base Java]

Exigences

Actualisez la page de manière asynchrone via ajax pour vérifier si le mot de passe du compte saisi par l'utilisateur existe dans la base de données.

Pile technologique

JSP+Servlet+Oracle

Code spécifique

Partie 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=&#39;red&#39;>用户名已经存在!</font>";
      }else {
        document.getElementById("alert").innerHTML = "<font color=&#39;blue&#39;>用户名可以使用!</font>";
      }
    }
  }
</script>
<body>
  请输入用户名:
  <input id="uname" name="uname" type="text" onblur="checkUserExists()" /><p id="alert" style="display:inline"></p>
</body>
</html>
Copier après la connexion

La couche Dao n'est pas utilisée ici, et les couches servlet et service sont utilisées directement pour la vérification.

Voici le code de la requête JDBC sous service :

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=&#39;"+uname+"&#39;";//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;
  }
}
Copier après la connexion

Code de connexion 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();
    }
  }
}
Copier après la connexion

À propos de la classe d'utilisateurs :

 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;
    }
Copier après la connexion

À propos servlet de couche de contrôle :

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);
  }
}
Copier après la connexion

Articles connexes recommandés : tutoriel vidéo ajax

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal