besoin
Vérifiez si le mot de passe du compte entré par l'utilisateur existe dans la base de données via la page AJAX Asynchronous Refresh.
Pile technologique
Jsp + servlet + oracle
Code spécifique
Section 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 =" contenu-type "contenu =" Text / html; charset = utf-8 "> <tapie> Insérez ici </ title> xmlhttp = new xmlhttprequest (); // autres navigateurs autres que ie utilisent ajax} catch (tryms) {try {xmlhttp = new activeXObject ("msxml2.xmlhttp"); // ie Adaptation} catch (autres) {try {xmlhTt = newsser ActiveXObject ("Microsoft.xmlhttp"); // IE Adaptation du navigateur} catch (échec) {xmlhttp = null; }} return xmlhttp; } // Soumettre la demande var xmlhttp; Fonction CheckUseRexists () {var u = document.getElementById ("uname"); var username = u.Value; if (username == "") {alert ("Veuillez entrer le nom d'utilisateur"); U.Focus (); retourne false; } // accéder à la chaîne var url = "loginServlet"; // Créez le composant Core XmlHttpRequest xmlHttp = createExmlHttpRequest (); // Définissez la fonction de rappel xmlhttp.onreadystateChange = proessRequest; // Initialisez le noyau xmlhttp.open ("Post", URL, true); // Définissez l'en-tête de demande xmlhttp.setRequestHeader ("Content-Type", "Application / X-Www-Form-Urlencoded;"); // Envoyez la demande xmlhttp.send ("uname =" + nom d'utilisateur); } // Fonction de rappel Fonction BurdenRequest () {if (xmlhttp.status == 200 && xmlhttp.readystate == 4) {var b = xmlhttp.ResponSeText; // obtient le résultat de la sortie du serveur if (b == "true") {document.getElementById ("alert"). Color = 'Red'> Le nom d'utilisateur existe déjà! </font> "; } else {document.getElementById ("alert"). innerhtml = "<font color = 'bleu'> le nom d'utilisateur peut être utilisé! </font>"; }}}} </ script> <body> Veuillez saisir le nom d'utilisateur: <input id = "uname" name = "uname" type = "text" onblur = "checkuseRexist ()" /> <div id = "alert" style = "display: inline"> </div> </ body> </ html> Il n'y a pas de couche DAO ici, utilisez simplement le servlet et la couche de service pour la vérification.
Voici le code de la requête JDBC sous service:
Importer 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 ajaxsvice {public boolean searchUser (string uname) {/ jdbcsvice Le nom existe boolean isfalse = false; Connexion connexion = null; Déclaration stmt = null; ResultSet rs = null; connection = connectionManager.getConnection (); essayez {stmt = connection.CreateStatement (); String SQL = "SELECT * FROM USER_B WHERE UNAME = '" + uname + "'"; // instruction SQL RS = STMT.ExecuteQuery (SQL); isFalse = Rs.Next (); } catch (sqlexception e) {e.printStackTrace (); } enfin {ConnectionManager.CloseResultSet (RS); ConnectionManager.Closestatement (STMT); ConnectionManager.CloseConnection (connexion); } return isfalse; }}Code de connexion JDBC:
Importer java.sql.connection; import java.sql.drivermanager; import java.sql.resultSet; import java.sql.sqlexception; import java.sql.statement; classe publique ConnectionManager {private final static driver_class = "Oracle.jdbc.oracledriver"; Url de chaîne statique finale privée = "jdbc: oracle: mince: @localhost: 1521: orcl"; chaîne statique finale privée dbname = "iBook"; Private Final Static String Password = "QWER"; Connexion statique publique getConnection () {connexion connexion = null; essayez {class.forname (driver_class); connexion = driverManager.getConnection (URL, dbname, mot de passe); } catch (classNotFoundException e) {e.printStackTrace (); } catch (sqlexception e) {e.printStackTrace (); } Retour Connexion; } public static void CloserResultSet (resultSet rs) {try {if (rs! = null) Rs.close (); } catch (sqlexception e) {e.printStackTrace (); }} public static void CloseConnection (connexion connexion) {try {if (connection! = null &&! connection.isclosed ()) connection.close (); } catch (sqlexception e) {e.printStackTrace (); }} public static void Closstatement (instruction stmt) {try {if (stmt! = null) stmt.close (); } catch (sqlexception e) {e.printStackTrace (); }}}À propos de la classe d'utilisateurs:
classe publique User {private String uname; public user () {super (); } utilisateur public (String uname) {super (); this.uname = uname; } public String getUname () {return uname; } public void setuname (string uname) {this.uname = uname; }À propos du servlet de couche de contrôle:
Importer java.io.ioException; import java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import; com.stx.service.ajaxService; / ** * Classe d'implémentation de servlet LoginServlet * / classe publique LoginServlet étend httpServlet {private static final SerialVersionUID = 1l; AjaxService privé ajaxService = new ajaxService (); / ** * @see httpservlet # httpservlet () * / public loginServlet () {super (); // Todal de constructeur généré par TODO} / ** * @see httpservlet # doget (requête httpservletRequest, httpservletResponse réponse) * / Protected void doget (httpservletRequest request, httpservletResponse réponse) throws ServLetException, ioexect {request.SetcharacterAning ("Utf."); String uname = request.getParameter ("uname"); // Obtenez le nom d'utilisateur d'entrée boolean isuname = ajaxService.SearchUser (uname); // Calling Query Method in Service Response.SetcharAcTencoding ("UTF-8"); // Définir le caractère de caractères Printwriter out = réponse.getwriter (); Out.print (isuname); out.flush (); out.close();//Close resources} /** * @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); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.