Dieser Artikel analysiert hauptsächlich das Benutzermodul der Buchmall für alle. Der spezifische Inhalt ist wie folgt
1. Die Erstellung des Benutzermoduls der Klassenklasse
Domain: Benutzer
DAO: UserDao
Service: UserDao
Web.Servlet: UserServlet
2. Benutzerregistrierung
2.1 Registrierungsprozess
/JSPS/user/regist.jsp -> UserServlet#Regist () -> msg.jsp
2.2 Registrierungsseite
<%@ page Language = "java" import = "java.util. Transsitional // en "> <html> <kopf> <title> Register </title> <meta http-äquiv =" pragma "content =" no-cache "> <meta http-äquiv =" cache-control "content =" no-cache "> <meta http-äxvr. content = "keyword1, keyword2, keyword3"> <meta http-äquiv = "Beschreibung" content = "Dies ist meine Seite"> <meta http-äquiv = "content-type" content = "text/html; charset = utf-8"> <! <body> <h1> Register </h1> <%-1. Fehler anzeigen-> Feldfehler 2. Ausnahmefehler anzeigen 3. Echo-%> <p style = "Farbe: Rot; Schriftgewicht: 900"> $ {msg} </p> <Form Action = "<c: url value = '/userervlet'/" methody = "” post "> <" <"> <" <"<" <"<" <c: "hidden name" ’method '/>" post "> <"> <"<" <"<" <"<"> <"<"> <"<" <"<" <c: "hidden name" "’ method "/" post "> <"> <"<"> <"<" <"<"> <"<" <"> <" <"<" <"> <" <"<" <"<c:" hidden name "" »" methods methode Benutzername: <Eingabe type = "text" name = "userername" value = "$ {form.username}"/> <span style = "color: rot; font-weight: 900"> $ {fehlern Schriftgewicht: 900 "> $ {Fehler.Password} </span> <br/> E-Mail: <Eingabe type =" text "name =" E-Mail "value =" $ {Form.Email} "/> <span style =" color: rot; Schriftgewicht: 900 "> $ {fehlern.email} </span> <br/> <Eingabe type =" subieren "value =" register "/> </form> </body> </html>2.3 UserServlet
Benutzer
/*** Domänenobjekt des Benutzers*/public class Benutzer {/** entsprechende Datenbanktabelle*/private Zeichenfolge UID; // Primärschlüssel privater Zeichenfolge Benutzername; // Benutzername Private Zeichenfolge Passwort; // Passwort private Zeichenfolge E -Mail; // E -Mail private Zeichenfolge Code; // Aktivierungscode privater Booleaner Status; // Status (aktiviert und inaktiviert).BaseServlet
Die öffentliche Klasse BasSeServlet erweitert HttpServlet { / * * Es wird entscheiden, welche Methode dieser Klasse auf der Methode in der Anforderung * / Protected void Service (httpServletRequest req, httpServletResponse res) bezeichnet wird. Res.SetContentType ("text/html; charSet = utf-8"); Versuchen Sie {// zum Beispiel: http: // localhost: 8080/Demo1/xxx? m = String -Methode hinzufügen = req.getParameter ("Methode"); // Es ist eine Methode nameclass c = this.getClass (); Methode M = C.GetMethod (Methode, httpServletRequest.Class, httpServletResponse.class); String result = (String) m.invoke (this, req, res); if (result! = null &&! result.iseMpty ()) {req.getRequestDispatcher (Ergebnis) .forward (req, res); }} catch (Ausnahme e) {neue servleTexception (e) werfen; }}}UserServlet
/*** User Expression Layer*/Public Class UserServlet erweitert BaseServlet {private UserService userService = new UserService (); / ** * beendensfunktion * @param request * @param response * @return * @throws ServletException * @throws ioException */ public String Quit (httpServletRequest Request, httpServletResponse -Antwort) löst ServletException aus, IOException {requestSession.getSession (). return "r:/index.jsp"; } public String login (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, IOException { / * * 1. Formulardaten in Form eines Formulars einkapseln * 2. Überprüfung eingeben (kein Schreiben) * 3. Rufen Sie den Dienst auf, um die Aktivierung zu vervollständigen. CommonUtils.tobean (Request.getParametermap (), user.class); try {user user = userService.login (Formular); Request.GetSession (). setAttribute ("Session_user", Benutzer); /** Fügen Sie dem Benutzer einen Einkaufswagen hinzu, dh ein Wagenobjekt in der Sitzung*/ request.getSession (). SetAttribute ("cart", neuer cart ()); return "r:/index.jsp"; } catch (userexception e) {request.setAttribute ("msg", e.getMessage ()); Request.SetAttribute ("Form", Form); return "f: /jsps/user/login.jsp"; }} /** * Aktivierungsfunktion * @param request * @param response * @return * @throwsException * @throws ioException * /public string active (httpServletRequest request, httpServletRetRePletRetRePletRePletResponse) Throws ServletException, IOException { * * * 1. weiterleiten Sie an msg.jsp * 3.. Speichern Sie die Erfolgsinformationen in der Anforderungsdomäne und leiten Sie an msg.jsp */ string code = request.getParameter ("Code"); try {userService.active (Code); Request.SetAttribute ("msg", "Herzlichen Glückwunsch, Sie haben es erfolgreich aktiviert! Bitte melden Sie sich jetzt an!"); } catch (userexception e) {request.setAttribute ("msg", e.getMessage ()); } return "f: /jsps/msg.jsp"; } /** * Registrierungsfunktion * @param Anfrage * @param Antwort * @return * @throws ServletException * @throws ioException * /public String Regist (httpServletRequest Request, httpServletRespespectRepe) löst ServletException aus, IOException { / * * 1. Feld, weiterleiten Sie an Register.jsp * 4. Rufen Sie die Servicemethode an, um die Registrierung zu vervollständigen // vollständige Form.SetUid (CommonUtils.UUID ()); Form.SetCode (CommonUtils.UUID ()) + CommonUtils.Uuid ()); /** Überprüfung eingeben* 1. Erstellen Sie eine Karte, um Fehlerinformationen zu verkapseln, wobei der Schlüssel des Formularfelds und der Wert die Fehlermeldung*/ Map <String, String> Fehler = neuer Hashmap <String, String> () ist; /** 2. Holen Sie sich den Benutzernamen, das Passwort und die E -Mail im Formular zur Überprüfung*/ String username = Form.getUername (); if (userername == null || userername.trim (). isEmpty ()) {fehler.put ("Benutzername", "Der Benutzername kann nicht leer sein!"); } else if (userername.length () <3 || userername.length ()> 10) {fehler.put ("Benutzername", "Der Benutzername muss zwischen 3 und 10 sein!"); } String password = Form.getPassword (); if (password == null || password.trim (). isEmpty ()) {fehler.put ("Passwort", "Passwort kann nicht leer sein!"); } else if (password.length () <3 || password.length ()> 10) {fehler.put ("Passwort", "Passwort muss zwischen 3 ~ 10 sein!"); } String -E -Mail = Form.getEMail (); if (E -Mail == null || E -Mail.trim (). isEmpty ()) {fehler.put ("E -Mail", "E -Mail kann nicht leer sein!"); } else if (! E -Mail.Matches ("// w+@/w+//./w+")) {errors.put ("E -Mail", "E -Mail -Format -Fehler!"); }/** 3.. Bestimmen Sie, ob es eine Fehlermeldung gibt*/ if (fehler.size ()> 0) {// 1. Speichern Sie die Fehlermeldung // 2. Formulardaten // 3.. Request.SetAttribute ("Form", Form); return "f: /jsps/user/regist.jsp"; } / * * Rufen Sie die Regist () -Methode des Dienstes auf * / try {UserService.regist (Form); } catch (userexception e) { / * * 1. Ausnahmeinformationen speichern Request.SetAttribute ("Form", Form); return "f: /jsps/user/regist.jsp"; } /** Eine E -Mail senden* Bereiten Sie die Konfigurationsdatei vor! */ // Die Konfigurationsdateiinhaltseigenschaften props = new Properties () abrufen; props.load (this.getClass (). getClassloader () .getResourceAsStream ("E -Mail_Template.Properties")); String host = props.getProperty ("host"); // server host string ungename = props.getProperty ("uname"); // Benutzername String pwd = props.getProperty ("pwd"); // Kennwort String von = Props.GetProperty ("From"); // Sender String to = Form.) ()/// props.getProperty ("Betreff"); // Subjekt String content = props.getProperty ("Inhalte"); // den Mail -Inhalt in content = messageFormat.format (Inhalt, Form.GetCode ()); // Ersetzen Sie {0} Sitzung Session Mailutils.send (Sitzung, Mail); // eine E -Mail senden! } catch (MessagingException e) {} / * * 1. Erfolgspflichtige Informationen * 2. Weiterleiten an msg.jsp * / request.setAttribute ("msg", "Herzlichen Glückwunsch, die Registrierung ist erfolgreich! Bitte aktivieren Sie sie sofort in der E -Mail -Adresse"); return "f: /jsps/msg.jsp"; }}2.4 UserService
/*** User Business Layer*/Public Class UserService {private userDao userDao = new userDao (); / *** Registrierungsfunktion* @param Formular*/ public void Registrierung (Benutzerformular) löst userexception {// Benutzername user user = userDao.findbyUserName (Form.getUnername ()) ausgelöst; if (user! // E -Mail user = userDao.findbyemail (Form.Getemail ()) überprüfen; if (user! // Fügen Sie den Benutzer in die Datenbank userDao.add (Form) ein; } / ** * Aktivierungsfunktion * @throws userexception * / public void active (String -Code) löst userexception { / * * 1. Verwenden Sie den Code, um die Datenbank abzufragen und Benutzer zu erhalten * / user user = userDao.findByCode (Code); /** 2. Wenn der Benutzer nicht existiert, bedeutet dies, dass der Aktivierungscode falsch ist / * * 3.. Überprüfen Sie, ob der Status des Benutzers inaktiv ist. Wenn es aktiviert ist, bedeutet es, dass es sich um eine sekundäre Aktivierung handelt und eine Ausnahme ausgelöst wird*/ if (user.isstate ()). /** 4. Ändern Sie den Status des Benutzers*/ userDao.UpDatestate (user.getuid (), true); } /** * Login -Funktion * @param Formular * @return * @throws userexception * /public Benutzeranmeldung (Benutzerform) löscht die Usexception { / * * 1. Verwenden Sie den Benutzernamen, um den Benutzer zu verlangen. Wenn unterschiedlich, wird eine Ausnahme ausgelöst (das Passwort ist falsch) * 4.. Überprüfen Sie den Status des Benutzers. Wenn falsch, wird eine Ausnahme ausgelöst (noch nicht aktiviert) * 5. Benutzer zurückgeben if (user == null) werfen neue userexception ("Der Benutzername existiert nicht!"); if (! user.getPassword (). Equals (Form.GetPassword ()) werfen neue userexception ("Kennwortfehler!"); if (! user.isstate ()) werfen neue userexception ("noch nicht aktiviert!"); Benutzer zurückgeben; }}2.5 UserDao
/*** Benutzer Persistenzschicht*/öffentliche Klasse UserDao {private queryRunner qr = new txqueryRunner (); / ** * Abfrage nach Benutzername * @param userername * @return */ public user findByUnername (String -Benutzername) {try {string sql = "select * aus tb_user wo usustername =?"; Return QR.Query (SQL, New BeanHandler <Ders> (user.class), Benutzername); } catch (SQLEXception e) {neue RunTimeException (e) werfen; }} / ** * per E -Mail abfragen * @param E -Mail * @return * / public user findByemail (String -E -Mail) {try {String sql = "Select * von TB_USER WHERE EMAMME =?"; Return QR.Query (SQL, New BeanHandler <Ders> (user.class), E -Mail); } catch (SQLEXception e) {neue RunTimeException (e) werfen; }} / ** * Benutzer einfügen * @param user * / public void add (Benutzer Benutzer) {try {string sql = "In Tb_User -Werte (?,?,?,?,?)"; Object [] params = {user.getUid (), user.getUnername (), user.getPassword (), user.getemail (), user.getCode (), user.isstate ()}; QR.Update (SQL, Params); } catch (SQLEXception e) {neue RunTimeException (e) werfen; }} / ** * Nach Aktivierungscode * @param code * @return * / public user findByCode (String -Code) {try {String sql = "aus TB_USER WHERE CODE =?"; Return QR.Query (SQL, New BeanHandler <Ders> (user.class), Code); } catch (SQLEXception e) {neue RunTimeException (e) werfen; }} / ** * Ändern Sie den angegebenen Status des angegebenen Benutzers * @param uid * @param Status * / public void updatestate (String uid, boolean Status) {try {string sql = "aktualisieren tb_user set state =? Where uid =?"; Qr.Update (SQL, State, UID); } catch (SQLEXception e) {neue RunTimeException (e) werfen; }}}3. Benutzeraktivierung
Prozess: E -Mail des Benutzers -> UserServlet#active () -> msg.jsp
4.
Benutzeranmeldung
Prozess: /jsps/user/login.jsp -> userServlet#login () -> index.jsp
5.
Benutzerbeenden
Prozess: Top.jsp -> UserServlet#Quit () -> Login.jsp
Quit (): Zerstöre die Sitzung!
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.