necesidad
Verifique si la contraseña de cuenta ingresada por el usuario existe en la base de datos a través de la página de actualización asíncrona de Ajax.
Pila de tecnología
JSP+Servlet+Oracle
Código específico
Sección JSP:
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! DocType html público "-// w3c // dtd html 4.01 transición // en" " "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> title aquí </title> </head> <script> Función createxmlhttpreequest () xmlhttp = new xmlhttprequest (); // Otros navegadores distintos de IE usan ajax} capt (tryms) {try {xmlhttp = new ActiveXObject ("msxml2.xmlhttp"); // adaptación de navegador} (otros) {try {xmlhttp = neo ActiveXObject ("Microsoft.xmlhttp"); // es decir, adaptación del navegador} catch (fallado) {xmlhttp = null; }} return xmlhttp; } // Enviar solicitud var xmlhttp; función checkUseRexists () {var u = document.getElementById ("uname"); var userName = u.Value; if (username == "") {alert ("por favor ingrese el nombre de usuario"); u.focus (); devolver falso; } // Acceda a la cadena var url = "LoginServlet"; // Crear el componente de XMLHTTPREQUEST de núcleo xmlhttp = createExmlHttprequest (); // Establecer la función de devolución de llamada xmlhttp.onreadyStateChange = ProessRequest; // Inicializar el núcleo xmlhttp.open ("post", url, true); // Establezca el encabezado de solicitud xmlhttp.setRequestHeader ("Content-type", "Application/x-www-form-urlencoded;"); // Envía la solicitud xmlhttp.send ("uname ="+nombre de usuario); } // función de devolución de devolución de devolución de devolución de devolución de devolución de devolución de devolución de devolución. color = 'rojo'> El nombre de usuario ya existe! } else {document.getElementById ("alerta"). innerhtml = "<font color = 'azul'> El nombre de usuario se puede usar! </font>"; }}}} </script> <body> Por favor ingrese el nombre de usuario: <input id = "uname" name = "uname" type = "text" onblur = "checkUseRexists ()"/> <div id = "alerta" style = "display: inline"> </div> </body> </html> Aquí no hay una capa DAO, solo use el servlet y la capa de servicio para la verificación.
Aquí está el código para la consulta JDBC bajo el servicio:
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.connectionManger; public class AJaxService {Public Boolean (String UNAME) El nombre existe booleano isfalse = false; Conexión Connection = NULL; Instrucción stmt = null; ResultSet rs = null; Connection = ConnectionManager.getConnection (); intente {stmt = conexión.createStatement (); Cadena sql = "select * de user_b donde uname = '"+uname+"'"; // sql instrucción rs = stmt.executeQuery (sql); isfalse = rs.next (); } Catch (Sqlexception e) {E.PrintStackTrace (); } Finalmente {ConnectionManager.CloserSultSet (rs); ConnectionManager.CloSestatement (STMT); ConnectionManager.Closeconnection (conexión); } return isfalse; }}Código de conexión JDBC:
import java.sql.connection; import java.sql.drivermanager; import java.sql.ResultSet; import java.sql.sqlexception; import java.sql.statement; public class ConnectionManager {String static static de privado Driver_class = "Oracle.jdbc.oracedriver"; Cadena estática final privada url = "jdbc: oracle: delgada: @localhost: 1521: orcl"; Cadena estática final privada dbname = "iBook"; Password de cadena estática final privada = "Qwer"; Public static Connection getConnection () {Connection Connection = NULL; intente {class.forname (driver_class); conexión = drivermanager.getConnection (url, dbname, contraseña); } catch (ClassNotFoundException e) {E.PrintStackTrace (); } Catch (Sqlexception e) {E.PrintStackTrace (); } conexión de retorno; } public static void CloseSultSet (ResultSet rs) {try {if (rs! = null) rs.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} public static void CloseConnection (conexión de conexión) {try {if (conexión! = null &&! Connection.isClosed ()) Connection.Close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} public static void Clossestatement (Declaración stmt) {try {if (stmt! = null) stmt.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); }}}Acerca de la clase de usuario:
Usuario de clase pública {cadena privada 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; }Sobre el servlet de la capa de control:
import java.io.ioException; import java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRes com.stx.service.AJAXService;/** * Servlet Clase de implementación LoginServlet */public class LoginServlet extiende httpservlet {private static final long SerialVersionUid = 1l; private ajaxservice ajaxservice = new AjaxService (); / ** * @see httpservlet#httpservlet () */ public loginservlet () {super (); // TODO STUB de constructor generado automático}/ ** * @see httpservlet#doget (httpservletRequest solicitud, respuesta httpServletResponse) */ proteged void doget (httpservletRequest solicitud, respuesta httpServletResponse) tira servletexception, iOexception { request.setcharacterEncoding ("UTF-8"); Cadena uname = request.getParameter ("uname"); // Obtener el nombre de usuario de entrada boolean isuname = ajaxservice.searchuser (uname); // método de consulta llamando al servicio. out.print (isuname); out.flush (); out.close (); // cerrar recursos}/** * @see httpservlet#dopost (httpservletRequest request, httpServletResponse respuesta) */protegido void dopost (httpservletRequest request, httpServletResponse respuesta) shells servletException, ioException {// toDoDoDoDoDoMe-GeGet (solicitud doTGet (solicitud de doguet (solicitud), Solicitud de ServletException, iOException {// aDoDoMa- Generated Method, Solicitud (Solicitud doGet (Solicitud doGet (Solicitud), Solicitud de ServletException, IoException {// aDODO AUTO GENERATADO. respuesta); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.