Dieses Projekt ist ein Projekt, das Javaweb und E -Mail kombiniert. Die simulierte Website muss das E -Mail -Konto aktivieren, bevor es verwendet werden kann.
Erstellen Sie eine Datenbank
Tabelle Benutzer erstellen Benutzer (ID varchar (32) Primärschlüssel, Name Varchar (30), PWD Varchar (20), E -Mail Varchar (20), Active Char (1), ACODE VARCHAR (32))
User.java value -Objekt
Paket cn.Hncu.reg.domain; import Javax.Persistence.Table; Public Class User {private String -ID; privater Zeichenfolge Name; private String PWD; private String -Akode; private Zeichenfolge aktiv; private Zeichenfolge E -Mail; public String getid () {return id; } public void setID (String -ID) {this.id = id; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getPwd () {return pwd; } public void setpwd (String pwd) {this.pwd = pwd; } public String getAcode () {return acode; } public void setAcode (String acode) {this.acode = acode; } public String getActive () {return active; } public void setActive (String aktiv) {this.active = active; } public String getemail () {E -Mail zurückgeben; } public void setemail (String -E -Mail) {this.email = E -Mail; } @Override public int HashCode () {final int prime = 31; int result = 1; result = prime * result + ((id == null)? 0: id.hashcode ()); Rückgabeergebnis; } @Override public boolean Equals (Objekt obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; Benutzer Andere = (Benutzer) obj; if (id == null) {if (other.id! = null) return false; } else if (! id.equals (other.id)) return false; zurückkehren; }}C3p0pool.java
Paket cn.hncu.pubs; import Java.sql.connection; import Java.sql.sqlexception; import Javax.sql.dataSource; private statische ThreadLocal <Connection> tl = new ThreadLocal <Connection> (); public static Connection getCon () löscht SQLEXception {Connection con = (Verbindung) tl.get () aus; if (con == null) {con = ds.getConnection (); tl.set (con); } return con; } public static dataSource getPool () {return ds; } public static threadLocal <Connection> getTl () {return tl; }}C3P0-config.xml
<c3p0-config> <!-Standardkonfiguration, falls nicht angegeben, verwenden Sie diese Konfiguration-> <default-config> <Eigenschaft name = "triverClass"> com.mysql.jdbc.driver </Property> <Eigentumsname = "Jdbcurl"> <! [CDATA [JDBC: MySQL: //127.0.0.1: 3306/SSTUD? UseUnicode = True & CharakterCoding = Utf-8]> </Eigenschaft> <Eigenschaftsname = "Benutzer"> root </Property> <Eigenschaft "Passwort"> 1234 </Property </<! Maximale Leerlaufzeit-> <Eigenschaft name = "maxidletime"> 30 </Property> <!-Wie viele Verbindungen gibt es höchstens-> <Eigenschaft Name = "Maxpoolsize"> 10 </Property> <! </default-config> <!-Konfiguration-> <Namen-Config name = "hncu"> <Property name = "TRAVERCLASS"> com.mysql.jdbc.driver </Property> <Eigentumsname = "jdbcurl"> jdbc: MySQL: //127.0.0.0.0.0.1: 3306/sstud </STOMBORT </STUMBOLE name = "user"> root </Eigenschaft> <Eigenschaft name = "password"> 1234 </property> <property name = "accoireIncrement"> 5 </property> <!-Wie oft kann ich zu einem Zeitpunkt wachsen, wenn es nicht genügend Datenverbindung im Pool gibt-> <Property name = "initialpoolse"> 100 </property> <Eigentum. name = "maxpoolSize"> 1000 </Property> <Eigenschaft name = "maxstatements"> 0 </property> <Eigenschaft name = "MaxStatementSperConnection"> 5 </Property> <!
Regdao.java
Paket cn.hncu.reg.dao; importieren cn.hncu.reg.domain.user; öffentliche Schnittstelle Regdao {public user Reg (Benutzerbenutzer); öffentlicher Benutzer aktiv (String ACode);}Regdaojdbc.java
Paket cn.hncu.reg.dao; import Java.sql.sqlexception; import Java.util.uuid; importieren javax.sql.dataSource; import org.apache.commons.dbutils.queryrunner; org.apache.commons.dbutils.Handlers.beanlisthandler; importieren cn.hncu.pool.c3pool; importieren cn.hncu.reg.domain.user; QueryRunner qr = new queryRunner (ds); String SQL = "In den Benutzer (ID, Name, PWD, E -Mail, aktiv, acode) Werte (?,?,?,?,?,?)"; try {string id = uUid.randomuuid (). toString (). ersetzen ("-", ""); String acode = uUid.randomuuid (). ToString (). Ersatz ("-", ""); qr.Update (SQL, ID, user.getName (), user.getPWD (), user.getemail (), "0", acode); user.setacode (acode); user.setId (id); user.setActive ("0"); } catch (sqlexception e) {// e.printstacktrace (); System.out.println ("Register fehlgeschlagen"); null zurückkehren; } Rückgabe des Benutzers; } @Override public user active (string acode) {dataSource ds = c3p0pool.getpool (); QueryRunner qr = new queryRunner (ds); String SQL = "SELECT * vom Benutzer WHERE ACODE =?"; User user = null; try {user = qr.Query (SQL, neuer BeanHandler (user.class), acode); if (user! qr.Update (SQL, Acode); Benutzer zurückgeben; }} catch (SQLEXception e) {user = null; E. printstacktrace (); } return null; }}IreGService.java
Paket cn.Hncu.reg.service; importieren cn.hncu.reg.domain.user; öffentliche Schnittstelle IREGService {public User Reg (Benutzerbenutzer); öffentlicher Benutzer aktiv (String ACode);}Regservice.java
Paket cn.hncu.reg.service; import cn.hncu.reg.dao.regdao; import cn.hncu.reg.dao.regdaojdbc; @Override public User Reg (Benutzer Benutzer) {return dao.reg (Benutzer); } @Override public user active (String acode) {return dao.active (acode); }}Regservlet.java
Paket cn.Hncu.reg.servlet; import Java.io.ioxception; import Java.io.printwriter; import Javax.servlet.servletException; import Javax.servlet.http.httpservlet; Import.http.httpletrequest; javax.servlet.http.httpServletResponse; importieren cn.hncu.reg.domain.user; importieren cn.hncu.reg.sendmail IreGService Service = New RegService (); public void dodget (httpServletRequest Request, httpServletResponse -Antwort) löst ServletException aus, ioException {response.setContentType ("text/html"); Printwriter out = response.getWriter (); out.println ("<! docType html public/"-// w3c // dtd html 4.01 transitional // en/">"); out.println ("<html>"); out.println ("<kopf> <titels> a servlet </title> </head>"); out.println ("<body>"); out.println ("<body>"); out.println ("Bitte füllen Sie nach Bedarf aus"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, ioException {printwriter out = response.getWriter (); String name = request.getParameter ("Name"); String pwd = request.getParameter ("pwd"); String -E -Mail = Request.GetParameter ("E -Mail"); User user = new user (); user.setName (name); user.setPWD (PWD); user.setemail (E -Mail); user = service.reg (Benutzer); if (user! new SendemailThread (user.getAcode ()). start (); } else {out.print ("Register fehlgeschlagen"); }}}SendemailThread.java
Paket cn.Hncu.reg.Sendmail; Import Java.util.Properties; Import Javax.mail.authenticator; Import Javax.Mail.Message.RecipientType; Import Javax.Mail.MessingException; javax.mail.internet.addressException; import javax.mail.internet.internetaddress; import Javax.mail.internet.mimemessage; import org.apache.log4j.logger; öffentliche Klasse Sendemailthread erweitert Thread {private String acode; private logger log = logger.getLogger (sendemailThread.class); public sendemailThread (String acode) {this.acode = acode; } @Override public void run () {Eigenschaften p = neue Eigenschaften (); P.SetProperty ("Mail.host", "SMTP.sina.com"); P.SetProperty ("mail.smtp.auth", "true"); Session Session = session.getDefaultInstance (p, neuer Authenticator () {@Override Protected PasswordAuthentication getPasswordAuthentication () {PasswordAuthentication pa = new PasswordAuthentication ("hncujava", "1234567"); return pa;}}); Session.setDebug (true); Mimemessage msg = neue Mimemessage (Sitzung); try {msg.setfrom (neue InternetAddress ("[email protected]"); msg.setRecipient (recicentType.to, New InternetAddress ("[email protected]")); msg.setsubject ("HNCU -Konto aktivieren"); StringBuilder sb = new StringBuilder (); sb.append ("Bitte aktivieren Sie die E -Mail: <a href = 'http: //127.0.0.1: 8080/mailweb/activeServlet"); sb.append ("? acode ="+acode+"'> klicken, um zu aktivieren </a>"); sb.append ("<br/> Wenn die Aktivierung nicht erfolgreich ist, kopieren Sie die folgende Adresse in die Browseradressleiste, um eine manuelle Aktivierung zu erhalten:"); sb.append ("http://www.hncu.cn/mailweb/activeServlet?acode="+acode); msg.setContent (sb.toString (), "text/html; charSet = utf-8"); Transport.Send (MSG); log.info ("Mail -Senden erfolgreich"); } catch (adressException e) {log.Error ("E -Mail -Adresse ist falsch, E -Mail -Senden fehlgeschlagen"); E. printstacktrace (); } catch (MessagingException e) {e.printstacktrace (); log.Error ("E -Mail -Nachrichtenformat ist falsch, E -Mail -Senden fehlgeschlagen"); }}}ActiveServlet.java
Paket cn.Hncu.reg.servlet; import Java.io.ioxception; import Java.io.printwriter; import Javax.servlet.servletException; import Javax.servlet.http.httpservlet; Import.http.httpletrequest; javax.servlet.http.httpServletResponse; importieren cn.hncu.reg.domain.user; importieren cn.hncu.reg.service.iregService; public void dodget (httpServletRequest Request, httpServletResponse -Antwort) löst ServletException aus, iOException {printwriter out = response.getWriter (); String acode = request.getParameter ("acode"); User user = service.active (acode); Request.SetAttribute ("Benutzer", Benutzer); System.out.println ("Benutzer:"+Benutzer); Request.GetRequestDispatcher ("/JSPS/result.jsp"). Forward (Request, Antwort); }}index.jsp
<%@ page Language = "java" import = "java.util. Transitional // en "> <html> <kopf> <titels> E -Mail -Anmeldung </title> <script type =" text/javaScript "> Funktion reg () {document.forms [0] .Action = '<c: url value ="/jsps/reg.jsp "/>'; document.forms [0] .submit (); } function login () {document.forms [0] .Action = '<c: url value = "/loginServlet"/>'; document.forms [0] .submit (); } </script> </head> <body> <c:if test="${!empty error }"> Login failed<c:remove var="error" scope="session"/> </c:if> <c:if test="${empty sessionScope.user }" var="boo"> <h3>User Registration</h3> <form action="" method="post" > Name:<input type="text" name = "name" value = "wang"/> <br/> Passwort: <Eingabe type = "text" name = "pwd" value = "1234"/> <br/> <Eingabe type = "button" value = "login" onclick = "login (); test = "$ {! boo}"> Willkommen zurück, $ {sessionscope.user.name} </c: if> </body> </html>Reg.jsp
<%@ page Language = "java" import = "java.util. Transitional // en "> <html> <kopf> <titels> E -Mail -Registrierungssystem </title> <script type =" text/javaScript "> Funktion reg () {document.forms [0] .Action = '<c: url value ="/regservlet "/>'; document.forms [0] .submit (); } function login () {document.forms [0] .Action = '<c: url value = "/loginServlet"/>'; document.forms [0] .submit (); } </script> </head> <body> <c: if test = "$ {leere sesionscope.user}" var = "boo"> <h3> Benutzerregistrierung </H3> <form action = "" methode = "post"> name: <input type value = "1234"/> <br/> E -Mail: <Eingabe type = "text" name = "E -Mail" value = "[email protected]"/> <br/> <Eingabe type = "button" value = "Register" onclick = "reg ();result.jsp
<%@ page Language = "java" import = "java.util. Transitional // en "> <html> <kopf> <skript type =" text/javaScript "> var tm; var time = 5; function start () {div1.innerhtml = "wird in"+time+"Sekunden" springen; Zeit--; if (time <= 1) {window.clearInterval (tm); window.location.href = "<c: url value = '/index.jsp'/>"; }} onload = function () {tm = window.setInterval (Start, 1000); }; </script> </head> <body> <c: if test = "$ {! Bitte melden Sie sich in <a href = '<c: url value = "/index.jsp"/>'> Login </a> <br/> <br/> <div1 "Div1"> </div> </c: if> <c: if test = "$ {boo}"> Registrierung fehlweb.xml
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_30.xsd" <filter> <filter-name>charset</filter-name> <filter-class>cn.hncu.filter.CharacterFilter</filter-class> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <Filter-name> charSet </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <beschreibung> Dies ist die Beschreibung meiner j2ee-Komponente </Beschreibung> <Display-name> Dies ist der Anzeigeame meiner J2EE-Komponente </display-name> <servlet-name> RegServlet </servlet </servlet </servlet </servlet </servlet </servlet </servlet </servlet </dienstname> <servlet-class>cn.hncu.reg.servlet.RegServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ActiveServlet</servlet-name> <servlet-classe> cn.hncu.reg.servlet.activeServlet </Servlet-Class> </Servlet> <servlet> <beschreibung> Dies ist die Beschreibung meiner j2ee-Komponente </Beschreibung> <Anzeige-Name> Dies ist der Anzeigename meiner J2EE-Komponente </display-name> <servlet-name> loginservlet </servlet-name> <servlet-class>cn.hncu.login.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RegServlet</servlet-name> <url-pattern>/RegServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-mapping> <servlet-name>ActiveServlet</servlet-name> <url-pattern>/ActiveServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
Brauche Jar -Paket
C3P0-0.9.1.2.jar
commons-dbutils-1.4.jar
Java-Mail-1.4.4.jar
MySQL-Connector-Java-5.1.34-binin.jar
MyConutil.jar
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.