国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉中市| 盐城市| 娱乐| 遂宁市| 新源县| 财经| 白朗县| 漯河市| 乌苏市| 宣化县| 白银市| 平潭县| 大悟县| 开原市| 连城县| 凉城县| 霸州市| 河西区| 霍城县| 安泽县| 林芝县| 成安县| 离岛区| 涡阳县| 恩平市| 随州市| 江川县| 哈巴河县| 芜湖市| 平湖市| 南通市| 阿尔山市| 盘山县| 托克逊县| 安西县| 黄冈市| 新田县| 镇巴县| 屏山县| 定日县| 彝良县|