Dieser Artikel beschreibt kurz die Verwendung von JavaBean, um die Benutzeranmeldung zu realisieren, einschließlich der Benutzeranmeldung, der Registrierung und dem Abmelden.
1. Über Javabäe
JavaBean ist eine wiederverwendbare Komponente in der Java -Sprache. Um als Javabäer geschrieben zu werden, muss die Klasse spezifisch und öffentlich sein und verfügt über einen parameterlosen Konstruktor. JavaBeans setzen interne Domänen den Mitgliederneigenschaften aus, setzen und erhalten Methoden, indem sie öffentliche Methoden bereitstellen, die dem konsistenten Entwurfsmuster entsprechen. Wie wir alle wissen, entsprechen Attributnamen diesem Muster, und andere Java -Klassen können die Eigenschaften dieser JavaBeans durch Introspection -Mechanismen entdecken und manipulieren.
2. Systemarchitektur
2.1 Anwendungsfalldiagramm anmelden
2.2 Seitenflussdiagramm
2.3 Systemarchitekturdiagramm
2.4 Datenbankdesign
Dieses Beispiel verwendet eine Oracle -Datenbank
Die Benutzertabelle enthält ID, Benutzername, Passwort, E -Mail und insgesamt 4 Felder.
- Tabelle erstellen TABLE P_USER (ID varchar2 (50), nicht null, Benutzername varchar2 (20), Kennwort varchar2 (20), E-Mail VARCHAR2 (50)) Tablespace-Benutzer pctfree 10 Initrans 1 MaxTrans 255 Speicher (anfängliche 64 Minextents 1 Maxextents Unimited); - Fügen Sie der Tabelle Kommentar zu Tabelle P_USER Kommentare hinzu, die "Benutzertabelle" ist. - Fügen Sie den Spalten Kommentar zu Spalte p_user.id 'id' Kommentare hinzu; Kommentar zu Spalte p_user.username ist 'Benutzername'; Kommentar zu Spalte P_USER.Password ist 'Passwort'; Kommentar zu Spalte P_USER.Email lautet 'E -Mail';
3. Javabäische Schreiben
3.1 Entwicklung der zugrunde liegenden Datenbankverarbeitung von JavaBeans
Dbacess.java
Paket com.baosight.bean; Import Java.sql.Connection; importieren java.sql.drivermanager; importieren java.sql.resultset; importieren java.sql.sqlexception; importieren java.sql.statement; /**Database operation class* <p>Title:DBAcess </p> * <p>Description:TODO </p> * <p>Company: </p> * @author yuan * @date 2016-5-22 12:40:24 pm*/ public class DBAcess { private String driver = "oracle.jdbc.driver.OracleDriver"; private String url = "jdbc: oracle:" + "dünn:@127.0.0.1: 1521: orcl"; private String username = "Scott"; private String password = "tiger"; private Verbindung Conn; Private Erklärung STM; privates Ergebnis Rs; // Verbindung public boolean createconn () {boolean b = false; try {class.forname (Treiber); // Oracle -Treiber conn = driverManager.getConnection (URL, Benutzername, Passwort); B = wahr; } catch (SQLEXception e) {// Todo automatisch generierter Fangblock e.printstacktrace (); } // Die Verbindungsfaszung (classNotFoundException e) {// Todo automatisch generiertes Catch-Block e.printstacktrace (); } return b; } // public boolean update (string sql) {boolean b = false; try {stm = conn.CreateStatement (); stm.execute (SQL); B = wahr; } catch (SQLEXception e) {// Todo automatisch generierter Fangblock e.printstacktrace (); } return b; } // Abfrage public void query (string sql) {try {stm = conn.CreateStatement (); rs = stm.executeQuery (SQL); } catch (SQLEXception e) {// Todo automatisch generierter Fangblock e.printstacktrace (); }} // Beurteilen Sie, ob es Daten public boolean als nächstes gibt () {boolean b = false; try {if (rs.Next ()) {b = true; }} catch (SQLEXception e) {// Todo automatisch generierter Fangblock E. printstacktrace (); } return b; } // Erhalten Sie den Tabellenfeldwert public String getValue (String -Feld) {String value = null; try {if (rs! = null) {value = rs.getString (field); }} catch (SQLEXception e) {// Todo automatisch generierter Fangblock E. printstacktrace (); } Rückgabewert; } // Schließen Sie die Verbindung public void Closeconn () {try {if (conn! = Null) {conn.close (); }} catch (SQLEXception e) {// Todo automatisch generierter Fangblock E. printstacktrace (); }} // Anweisung public void conthm () {try {if (stm! = Null) {stm.close (); }} catch (SQLEXception e) {// Todo automatisch generierter Fangblock E. printstacktrace (); }} // resultset public void comser () {try {if (rs! = Null) {rs.close (); }} catch (SQLEXception e) {// Todo automatisch generierter Fangblock E. printstacktrace (); }} public String getDriver () {return triver; } public void setDriver (String -Treiber) {this.driver = driver; } public String geturl () {return url; } public void seturl (String url) {this.url = url; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } öffentliche Erklärung getstm () {return stm; } public void setstm (Anweisung stm) {this.stm = stm; } public resultSet getrs () {return rs; } public void setRs (Ergebnisset rs) {this.rs = rs; } public void setConn (Verbindung conn) {this.conn = conn; } public Connection getConn () {return conn; }}Die obige Datenbankbetriebsklasse verwendet JDBC, um eine Verbindung zur Datenbank herzustellen und Methoden zu verkörpern, z. B. die Verbindung mit der Datenbank, Abfragen, Ändern und Schließen von Ressourcen.
3.2 Entwickeln Sie Javabäe Business Logic -Komponenten
UserBean.java
Paket com.baosight.bean; import com.baosight.util.generateUuid; /** * <P> Titel: UserBean </p> * <p> Beschreibung: Todo </p> * <p> Firma: </p> * @author yuan * @date 2016-5-22 1:05:00 pm */public class UserBean {// Login Verification public boolean gültig (String username, String Passwort, {bayean isValid = {{bayean isValid = false. Dbacess db = new dbacess (); if (db.createconn ()) {String sql = "Select * von p_user wob DB.Query (SQL); if (db.next ()) {isvalid = true; } db.closers (); db.closestm (); db.closeconn (); } return isvalid; } // Verifizierung public boolean isexist (String -Benutzername) {boolean isvalid = false; Dbacess db = new dbacess (); if (db.createconn ()) {string sql = "select * aus p_user wobei userername = '"+username+"'"; DB.Query (SQL); if (db.next ()) {isvalid = true; } db.closers (); db.closestm (); db.closeconn (); } return isvalid; } // Benutzer public boolean add (String -Benutzername, String -Passwort, Zeichenfolge -E -Mail) {boolean isValid = false; Dbacess db = new dbacess (); if (db.createconn ()) {String sql = "In P_USER (ID, Benutzername, Passwort, E -Mail) Werte einfügen ("+generateuUid.Next ()+"','"+Benutzername+"','"+Passwort+"',"+"); DB.CLOSEConn ();Die obige Geschäftslogik Javaban definiert Methoden wie Anmeldeprüfung, Registrierungsüberprüfung und neue Benutzer
3.3 Über das Erstellen einer eindeutigen ID
Das obige muss eine ID einfügen, wenn ein neuer Benutzer hinzugefügt wird. In diesem Beispiel wird UUID verwendet, um eine eindeutige ID zu generieren.
GenerateUuid.java
Paket com.baosight.util; import Java.util.date; /** * <P> Titel: generateUuid </p> * <p> Beschreibung: Todo </p> * <p> Firma: </p> * @author yuan * @date 2016-5-22 1:31:46 PM */public class generateUiD {private statisches Datum = neues Datum = neues Datum (); // private statische StringBuilder buf = new StringBuilder (); private statische int seq = 0; private statische endgültige Int -Rotation = 9999; public static synchronisiert long Next () {if (seq> rotation) seq = 0; // buf.delete (0, buf.length ()); Datum.Settime (System.currentTimemillis ()); String Str = String.Format ("%1 $ Ty%1 $ TM%1 $ TD%1 $ TK%1 $ TM%1 $ TS%2 $ 05D", Datum, SEQ ++); return long.parselong (str); } public static void main (String [] args) {für (int i = 0; i <100; i ++) {System.out.println (next ()); }}} 4. Seite Schreiben
4.1 Anmeldeseite
login.jsp
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <! DocType html public "-// w3c // dtd html 4.01 transitional // ede http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> </head> <body> <form action = "login_action.jsp" methode = "post"> <table> <tr> <td colspan = "2"> login -Fenster </td> </tr> <Td> username: </td> </td> </td> <einputtyps ". </td> </tr> <tr> <td> Kennwort: </td> <td> <Eingabe type = "text" name = "password"/> </td> </tr> <tr> <td colspan = "2"> <Eingabe type = "subine" value = "login"/> <a href = "Register. </html>
Seiteneffekt
4.2 Melden Sie sich bei der Seite "Geschäftslogik" an.
login_action.jsp
<%@ page Language = "java" import = "java.util.*" pageCoding = "utf-8"%> <%@ page import = "java.sql. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("Benutzername"); String password = request.getParameter ("Passwort"); if (userername == null || "". Equals (userername.trim ()) || password == null || "". Equals (password.trim ()) {//out.write("username oder Passwort kann nicht leer sein! "); System.out.println ("Benutzername oder Passwort kann nicht leer sein!"); response.sendredirect ("login.jsp"); zurückkehren; //request.getRequestDispatcher("login.jsp").forward(Request, Antwort); } UserBean userBean = new UserBean (); boolean isvalid = userBean.valid (Benutzername, Passwort); if (isvalid) {System.out.println ("erfolgreich anmelden!"); Session.SetAttribute ("Benutzername", Benutzername); response.sendredirect ("Welcome.jsp"); zurückkehren; } else {System.out.println ("unbekanntes Benutzername oder Passwort, Anmeldung fehlgeschlagen!"); response.sendredirect ("login.jsp"); zurückkehren; } %>Der oben genannte JSP ruft Javabean zur Geschäftsabwicklung auf. Kehren Sie zur Anmeldeseite zurück, wenn der Benutzername oder das Passwort leer ist.
Wenn die Anmeldung erfolgreich ist, speichern Sie die Benutzerinformationen in der Sitzung und springen Sie zur Begrüßungsseite Welcome.jsp
Kehren Sie zur Anmeldeseite zurück, wenn Anmeldung fehlschlägt login.jsp
4.3 Login erfolgreich willkommene Seite
Willkommen.JSP
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <! DocType html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= Basepath%>"> <titels> my jsp 'Welcom.jsp' Startseite </title> <meta http-äquiv = "pRAGE". http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> </head> <body> <table> <tr> <tr> <td> <img src = "Bilder/logo4.png"/> </td> <td> <img src = "bilder/logo2.png"/> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> /> </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>Menu3</a> </td> </tr> <tr> <td> <a> Menü4 </a> </td> </tr> <tr> <td> <a> Menü5 </a> </td> </tr> <tr> <td> <a> msu> </a> </td> </tr> <Td> <a> Menu7 </a> </td> </tr> <ttr> <td> <a> mss ms ms ms ms ms ms ms ms ms ms ms ms ms ms ms ms mseens <td> <a> Menü7 </a> </td> </tr> <tr> <td> <a> Menü8 </a> </td> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> <TR> <td> <tat action = "loggin.jsp" methode "methode" colspan = "2"> Login erfolgreich! /> </td> </tr> </table> </form> </td> </tr> </tr> </table> </body> </html>
Seiteneffekt
4.4 Melden Sie sich von der Geschäftsverarbeitungsseite an
loginout.jsp
<%@ page Language = "java" import = "java.util. 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 'loginout.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> </head> <body> <% Session.removeAttribute ("Benutzername"); response.sendredirect ("login.jsp"); %> </body> </html>Entfernen Sie Benutzerinformationen aus der Sitzung und springen Sie zur Anmeldeseite login.jsp
4.5 Benutzerregistrierungsseite
Register.jsp
<%@ page Language = "java" import = "java.util. 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> Register Seite </title> <meta http-actp-actp-cache "cache" chach "-" Conth "-" no-cache "> <meta http-actp-cache" cache "conga"-"no-cache"> <meta http-actp-cache "cache" contc. " content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv = "keywords" content = "keyword1, keyword2, keyword3"> <meta http-äquiv href = "styles.css"> -> </head> <body> <form action = "register_action.jsp" methode = "post"> <table> <tr> <td colspan = "2"> Registerfenster </td> </tr> <tr> <Td> username: </td> </td> </tr> <tr> <Td> username "username"/td> <td> </ttd> </ttd> </ttd> </type text "text" <td>Password: </td> <td><input type="text" name="password1" /></td> </tr> <tr> <td>Confirm password: </td> <td><input type="text" name="password2" /></td> </tr> <tr> <td>Email: </td> <td><input type="text" name="email" /> </td> </tr> <tr> <td colspan = "2"> <Eingabe type = "value =" Register "/> <a href =" login.jsp "> return </a> </td> </tr> </table> </bySe> </body> </html> </tr> </table> </body> </html> </tr> </table> </body> </html> </tr> </table> </body> </html>
Laufeffekt
4.6 Registrierungsgeschäftsarbeit Seite
<%@ page Language = "java" import = "java.util.*" pageCoding = "utf-8"%> <%@ page import = "java.sql. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("Benutzername"); String password1 = request.getParameter ("password1"); String password2 = request.getParameter ("password2"); String -E -Mail = Request.GetParameter ("E -Mail"); if (userername == null || "". Equals (userername.trim ()) || password1 == null || "". Equals (password1.trim ()) || password2 == null || "". System.out.println ("Benutzername oder Passwort kann nicht leer sein!"); response.sendredirect ("register.jsp"); zurückkehren; //request.getRequestDispatcher("login.jsp").forward(Request, Antwort); } UserBean userBean = new UserBean (); boolean isexit = userBean.isexist (Benutzername); if (! isexit) {userBean.add (Benutzername, Passwort1, E -Mail); System.out.println ("erfolgreich registriert, bitte melden Sie sich an!"); response.sendredirect ("login.jsp"); zurückkehren; } else {System.out.println ("Benutzername existiert bereits!"); response.sendredirect ("register.jsp"); zurückkehren; } %>Der oben genannte JSP ruft Javabean für die Geschäftsverarbeitung auf
Kehren Sie zur Registrierungsseite zurück, wenn der Benutzername oder das Passwort leeres Register ist.jsp
Wenn der registrierte Benutzername in der Datenbank nicht existiert, werden neue Benutzer hinzugefügt
Nachdem der Neuzugang erfolgreich ist, springen Sie zur Anmeldeseite login.jsp
Wenn der registrierte Benutzername in der Datenbank vorhanden ist, kehren Sie zum Registrierungsseite Register.jsp zurück
5. Zusammenfassung
In diesem Beispiel werden die Datenbankvorgänge und die Geschäftslogikverarbeitung in der Javabäe zusammengefasst.
Das obige ist eine kurze Einführung in die Verwendung von JavaBean zur Realisierung der Benutzeranmeldung und muss kontinuierlich verbessert werden. Ich hoffe, jeder kann gemeinsam lernen und Fortschritte machen!