Artikel ini terutama menganalisis modul pengguna mal buku untuk semua orang, konten spesifiknya adalah sebagai berikut
1. Kelas Terkait Pembuatan Modul Pengguna
Domain: Pengguna
DAO: Userdao
Layanan: Userdao
Web.Servlet: UserserVlet
2. Pendaftaran Pengguna
2.1 Proses Pendaftaran
/jsps/user/regist.jsp -> UserserVlet#regist () -> msg.jsp
2.2 halaman pendaftaran
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <! Doctypype html public "-// w3c/w3c/dox> <! Doctypype html public"-//w3c/dox> doctype html public "-//w3c/dox> html public"-// w3c/dox> html public "-//w3c/dox> html public"-//w3c/d doctype 4.01 Transisi // en "> <html> <head> <title> register </itement> <meta http-equiv =" pragma "content =" no-cache "> <meta http-equiv =" Cache-Control "Content =" No-Cache "> <meta http http-equiv =" content "content =" 0 no-cache "> <meta http-equiv =" conten "" no-cache "> <meta http-equiv =" conten "" no-cache "> <meta http-equiv =" conten "conten =" "0 no-cache"> <meta http-equiv = "ext" content = "" 0 no-cache "<meta http-equiv =" ext "content =" "0" 0 content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1> Daftar </h1> <%-1. Tampilkan kesalahan-> Kesalahan lapangan 2. Tampilkan kesalahan pengecualian 3. Echo-%> <p style = "color: red; font-weight: 900"> $ {msg} </p> <bentuk acti Nama pengguna: <input type = "text" name = "username" value = "$ {form.userName}"/> <span style = "color: red; font-weight: 900"> $ {errors.userName} </span> <br/> kata sandi: <input type = "kata sandi" name = "kata sandi" value = "$ {$ {form. font-weight: 900 "> $ {errors.password} </span> <br/> email: <input type =" text "name =" email "value =" $ {form.email} "/> <span style =" color: red; font-weight: 900 "> $ {errors.email} </span> <br/> <input type =" kirim "value =" register "/> <form> </body> </html>2.3 UserserVlet
Pengguna
/*** Objek Domain Pengguna*/Public Class User {/** Tabel Basis Data yang sesuai*/Private String uid; // Kunci Utama Private String UserName; // Username Private String Password; // Kata Sandi Private String Email; // Email Kode String Privat; // Kode Aktivasi Private Boolean State; // Status (diaktifkan dan diinaktivasi))BaseserVlet
BaseserVlet kelas publik memperluas httpservlet { / * * Ini akan memutuskan metode mana dari kelas ini yang disebut berdasarkan metode dalam layanan permintaan * / dilindungi (httpservletRequest req, httpservletResponse reseDing) melempar servletException, ioException {req.setcharicoding) (") (ioException {req.setcharacresoding (" "); res.setContentType ("Teks/html; charset = utf-8"); coba {// misalnya: http: // localhost: 8080/demo1/xxx? m = tambahkan string metode = req.getParameter ("metode"); // Ini adalah metode nameclass c = this.getClass (); Metode m = c.getMethod (metode, httpservletrequest.class, httpservletResponse.class); String result = (string) m.invoke (this, req, res); if (hasil! = null &&! result.isempty ()) {req.getRequestDispatcher (hasil) .forward (req, res); }} catch (Exception e) {lempar servletException baru (e); }}}Userservlet
/*** Lapisan Ekspresi Pengguna*/Public Class UserserVlet memperluas BASESERVLET {Private UserService UsersEverService = baru Userservice (); / ** * Fungsi Keluar * @param Permintaan * @param Response * @return * @throws servletException * @throws IoException */ Public String QUIT (httpservletRequest, httpservletResponsese) lemparan servletException, ioException {request.getSession (). return "r: /index.jsp"; } Public String Login (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException { / * * 1. Mengenak data formulir ke dalam Formulir * 2. Masukkan verifikasi (tidak ada penulisan * 3. Layanan hubungi untuk melengkapi aktivasi *> Simpan informasi kesalahan, dapat diminta, maju ke Loin.jsp * Forma. Commonutils.tobean (request.getParametermap (), user.class); coba {user user = userservice.login (form); request.getSession (). setAttribute ("session_user", pengguna); /** Tambahkan keranjang belanja ke pengguna, yaitu menyimpan objek keranjang ke sesi*/ request.getSession (). SetAttribute ("cart", cart baru ()); return "r: /index.jsp"; } catch (UserException e) {request.setAttribute ("msg", e.getMessage ()); request.setAttribute ("Form", form); return "f: /jsps/user/login.jsp"; }} /** * Fungsi aktivasi * @param permintaan * @param respons * @return * @throws servletException * @throws ioException * /Public String Active (Metode Lengkap Layanan, Layanan Lengkap. ke domain permintaan dan meneruskan ke msg.jsp * 3. Simpan informasi berhasil ke domain permintaan dan maju ke msg.jsp */ string code = request.getParameter ("kode"); coba {UserserVice.active (kode); request.setAttribute ("MSG", "Selamat, Anda telah berhasil mengaktifkannya! Silakan masuk sekarang!"); } catch (UserException e) {request.setAttribute ("msg", e.getMessage ()); } return "f: /jsps/msg.jsp"; } /** * Fungsi pendaftaran * @param Permintaan * @param Response * @return * @throws servletException * @throws ioException * /string publik regist (httpservletRequest request, httpservexponse response * lempar ke dalam levllexception, ioException { / * * 1. Informasi Kesalahan, Formulir untuk Meminta Bidang, Maju ke Register.jsp * 4. Hubungi metode layanan untuk menyelesaikan pendaftaran *> menyimpan informasi kesalahan, formulir untuk meminta bidang, meneruskan ke register.jsp * 5. Kirim Email * 6. Simpan Informasi Sukses Maju ke msg.jsp *// ecapsulate Formulir Formulir Pengguna = commonils.tobean (request.getparamermap (), usersclass. // Lengkapi form.setuid (commonutils.uuid ()); form.setCode (commonutils.uuid ()) + commonutils.uuid ()); /** Masukkan verifikasi* 1. Buat peta untuk merangkum informasi kesalahan, di mana kunci adalah nama bidang formulir dan nilainya adalah pesan kesalahan*/ peta <string, string> errors = new HashMap <string, string> (); /** 2. Dapatkan nama pengguna, kata sandi, dan email dalam formulir untuk verifikasi*/ string username = form.getUserName (); if (username == null || username.trim (). isempty ()) {errors.put ("nama pengguna", "Nama pengguna tidak bisa kosong!"); } lain jika (username.length () <3 || username.length ()> 10) {errors.put ("nama pengguna", "Nama pengguna harus antara 3 dan 10!"); } String kata sandi = form.getPassword (); if (password == null || password.trim (). isEmpty ()) {errors.put ("password", "Kata sandi tidak dapat kosong!"); } lain jika (kata sandi } String email = form.geteMail (); if (email == null || email.trim (). isEmpty ()) {errors.put ("email", "email tidak bisa kosong!"); } else if (! email.matches ("// w +//w+//.//w+")) {errors.put ("email", "Kesalahan format email!"); }/** 3. Tentukan apakah ada pesan kesalahan*/ if (errors.size ()> 0) {// 1. Simpan pesan kesalahan // 2. Simpan formulir data // 3. Maju ke regist.jsp request.setAttribute ("kesalahan", kesalahan); request.setAttribute ("Form", form); return "f: /jsps/user/regist.jsp"; } / * * Hubungi metode regist () layanan * / coba {Userservice.regist (form); } catch (UserException e) { / * * 1. Simpan informasi pengecualian * 2. Simpan formulir * 3. Maju ke regist.jsp * / request.setAttribute ("msg", e.getMessage ()); request.setAttribute ("Form", form); return "f: /jsps/user/regist.jsp"; } /** Kirim email* Siapkan file konfigurasi! */ // Dapatkan Properti Konten File Konfigurasi Props = properti baru (); props.load (this.getClass (). getClassLoader () .getResourceAsstream ("email_template.properties")); String host = props.getProperty ("host"); // dapatkan server host string uname = props.getProperty ("uname"); // dapatkan nama pengguna string pwd = props.getproperty ("pwd"); // get string kata sandi dari = props.getproperty ("from");//get sender string to = form. props.getProperty ("subjek"); // Dapatkan konten string subjek = props.getProperty ("konten"); // Dapatkan konten surat = mstersageFormat.format (konten, form.getCode ()); // ganti {0} sesi sesi = mailutil moag.creaSesi (host, uname, pwd); // get mail = mailutil.creaSesion (host, uname, pwd); {Mailutils.send (sesi, mail); // Kirim email! } catch (MessagingException e) {} / * * 1. Simpan informasi sukses * 2. Maju ke msg.jsp * / request.setAttribute ("msg", "Selamat, pendaftaran berhasil! Harap aktifkan di alamat email segera"); return "f: /jsps/msg.jsp"; }}2.4 USERSERVICE
/*** Lapisan Bisnis Pengguna*/Public Class UserService {private userdao userdao = new userdao (); / *** Fungsi pendaftaran* Formulir @param*/ Registrasi public void (Formulir Pengguna) Melempar UserException {// Verifikasi Pengguna Nama Pengguna Pengguna = userdao.findbyuserName (form.getUserName ()); if (user! = null) lempar UserException baru ("Nama pengguna telah terdaftar!"); // Verifikasi email pengguna = userdao.findbyemail (form.getemail ()); if (user! = null) lempar UserException baru ("Email telah terdaftar!"); // masukkan pengguna ke dalam database userdao.add (form); } / ** * Fungsi aktivasi * @throws UserException * / public void aktif (kode string) melempar UserException { / * * 1. Gunakan kode untuk menanyakan database dan dapatkan pengguna * / user user = userdao.findbycode (kode); /** 2. Jika pengguna tidak ada, itu berarti bahwa kode aktivasi salah*/ if (user == null) melempar UserException baru ("Kode aktivasi tidak valid!"); / * * 3. Verifikasi apakah status pengguna tidak aktif. Jika diaktifkan, itu berarti itu adalah aktivasi sekunder dan pengecualian dilemparkan*/ if (user.isstate ()) melempar UserException baru ("Anda telah diaktifkan, jangan aktifkan lagi kecuali Anda ingin mati!"); /** 4. Ubah status pengguna*/ userdao.updaTeState (user.getuid (), true); } /** * Fungsi login * Formulir @param * @return * @throws UserException * /Login Pengguna Publik (Formulir Pengguna) Melemparkan UserException { / * * 1. Gunakan nama pengguna untuk meminta pengguna * 2. Jika pengguna nol, pengecualian dilemparkan (nama pengguna tidak ada) * 3. Bandingkan kata sandi dan pengguna. Jika berbeda, pengecualian dilemparkan (kata sandi salah) * 4. Periksa status pengguna. Jika false, pengecualian dilemparkan (belum diaktifkan) * 5. Kembalikan pengguna */ pengguna pengguna = userdao.findbyusername (form.getUserName ()); if (user == null) lempar UserException baru ("Nama pengguna tidak ada!"); if (! user.getPassword (). Equals (form.getPassword ())) Lempar UserException baru ("Kesalahan Kata Sandi!"); if (! user.isstate ()) melempar UserException baru ("Belum diaktifkan!"); Pengguna Kembali; }}2.5 userdao
/*** Lapisan Persistensi Pengguna*/Public Class Userdao {Private QueryRunner qr = new TXQueryRunner (); / ** * kueri dengan nama pengguna * @param nama pengguna * @return */ pengguna publik findByUserName (string username) {coba {string sql = "pilih * dari tb_user di mana username =?"; return qr.query (SQL, BeanHandler baru <User> (user.class), nama pengguna); } catch (sqlexception e) {lempar runimeException baru (e); }} / ** * kueri melalui email * @param email * @return * / pengguna publik findbyemail (email string) {coba {string sql = "pilih * dari tb_user di mana email =?"; return qr.query (SQL, BeanHandler baru <User> (user.class), email); } catch (sqlexception e) {lempar runimeException baru (e); }} / ** * Masukkan pengguna * @param pengguna * / public void add (pengguna pengguna) {coba {string sql = "masukkan ke dalam nilai tb_user (?,?,?,?,?,?)"; Objek [] params = {user.getUid (), user.getUserName (), user.getPassword (), user.geteMail (), user.getCode (), user.isState ()}; qr.update (sql, params); } catch (sqlexception e) {lempar runimeException baru (e); }} / ** * kueri dengan kode aktivasi * @param kode * @return * / pengguna publik findBycode (kode string) {coba {string sql = "pilih * dari tb_user di mana kode =?"; return qr.query (SQL, BeanHandler baru <User> (user.class), kode); } catch (sqlexception e) {lempar runimeException baru (e); }} / ** * Ubah status yang ditentukan dari pengguna yang ditentukan * @param uid * @param state * / public void updateState (string uid, state boolean) {coba {string sql = "perbarui tb_user set state =? Di mana uid =?"; qr.update (sql, state, uid); } catch (sqlexception e) {lempar runimeException baru (e); }}}3. Aktivasi Pengguna
Proses: Email Pengguna -> UserserVlet#Active () -> msg.jsp
4.
Login pengguna
Proses: /jsps/user/login.jsp -> UserserVlet#login () -> index.jsp
5.
Keluar pengguna
Proses: Top.jsp -> UserserVlet#quit () -> Login.jsp
QUIT (): Hancurkan sesi!
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.