麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一区二区三区在线免费观看 | 久久蜜臀一区二区三区av | 国产精品久久久久久久不卡 | 在线视频观看成人 | 精品一区二区三区日本 | 国产亚洲欧美视频 | 欧洲成人在线视频 | 久久91亚洲精品久久91综合 | 亚洲综合91| 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 欧美精品一区二区久久久 | 国产精品久久久久久久av三级 | 国产91久久久久久 | 国产美女爽到喷白浆的 | 久草在线视频福利 | 毛片视频在线免费观看 | 国产一级αv片免费观看 | 久草最新网址 | 性欧美大战久久久久久久免费观看 | 亚洲aⅴ免费在线观看 | 九一传媒在线观看 | fc2国产成人免费视频 | 天天操综 | 黄色片免费看网站 | 久久91精品久久久久清纯 | 黄色高清免费网站 | 成人福利在线观看 | 国产精品久久久久久一区二区三区 | 久久久久久精 | 国产精品久久久久久久成人午夜 | 久久久精品视频在线观看 | 激情97| 欧美成人免费电影 | 极品大长腿啪啪高潮露脸 | 久久精品视频1 | 亚洲精品一区二区三区免 | 免费放黄网站在线播放 | 亚洲网站一区 | 一级裸体视频 | 最近国产中文字幕 | av在线免费播放网站 |