Artikel ini secara singkat menjelaskan penggunaan Javabean untuk mewujudkan login pengguna, termasuk login pengguna, pendaftaran dan logout.
1. Tentang Javabean
Javabean adalah komponen yang dapat digunakan kembali yang ditulis dalam bahasa Java. Untuk ditulis sebagai Javabean, kelas harus spesifik dan publik, dan memiliki konstruktor tanpa parameter. JavaBeans memaparkan domain internal ke properti anggota, mengatur dan mendapatkan metode dengan menyediakan metode publik yang sesuai dengan pola desain yang konsisten. Seperti yang kita semua tahu, nama atribut sesuai dengan pola ini, dan kelas Java lainnya dapat menemukan dan memanipulasi sifat -sifat JavaBan ini melalui mekanisme introspeksi.
2. Arsitektur Sistem
2.1 Login menggunakan diagram case
2.2 Halaman diagram alur
2.3 Diagram Arsitektur Sistem
2.4 Desain Basis Data
Contoh ini menggunakan database Oracle
Tabel pengguna termasuk ID, nama pengguna, kata sandi, email, dan total 4 bidang.
- Buat tabel Buat tabel p_user (id varchar2 (50) bukan null, nama pengguna varchar2 (20), kata sandi varchar2 (20), email varchar2 (50)) pengguna tablespace pctfree 10 initrans 1 maxtrans 255 penyimpanan (awal 64 ranuptents 1 maxextents unjolited); - Tambahkan komentar ke tabel komentar pada tabel p_user adalah 'tabel pengguna'; - Tambahkan komentar ke kolom komentar pada kolom p_user.id adalah 'id'; Komentar di kolom p_user.username adalah 'nama pengguna'; Komentar di kolom p_user.password adalah 'kata sandi'; Komentar di kolom p_user.email adalah 'email';
3. Tulisan Javabean
3.1 Mengembangkan pemrosesan database yang mendasari JavaBeans
Dbacess.java
paket com.baoSight.bean; impor java.sql.connection; impor java.sql.driverManager; impor java.sql.Resultset; impor java.sql.sqlexception; impor java.sql.statement; /** Kelas Operasi Basis Data * <p> Judul: DBACESS </p> * <p> Deskripsi: TODO </p> * <p> Perusahaan: </p> * @author yuan * @date 2016-5-22 12:40:24 pm */kelas publik dbacess {private string driver = "oracle.jriver.river.river.river. private string url = "jdbc: oracle:" + "tipis:@127.0.0.1: 1521: orcl"; private string username = "scott"; Private String Password = "Tiger"; koneksi pribadi Conn; Pernyataan Pribadi STM; Hasil pribadi RS; // Buat koneksi public boolean createConn () {boolean b = false; coba {class.forname (driver); // muat oracle driver conn = driverManager.getConnection (url, nama pengguna, kata sandi); b = true; } catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); } // Dapatkan Connection Catch (ClassNotFoundException E) {// TODO AUTO-ENTO-GOCK Catch Block E.PrintStackTrace (); } return b; } // Ubah pembaruan boolean publik (string sql) {boolean b = false; coba {stm = conn.createStatement (); STM.Execute (SQL); b = true; } catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); } return b; } // kueri query public void (string sql) {coba {stm = conn.createStatement (); RS = STM.ExecuteQuery (SQL); } catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); }} // menilai apakah ada data public boolean next () {boolean b = false; coba {if (rs.next ()) {b = true; }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); } return b; } // Dapatkan nilai bidang tabel string publik getValue (bidang string) {string value = null; coba {if (rs! = null) {value = rs.getString (bidang); }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); } nilai pengembalian; } // Tutup koneksi public void closeConn () {coba {if (conn! = Null) {conn.close (); }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); }} // tutup pernyataan public void terdekat () {coba {if (stm! = Null) {stm.close (); }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); }} // tutup hasil public void closers () {coba {if (rs! = Null) {rs.close (); }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); }} public String getDriver () {return driver; } public void setDriver (string driver) {this.driver = driver; } public String getUrl () {return url; } public void setUrl (string url) {this.url = url; } string publik getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } pernyataan publik getStm () {return stm; } public void setstm (pernyataan stm) {this.stm = stm; } public hasil getRs () {return rs; } public void setRs (hasil rs) {this.rs = rs; } public void setConn (koneksi conn) {this.conn = conn; } koneksi publik getConn () {return conn; }}Kelas operasi database di atas menggunakan JDBC untuk terhubung ke database dan merangkum metode seperti menghubungkan ke database, menanyakan, memodifikasi, dan menutup sumber daya.
3.2 Kembangkan komponen logika bisnis Javabean
Userbean.java
paket com.baoSight.bean; impor com.baoSight.util.generateuUid; /** * <p>Title:UserBean </p> * <p>Description:TODO </p> * <p>Company: </p> * @author yuan * @date 2016-5-22 1:05:00 pm*/ public class UserBean { //Login verification public boolean valid(String username,String password){ boolean isValid = false; Dbacess db = dbacess baru (); if (db.createConn ()) {string sql = "pilih * dari p_user di mana nama pengguna = '"+nama pengguna+"' dan kata sandi = '"+kata sandi+"'"; DB.Query (SQL); if (db.next ()) {isValid = true; } db.closers (); db.closestm (); db.closeconn (); } return isValid; } // Daftarkan verifikasi public boolean isExist (string username) {boolean isValid = false; Dbacess db = dbacess baru (); if (db.createConn ()) {string sql = "pilih * dari p_user di mana nama pengguna = '"+nama pengguna+"'"; DB.Query (SQL); if (db.next ()) {isValid = true; } db.closers (); db.closestm (); db.closeconn (); } return isValid; } // Daftarkan Pengguna Public Boolean Add (String Username, String Password, String Email) {Boolean isValid = false; Dbacess db = dbacess baru (); if (db.createConn ()) {string sql = "masukkan ke p_user (id, nama pengguna, kata sandi, email) nilai ('"+generateuUid.next ()+"', '"+nama pengguna+"', '"+kata sandi+",'" Email+"); iSvalid = db.update (sqlate (sqlate (sqlate (sqlate (db. db.closeconn ();} return isValid;}}Logika bisnis di atas Javabean mendefinisikan metode seperti verifikasi login, verifikasi pendaftaran dan pengguna baru
3.3 Tentang Menghasilkan ID Unik
Di atas perlu memasukkan ID saat menambahkan pengguna baru. Dalam contoh ini, UUID digunakan untuk menghasilkan ID unik.
Generateuuid.java
paket com.baoSight.util; impor java.util.date; /** * <p> Judul: GenerateUuid </p> * <p> Deskripsi: TODO </p> * <p> Perusahaan: </p> * @author yuan * @Date 2016-5-22 1:31:46 pm */kelas publik menghasilkan tanggal statis swasta = tanggal baru (); // private static stringBuilder buf = new stringBuilder (); private static int seq = 0; rotasi int final statis pribadi = 9999; public static disinkronkan long next () {if (seq> rotasi) 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", tanggal, seq ++); return long.parselong (str); } public static void main (string [] args) {for (int i = 0; i <100; i ++) {System.out.println (next ()); }}} 4. Menulis halaman
4.1 Halaman Login
Login.jsp
<%@ halaman bahasa = "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>Login Page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href = "styles.css"> -> </head> <body> <Form Action = "LOGIN_ACTION.JSP" METODE = "POST"> <able> <tr> <td colspan = "2"> Jendela login </td> </tr> <t "name" name " <tr> <td>Password: </td> <td><input type="text" name="password" /> </td> </tr> <tr> <td colspan="2"><input type="submit" value="Login" /> <a href="register.jsp">Register</a> </td> </tr> </table> </form> </body> </html>
Efek halaman
4.2 Masuk ke Halaman Pemrosesan Logika Bisnis
login_action.jsp
<%@ halaman bahasa = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ page impor = "java.sql.*"%> <%@ page impor = "com.baoSight.bean.*"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("nama pengguna"); String password = request.getParameter ("password"); if (username == null || "". sama (username.trim ()) || kata sandi == null || "". sama (kata sandi.trim ())) {//out.write("username atau kata sandi tidak dapat kosong! "); System.out.println ("Nama pengguna atau kata sandi tidak dapat kosong!"); response.sendredirect ("login.jsp"); kembali; //request.getRequestDispatcher("login.jsp").forward(request, respons); } Userbean userbean = UserBean baru (); boolean isValid = userbean.valid (nama pengguna, kata sandi); if (isValid) {System.out.println ("Login berhasil!"); session.setAttribute ("nama pengguna", nama pengguna); response.sendredirect ("welcome.jsp"); kembali; } else {System.out.println ("Nama pengguna atau kata sandi salah, login gagal!"); response.sendredirect ("login.jsp"); kembali; } %>JAVABEAN JAVABEAN UNTUK PENGOLAHAN BISNIS. Kembali ke halaman login saat nama pengguna atau kata sandi kosong.
Saat login berhasil, simpan informasi pengguna ke sesi dan lompat ke halaman selamat datang Welcome.jsp
Kembali ke halaman login saat login gagal login.jsp
4.3 Login Halaman Sambut yang Berhasil
selamat datang.jsp
<%@ halaman bahasa = "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 transisi // en"> <html> <adep> <base href = "<%= basepath%>"> <title> <pag-conte "no-conte =" no-conte = "no-conte> </title> </title </title> <MetA http-equiv =" metpAing = "no-conte" no-conte = "no-conte" no-conte "no-conte" no-conte "no-conte = http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css"> -> </pead> <body> <ablew> <tr> <tr> <td> <mg src = "gambar/logo44.png"/> </td = </tr> </ttrc = "gambar/logo22.png" /> </td> </tr> <tr> <td> <able> <tr> <td> <a> utama </a> </td> </tr> <td> <a> menu1 </a> </td> </tr> <td> <a> menu2 </a> </td> </tr> <td> <a> <a> <a> </a> </a> </tr> <t> <a> <a> <a> </a> </tr> <t> <a> <a> <a> <a> </tr> <a> <a> </tr> <a> </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>Menu7</a> </td> </tr> <tr> <td> <a> menu7 </a> </td> </tr> <tr> <td> <a> menu8 </a> </td> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> </tr> <TAGE> <bentuk Action = "Post.jsp" </tr> </tr> <TAGE> <Form Action = "Post.jsp" colspan = "2"> Login berhasil! </td> </tr> <tr> <td> selamat datang, </td> <td> $ {nama pengguna} </td> </tr> <tr> <td> selamat datang "</tr>" colpan> "colpan> </typan> </typan </tr> <" colspy = "colpan> </tdr> </tR> <" tR> "colspan>" colspan> </tdan </tr> </ttran = "2" value = "EXIT"/> </td> </tr> </able> </form> </td> </tr> </tr> </able> </body> </html>Efek halaman
4.4 keluar dari halaman pemrosesan bisnis
Loginout.jsp
<%@ halaman bahasa = "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 transisi // en"> <html> <head> <base href = "<%= Basepath%>"> <title> loginout.jspe "metmace" </title> </title> <MetA http-quiv = "metmace" no-conte "no-conte" no-conte "no-conte" no-conte "no-conte" no-conte "no-conte" no-conte "no-conte" http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css"> -> </head> <body> <% session.removeattribute ("nama pengguna"); response.sendredirect ("login.jsp"); %> </body> </html>Hapus informasi pengguna dari sesi dan lompat ke halaman login login.jsp
4.5 Halaman Pendaftaran Pengguna
register.jsp
<%@ halaman bahasa = "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>Register Page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href = "styles.css"> -> </head> <body> <form Action = "register_action.jsp" Method = "Post"> <able> <tr> <td colspan = "2"> Jendela Daftar </td> </tr> <TD> Nama USERNUM: </td> </td </tr> <td> <td> </td "</td> </TD </tr> <td> USERNAME: </td> <td> <tR> <TR> <TD> USERNAME: </td> <ted> <input> <TD>" TEPP "/USERNAME" <td> Kata Sandi: </td> <td> <input type = "text" name = "password1"/> </td> </tr> <tr> <td> Konfirmasi kata sandi: </td> <td> <input type = "name" name = "password2"/> </td> </tr> <TR> </TREK = "TEPS =" TREP = "TREP =" TRE "TR> </TD> </TD </TD </TD> </TD </TD </TD </TD> /> </td> </tr> <tr> <td colspan = "2"> <input type = "kirim" value = "register"/> <a href = "login.jsp"> return </a> </td> </tr> </able> </form> </body> </html>
Efek berjalan
4.6 Halaman Pemrosesan Bisnis Pendaftaran
<%@ halaman bahasa = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ page impor = "java.sql.*"%> <%@ page impor = "com.baoSight.bean.*"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <% String username = request.getParameter ("nama pengguna"); String password1 = request.getParameter ("password1"); String password2 = request.getParameter ("password2"); String email = request.getParameter ("email"); if (username == null || "". sama (username.trim ()) || password1 == null || "". sama (kata sandi1.trim ()) || kata sandi2 == null || "". sama (kata sandi2.trim ()) ||! kata sandi1.equals (kata sandi2)) {//out.wrim ()) ||! Kata sandi System.out.println ("Nama pengguna atau kata sandi tidak dapat kosong!"); response.sendredirect ("register.jsp"); kembali; //request.getRequestDispatcher("login.jsp").forward(request, respons); } Userbean userbean = UserBean baru (); boolean isExit = userbean.isexist (nama pengguna); if (! isExit) {userbean.add (username, password1, email); System.out.println ("Terdaftar dengan sukses, silakan masuk!"); response.sendredirect ("login.jsp"); kembali; } else {System.out.println ("Nama pengguna sudah ada!"); response.sendredirect ("register.jsp"); kembali; } %>JAVABEAN JAVABEAN UNTUK PENGOLAHAN BISNIS
Kembali ke halaman pendaftaran saat nama pengguna atau kata sandi kosong
Ketika nama pengguna yang terdaftar tidak ada di database, pengguna baru ditambahkan
Setelah penambahan baru berhasil, lompat ke halaman login login.jsp
Saat nama pengguna terdaftar ada di database, kembalilah ke halaman pendaftaran Register.jsp
5. Ringkasan
Contoh ini menggunakan Javabean untuk merangkum operasi basis data dan pemrosesan logika bisnis.
Di atas adalah pengantar singkat untuk menggunakan Javabean untuk mewujudkan login pengguna, dan perlu terus meningkat. Saya harap semua orang bisa belajar dan membuat kemajuan bersama!