В этой статье кратко описывается использование Javabean для реализации входа пользователя, включая вход пользователей, регистрацию и вход.
1. О джавебе
Javabean - это многоразовый компонент, написанный на языке Java. Чтобы быть написанным как Javabean, класс должен быть конкретным и публичным и имеет конструктор без параметра. Javabeans подвергают внутренние домены свойствам члена, устанавливают и получают методы, предоставляя общественные методы, которые соответствуют постоянному моделю проектирования. Как мы все знаем, имена атрибутов соответствуют этой модели, а другие классы Java могут обнаружить и манипулировать свойствами этих джабейцев с помощью механизмов самоанализа.
2. Системная архитектура
2.1 Диаграмма вариантов использования входа в систему
2.2 Страница блок -схема
2.3 Диаграмма архитектуры системы
2.4 Дизайн базы данных
В этом примере используется база данных Oracle
Пользовательский таблица включает в себя идентификатор, имя пользователя, пароль, электронную почту и в общей сложности 4 поля.
- Создать таблицу Создание таблицы p_user (id varchar2 (50) не нулевой, имя пользователя varchar2 (20), пароль varchar2 (20), электронная почта varchar2 (50)) табличные пользователи пользователи pctfree 10 initrans 1 maxtrans 255 хранения (начальные 64 minextents 1 maxextents неограниченные); - Добавить комментарии к таблице Комментарий к таблице p_user- «Пользовательская таблица»; - Добавить комментарии в комментарии столбцов в столбце P_USER.ID IS 'ID'; Комментарий к столбцу p_user.username - это «имя пользователя»; Комментарий к столбцу p_user.password - «пароль»; Комментарий к столбцу p_user.email - это «электронная почта»;
3
3.1 Разработка базовой обработки баз данных Javabeans
Dbacess.java
пакет com.baosight.bean; Импорт java.sql.connection; Импорт java.sql.drivermanager; импортировать java.sql.resultset; Импорт java.sql.sqlexception; Импорт java.sql.statement; /** Класс операции базы данных * <p> Название: dbacess </p> * <p> Описание: todo </p> * <p> Компания: </p> * @author yuan * @date 2016-5-22 12:40:24 PM */public dbacess {private String Driver = "oracle.jdbc.driver.oracledriver"; Приватная строка url = "jdbc: oracle:" + "thin:@127.0.0.1: 1521: orcl"; private String username = "Scott"; Private String Password = "tiger"; частное соединение Conn; частное заявление STM; Частный результат RS; // Создать соединение public boolean createconn () {boolean b = false; try {class.forname (Driver); // загрузить oracle Driver Conn = DriverManager.getConnection (URL, имя пользователя, пароль); b = true; } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } // Получить подключение подключения (ClassNotFoundException e) {// TODO Auto Generated Catch Block e.printstackTrace (); } return b; } // Модифицировать публичное логическое обновление (String SQL) {boolean b = false; try {stm = conn.createStatement (); STM.Execute (SQL); b = true; } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return b; } // Query public void Query (String SQL) {try {stm = conn.createStatement (); rs = stm.executequery (sql); } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} // Судить, есть ли данные об публичном логическом плане Next () {boolean b = false; попробуйте {if (rs.next ()) {b = true; }} catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return b; } // Получить значение поля таблицы public String getValue (String Field) {string value = null; попробуйте {if (rs! = null) {value = rs.getString (Field); }} catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return value; } // Закройте соединение public void closeconn () {try {if (conn! = Null) {conn.close (); }} catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} // Закрытие оператора public void stosem () {try {if (stm! = Null) {stm.close (); }} catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} // закрыть результаты public void cloid () {try {if (rs! = Null) {rs.close (); }} catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} public String getDriver () {return Driver; } public void setdriver (строка драйвера) {this.driver = Driver; } public String getUrl () {return url; } public void seturl (string url) {this.url = url; } public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; } открытый оператор getStm () {return stm; } public void setStm (оператор STM) {this.stm = stm; } public Resultset getrs () {return rs; } public void setrs (ResultSet rs) {this.rs = rs; } public void setConn (connection conn) {this.conn = conn; } public Connection getConn () {return conn; }}Приведенный выше класс работы базы данных использует JDBC для подключения к базе данных и инкапсулирует такие методы, как подключение к базе данных, запросы, изменение и закрытие ресурсов.
3.2 Разработка компонентов бизнес -логики Javabean
Userbean.java
пакет com.baosight.bean; импорт com.baosight.util.generateuuid; /** * <p> Название: пользовательский материал </p> * <p> Описание: todo </p> * <p> Компания: </p> * @author yuan * @date 2016-5-22 1:05:00 PM */Public Class UserBean {// vogin vorvification public boolean (String usersame, String Password) {Boolean isvalid = false Dbacess db = new dbacess (); if (db.createconn ()) {string sql = "select * from p_user, где username = '"+username+"' и password = '"+password+"'"; DB.QUERY (SQL); if (db.next ()) {isvalid = true; } db.closers (); db.closestm (); db.closeconn (); } вернуть isValid; } // Регистрационная проверка публичная логическая Isexist (string username) {boolean isvalid = false; Dbacess db = new dbacess (); if (db.createconn ()) {string sql = "select * from p_user, где username = '"+username+"'" "; DB.QUERY (SQL); if (db.next ()) {isvalid = true; } db.closers (); db.closestm (); db.closeconn (); } вернуть isValid; } // Зарегистрировать пользователь public boolean add (string username, string password, string email) {boolean isvalid = false; Dbacess db = new dbacess (); if (db.createconn ()) {string sql = "Вставка в p_user (id, имя пользователя, пароль, электронная почта) значения ("+generateuuid.next ()+"','"+username+"','"+password+", '"+email+"); isvalid = db.update (sql); DB.CloseConn ();Приведенная выше бизнес -логика Javabean определяет такие методы, как проверка входа в систему, проверка регистрации и новые пользователи
3.3 Об создании уникального идентификатора
Вышеуказанное должно вставить идентификатор при добавлении нового пользователя. В этом примере UUID используется для генерации уникального идентификатора.
GenerateUuid.java
пакет com.baosight.util; импортировать java.util.date; /** * <p> Название: GenerateUuid </p> * <p> Описание: todo </p> * <p> Компания: </p> * @author yuan * @date 2016-5-22 1:31:46 PM */public GenerateUuid {Private Static Date = Новая дата (); // частный статический stringbuilder buf = new StringBuilder (); частный статический int seq = 0; Частная статическая конечная ротация = 9999; public static synchronized long next () {if (seq> rowation) seq = 0; // buf.delete (0, buf.length ()); date.settime (system.currenttimemillis ()); String str = string.format ("%1 $ ty%1 $ tm%1 $ td%1 $ tk%1 $ tm%1 $ ts%2 $ 05d", дата, seq ++); вернуть long.parselong (str); } public static void main (string [] args) {for (int i = 0; i <100; i ++) {System.out.println (next ()); }}} 4. Написание страниц
4.1 Страница входа в систему
Login.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <Head> <base href = "<%= basepath%>"> <Title> Page Page </title> <meta http-equiv = "pragma" = "no-cache"> <meta http-equiv = "pragma" http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type = "text/css" href = "styles.css"> -> </head> <body> <form action = "login_action.jsp" method = "post"> <Table> <tr> <td colSpan = "2"> window </td> </tr> <tr> <td> unsername: </td> <td> <type = "/" unpanme = "/" usermer = "/" unpint ". </td> </tr> <tr> <td> Пароль: </td> <td> <input type = "text" name = "password"/> </td> </tr> <tr> <td colspan = "2"> <input type = "value =" login "/> <a href =" jessurn.jsp "> register </td> <//> </> </> </href =" jesgre.fore.fore "> </td> <//> <a href =" jesgre.form. </html>
Эффект страницы
4.2 Войдите на страницу обработки бизнес -логики
Login_Action.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ page import = "java.sql.*"%> <%@ page import = "com.bosight.bean.*"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("имя пользователя"); String password = request.getParameter ("пароль"); if (username == null || "". equals (username.trim ()) || пароль == null || "". equals (password.trim ())) {//out.write("Username или пароль не может быть пустым! "); System.out.println («Имя пользователя или пароль не может быть пустым!»); response.sendredirect ("login.jsp"); возвращаться; //request.getRequestDispatcher("login.jsp").forward(Request, ответ); } UserBean userBean = new userBean (); Boolean iSvalid = userBean.valid (имя пользователя, пароль); if (isvalid) {System.out.println ("Вход успешно!"); session.setattribute («Имя пользователя», имя пользователя); response.sendredirect ("Welcome.jsp"); возвращаться; } else {System.out.println ("Имя пользователя или пароль неверно, вход в систему не удалось!"); response.sendredirect ("login.jsp"); возвращаться; } %>Вышеуказанный JSP называет Javabean для бизнес -обработки. Вернитесь на страницу входа в систему, когда имя пользователя или пароль пусто.
Когда логин будет успешным, сохраните информацию пользователя в сеанс и перейдите на страницу приветствия.
Вернуться на страницу входа в систему, когда вход в систему не сбои в login.jsp
4.3 Вход в систему успешно приветствуем страницу
добро пожаловать
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <Title> my jsp 'welcom.jsp' Начальная страница </tite> <meta http-equiv = "pragma" no-contect = "no-conte-content =" no-conte-content "no-conte-" no que-case " http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type = "text/css" href = "styles.css"> -> </head> <body> <table> <tr> <tr> <td> <img src = "Images/logo4.png"/> </td> <td> <img src = "Images/logo2.png"/> </td> </tr> <tr> <tr> <tr> <tr> <tr> <trc = " /> </td> </tr> <tr> <td> <table> <tr> <td> <a> main </a> </td> </tr> <tr> <td> <a> menu1 </a> </td> </tr> <tr> <td> <a> menu2 </a> </td> </tr> <tr> <td> <a> menu2 </a> </td> </td> </tr> <tr> <td> <a> menu4 </a> </td> </tr> <tr> <td> <a> menu5 </a> </td> </tr> <tr> <td> <a> menu6 </a> </td> </tr> <tr> <td> <a> </td> <td> <dr> <tr> <td> <dd> <a> </td> </tr> <tr> <td> <dd> <a> </td> </tr> <tr> <td> <A> <td> <a> menu7 </a> </td> </tr> <tr> <td> <a> menu8 </a> </td> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> <td> <drace = "loginout.jsp" method "tald> <td> <trd> <trd> <trd> <trd> <td> <td> <Td> <Td> colSpan = "2"> успешно вход! value = "exit"/> </td> </tr> </table> </form> </td> </tr> </tr> </table> </body> </html>
Эффект страницы
4.4 Выйти из страницы обработки бизнеса
Loginout.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <зависимость> my jsp 'loginout.jsp' начальная страница </title> <meta http-eavive = "pragma" no-conte "no-conte 'no-conte" no-conte "no-case =" no-case "no-case =" no-case "no-case =" no-conte " http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type = "text/css" href = "styles.css"> -> </head> <body> <% session.removeattribute ("username"); response.sendredirect ("login.jsp"); %> </body> </html>Удалить пользовательскую информацию из сеанса и перейти на страницу входа в систему.
4.5 Страница регистрации пользователя
Register.jsp
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 Transitional // en"> <html> <Head> <base href = "<%= basepath%>"> <Telect> страница регистра </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equivter = "pragma". content = "no-cache"> <meta http-equiv = "истекает" content = "0"> <meta http-equiv = "Keywords" Content = "Keyword1, Keyword2, Keyword3"> <Meta http-equiv = "Описание" content = "Это моя страница"> <!-<link relshiet "type =" text/conts " href = "styles.css"> -> </head> <body> <form action = "register_action.jsp" method = "post"> <table> <tr> <td colspan = "2"> windows </td> </tr> <tr> <td> username: </td> <td> <Input = "trak" use = "usnam <TD> Пароль: </td> <td> <input type = "text" name = "password1"/> </td> </tr> <tr> <td> Подтверждение пароля: </td> <td> <input type = "text" name = "password2"/> </td> </tr> <tr> <td> email: </td> <td> <t intopt name = "name =" name = "name =" "" "td> email: </td> <td> <td>" "" /> </td> </tr> <tr> <td colspan = "2"> <input type = "Vade" value = "/>> <a href =" login.jsp "> return </a> </td> </tr> </table> </form> </body> </html> </td> </tr> </table> </form> </body> </html>
Эффект бега
4.6 Страница переработки регистрации бизнеса
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ page import = "java.sql.*"%> <%@ page import = "com.bosight.bean.*"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("имя пользователя"); String password1 = request.getParameter ("password1"); String password2 = request.getParameter ("password2"); String email = request.getParameter ("email"); if (username == null || "". equals (username.trim ()) || password1 == null || "". equals (password1.trim ()) || пароль 2 == null || "". System.out.println («Имя пользователя или пароль не может быть пустым!»); response.sendredirect ("Register.jsp"); возвращаться; //request.getRequestDispatcher("login.jsp").forward(Request, ответ); } UserBean userBean = new userBean (); Boolean isexit = userbean.isexist (имя пользователя); if (! isexit) {userbean.add (имя пользователя, пароль1, электронная почта); System.out.println («Зарегистрирован успешно, пожалуйста, войдите в систему!»); response.sendredirect ("login.jsp"); возвращаться; } else {System.out.println ("Имя пользователя уже существует!"); response.sendredirect ("Register.jsp"); возвращаться; } %>Вышеупомянутый JSP называет Javabean для бизнес -обработки
Вернитесь на страницу регистрации, когда имя пользователя или пароль пусто.
Когда зарегистрированное имя пользователя не существует в базе данных, добавляются новые пользователи
После того, как новое дополнение будет успешным, перейдите на страницу входа в систему.
Когда зарегистрированное имя пользователя существует в базе данных, вернитесь в регистрационную страницу register.jsp
5. Резюме
В этом примере используется Javabean для инкапсуляции операций баз данных и обработки бизнес -логики.
Выше приведено краткое введение в использование Javabean для реализации входа пользователя, и его необходимо постоянно улучшать. Я надеюсь, что каждый сможет учиться и добиться прогресса вместе!