нуждаться
Убедитесь, существует ли пароль учетной записи, введенный пользователем в базе данных, через страницу Ajax Asynchronous обновления.
Технологический стек
JSP+Сервлет+Oracle
Конкретный код
Раздел JSP:
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> insert store </title> </head> <script> functhl xmlhttp = new xmlhttprequest (); // другие браузеры, отличные от IE, используя ajax} catch (tryms) {try {xmlhttp = new activexobject ("msxml2.xmlhtt"); // ie browser appatation} catch (другие) {try xmlt ActiveXObject ("microsoft.xmlhttp"); // IE адаптация браузера} catch (Faile) {xmlhttp = null; }} return xmlhttp; } // Отправить запрос var xmlhttp; function checkuserexists () {var u = document.getElementbyid ("uname"); var username = u.value; if (username == "") {alert ("Пожалуйста, введите имя пользователя"); u.focus (); вернуть ложь; } // Доступ к строке var url = "loginservlet"; // Создать ядро XMLHTTPREQUEST COMPONTER XMLHTTP = CEARTEXMLHTTPREQUEST (); // Установить функцию обратного вызова xmlhttp.onreadystatechange = proessRequest; // инициализировать ядро XMLHTTP.Open ("post", url, true); // Установить заголовок запроса xmlhttp.setrequestheader ("content-type", "Application/xwww-form-urlencoded;"); // Отправить запрос xmlhttp.send ("uname ="+username); } // Функция функции обратного обращения BurderRequest () {if (xmlhttp.status == 200 && xmlhttp.readystate == 4) {var b = xmlhttp.responsetext; // Получить результат вывода сервера, если (b == "true") {document.getElement ("alert". Color = 'Red'> Имя пользователя уже существует! } 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, просто используйте уровень сервлета и обслуживания для проверки.
Вот код для запроса JDBC под обслуживанием:
Импорт java.sql.connection; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; импорт com.stx.service.user; импорт com.stx.service.connectionmaner; public class ajaxservice {public boolean searchsuser ( / / / / /c Имя существует логическое isfalse = false; Соединение Connection = NULL; Утверждение stmt = null; Результат RS = NULL; connection = connectionManager.getConnection (); try {stmt = connection.createStatement (); String sql = "select * from user_b, где uname = '"+uname+"' '"; // ratement sql rs = stmt.executequery (sql); isfalse = rs.next (); } catch (sqlexception e) {e.printstacktrace (); } наконец {connectionManager.closeresultset (rs); ConnectionManager.CloSestatement (STMT); ConnectionManager.CloseConnection (соединение); } вернуть isfalse; }}Код подключения JDBC:
Импорт java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; импорт java.sql.statement; public class connectionmanager {private final Static String Driver_class = "oracle.jdbc.oracledriver"; Приватная окончательная статическая строка url = "jdbc: oracle: thin: @localhost: 1521: orcl"; Приватная окончательная статическая строка dbname = "ibook"; Приватная окончательная статическая строка пароль = "qwer"; public Static Connection getConnection () {Connection Connection = null; try {class.forname (driver_class); Connection = DriverManager.getConnection (URL, dbname, пароль); } catch (classnotfoundexception e) {e.printstacktrace (); } catch (sqlexception e) {e.printstacktrace (); } return Connection; } public static void closerSultset (ResultSet rs) {try {if (rs! = null) rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} public static void closeConnection (соединение соединения) {try {if (connection! = null &&! connection.isclosed ()) connection.close (); } catch (sqlexception e) {e.printstacktrace (); }} public static void closeStatement (оператор STMT) {try {if (stmt! = null) stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }}}О пользовательском классе:
Пользователь открытого класса {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; }О сервлете контрольного слоя:
Импорт java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservlectrequest; import javax.servlet.http.htplsevonse; com.stx.service.ajaxservice;/** * Реализация сервиса класса класса loginservlet */public class loginservlet extends httpservlet {private static final long serialversionuid = 1L; Частный AjaxService ajaxService = new ajaxService (); / ** * @see httpservlet#httpservlet () */ public loginservlet () {super (); // TODO Автогенерированный конструктор Stub}/ ** * @see httpservlet#doget (httpservletrequest, httpservletresponse response) */ Защищенная void doget (httpservlectrequest, httpsersersponse-ответ) request.setcharacterencoding ("UTF-8"); String uname = request.getParameter ("uname"); // Получить входное имя пользователя boolean isuname = ajaxservice.searchuser (uname); // Вызов метода запроса в ответ. Out.print (Isuname); out.flush (); out.close (); // Закрыть ресурсы}/** * @see httpservlet#dopost (httpservletrequest, httpservletresponse response) */Защищенный void dopost (httpservletrequest, httpservlectresponse response) ответ); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.