precisar
Verifique se a senha da conta inserida pelo usuário existe no banco de dados através da página de atualização assíncrona do AJAX.
Pilha de tecnologia
Jsp+servlet+oracle
Código específico
Seção JSP:
<%@ página de página = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório // 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 = novo xmlHttPreQuest (); // outros navegadores que não sejam use ajax} catch (Tryms) {try {xmlhttp = new ActiveXObject ("msxml2.xmlHttp"; // ie BrowserAptation} CatchMs) { ActivexObject ("Microsoft.xmlHttp"); // IE Adaptação do navegador} Catch (falhou) {xmlhttp = null; }} retornar xmlHttp; } // Solicitação de envio var xmlHttp; função checkUseRexists () {var u = document.getElementById ("uname"); VAR Nome de usuário = U.Value; if (nome de usuário == "") {alert ("por favor digite o nome de usuário"); u.focus (); retornar falso; } // Acesse o string var url = "LogInservlet"; // Crie o componente xmlHttPrequest do núcleo xmlHttp = createxmlHttPrequest (); // Defina a função de retorno de chamada xmlhttp.onreadyStatechange = proessRequest; // inicialize o núcleo xmlHttp.open ("post", url, true); // Defina o cabeçalho da solicitação xmlHttp.setRequestHeader ("content-type", "Application/x-www-forma-urlencoded;"); // Envie a solicitação xmlHttp.send ("uname ="+nome de usuário); } // Função de retorno de chamada função BurdenRequest () {if (xmlhttp.status == 200 && xmlhttp.readyState == 4) {var b = xmlHttp.ResponseTemExtBy; Color = 'Red'> O nome de usuário já existe! } else {document.getElementById ("alert"). innerhtml = "<font color = 'blue'> nome de usuário pode ser usado! </font>"; }}}} </script> <body> Por favor, digite o nome de usuário: <input id = "uname" name = "uname" type = "text" onblur = "checkUseRexists ()"/> <div id = "alert" style = "display: inline"> </div> </body> </html> Não há camada DAO aqui, basta usar a camada de servlet e serviço para verificação.
Aqui está o código da consulta JDBC em serviço:
importar java.sql.Connection; importar java.sql.resultset; importar java.sql.sqLexception; importar java.sql.statement; importar com.stx.Service.User; Import Com.stx.Service.ConnectionManager; Public Class AjaxService { O nome existe booleano isfalse = false; Conexão de conexão = null; Instrução stmt = null; ResultSet rs = null; conexão = ConnectionManager.getConnection (); tente {stmt = conexão.createstatement (); String sql = "selecione * de user_b onde uname = '"+uname+"'"; // instrução sql rs = stmt.executeQuery (sql); isfalse = rs.next (); } catch (sqLexception e) {e.printStackTrace (); } finalmente {ConnectionManager.CloseResultSet (RS); ConnectionManager.CloSestatement (STMT); ConnectionManager.CloseConnection (conexão); } retornar isfalse; }}Código de conexão JDBC:
importar java.sql.connection; importar java.sql.driverManager; importar java.sql.resultset; importar java.sql.sqLexception; importar java.sql.statement; classe pública ConnectionManager {private final string driver_class = "orracle.jdbc.ornornagr {private final string string driver_class =" ouracle.jdbc.ornorn; String estática final privada URL = "JDBC: Oracle: Thin: @localhost: 1521: orcl"; String estática final privada dbname = "iBook"; private final estático string senha = "qwer"; conexão estática pública getConnection () {conexão de conexão = null; tente {Class.ForName (driver_class); conexão = driverManager.getConnection (URL, DBName, senha); } catch (classNotFoundException e) {e.printStackTrace (); } catch (sqLexception e) {e.printStackTrace (); } retornar conexão; } public static void CloseResultSet (ResultSet rs) {try {if (rs! = null) rs.close (); } catch (sqLexception e) {e.printStackTrace (); }} public static void Closeconnection (conexão de conexão) {try {if (conexão! } catch (sqLexception e) {e.printStackTrace (); }} public static void de perto (instrução stmt) {try {if (stmt! = null) stmt.close (); } catch (sqLexception e) {e.printStackTrace (); }}}Sobre a classe de usuário:
public class Usuário {private String Uname; public user () {super (); } usuário público (string uname) {super (); this.uname = uname; } public string getUname () {return Uname; } public void setUname (string uname) {this.uname = uname; }Sobre o servlet da camada de controle:
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;/** * Classe de implementação do servlet LogInservlet */public class Loginservlet estende httpsevlet {private static final long serialversionUid = 1L; private AjaxService AjaxService = new AjaxService (); / ** * @see httpServlet#httpServlet () */ public LogInservlet () {super (); // TODO Construtor Gerado de Auto Stob}/ ** * @See HttpServlet#Doget (solicitação httpServletRequest, httpServletResponse Response) */ Protected Void Doget (httpServleTrequest Solicy, httpsletResponse Response) Throwsceptionception (Ioxception (Ioxteced (httpServLetResponse) (HttPServleTreQuest Solicy, Ioxteced (httpSetLeoxensonse)). request.setcharacterencoding ("UTF-8"); String uname = request.getParameter ("uname"); // Obtenha o nome de usuário de entrada boolean isUname = ajaxservice.searchUser (uname); // o método de consulta chamando no serviço Response.SetcharAcTerEncoding ("utf-8"); // Defina o caractere codificando o impressão out = Response.get.getBerter (); out.print (isUname); out.flush (); out.Close (); // Recursos próximos}/** * @see httpServlet#DoPost (solicitação httpServletRequest, httpServletResponse Response) */Proteged DoPost (httpServleTreQuest Solicy, httpSertResponse). resposta); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.