国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JavaEE賬號注冊模擬網站郵箱激活

2019-11-26 13:49:55
字體:
來源:轉載
供稿:網友

本項目是javaWeb和email結合的項目,模擬網站必須要激活郵箱賬號才可以使用,

創建數據庫

create table user(id varchar(32) primary key,name varchar(30),pwd varchar(20),email varchar(20),active char(1),acode varchar(32))

User.java值對象

package cn.hncu.reg.domain;import javax.persistence.Table;public class User {  private String id;  private String name;  private String pwd;  private String acode;  private String active;  private String email;  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 active) {    this.active = active;  }  public String getEmail() {    return email;  }  public void setEmail(String email) {    this.email = email;  }  @Override  public int hashCode() {    final int prime = 31;    int result = 1;    result = prime * result + ((id == null) ? 0 : id.hashCode());    return result;  }  @Override  public boolean equals(Object obj) {    if (this == obj)      return true;    if (obj == null)      return false;    if (getClass() != obj.getClass())      return false;    User other = (User) obj;    if (id == null) {      if (other.id != null)        return false;    } else if (!id.equals(other.id))      return false;    return true;  }}

C3p0Pool.java

package cn.hncu.pubs;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0Pool {  private static DataSource ds=new ComboPooledDataSource();;  private static ThreadLocal<Connection> tl=new ThreadLocal<Connection>();  public static Connection getCon() throws SQLException { Connection con = (Connection)tl.get();  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>  <!-- 默認配置,如果沒有指定則使用這個配置 -->  <default-config>    <property name="driverClass">com.mysql.jdbc.Driver</property>    <property name="jdbcUrl">      <![CDATA[jdbc:mysql://127.0.0.1:3306/sstud?useUnicode=true&characterEncoding=UTF-8]]>    </property>    <property name="user">root</property>    <property name="password">1234</property>    <!-- 初始化池大小 -->    <property name="initialPoolSize">2</property>    <!-- 最大空閑時間 -->    <property name="maxIdleTime">30</property>    <!-- 最多有多少個連接 -->    <property name="maxPoolSize">10</property>    <!-- 最少幾個連接 -->    <property name="minPoolSize">2</property>    <!-- 每次最多可以執行多少個批處理語句 -->    <property name="maxStatements">50</property>  </default-config>   <!-- 命名的配置 -->  <named-config name="hncu">    <property name="driverClass">com.mysql.jdbc.Driver</property>    <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/sstud</property>    <property name="user">root</property>    <property name="password">1234</property>    <property name="acquireIncrement">5</property><!-- 如果池中數據連接不夠時一次增長多少個 -->    <property name="initialPoolSize">100</property>    <property name="minPoolSize">50</property>    <property name="maxPoolSize">1000</property>    <property name="maxStatements">0</property>    <property name="maxStatementsPerConnection">5</property> <!-- he's important, but there's only one of him -->  </named-config></c3p0-config>

 RegDAO.java

package cn.hncu.reg.dao;import cn.hncu.reg.domain.User;public interface RegDAO {  public User reg(User user);  public User active(String acode);}

RegDaoJdbc.java

package cn.hncu.reg.dao;import java.sql.SQLException;import java.util.UUID;import javax.sql.DataSource;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;import cn.hncu.pool.C3p0Pool;import cn.hncu.reg.domain.User;public class RegDaoJdbc implements RegDAO{  @Override  public User reg(User user) {    DataSource ds=C3p0Pool.getPool();    QueryRunner qr=new QueryRunner(ds);    String sql="insert into user(id,name,pwd,email,active,acode) values(?,?,?,?,?,?)";    try {      String id=UUID.randomUUID().toString().replaceAll("-", "");      String acode=UUID.randomUUID().toString().replaceAll("-", "");      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("注冊失敗");      return null;    }    return user;  }  @Override  public User active(String acode) {    DataSource ds=C3p0Pool.getPool();    QueryRunner qr=new QueryRunner(ds);    String sql="select * from user where acode=?";    User user=null;    try {      user=qr.query(sql, new BeanHandler(User.class),acode);      if(user!=null){        sql="update user set active='1' ,acode=''where acode=?";        qr.update(sql,acode);        return user;      }    } catch (SQLException e) {      user=null;      e.printStackTrace();    }    return null;  }  }

IRegService.java

package cn.hncu.reg.service;import cn.hncu.reg.domain.User;public interface IRegService {  public User reg(User user);  public User active(String acode);}

RegService.java

package cn.hncu.reg.service;import cn.hncu.reg.dao.RegDAO;import cn.hncu.reg.dao.RegDaoJdbc;import cn.hncu.reg.domain.User;public class RegService implements IRegService {  private RegDAO dao=new RegDaoJdbc();  @Override  public User reg(User user) {    return dao.reg(user);  }  @Override  public User active(String acode) {    return dao.active(acode);  }}

RegServlet.java

package cn.hncu.reg.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.hncu.reg.domain.User;import cn.hncu.reg.sendMail.SendEMailThread;import cn.hncu.reg.service.IRegService;import cn.hncu.reg.service.RegService;public class RegServlet extends HttpServlet {  private IRegService service=new RegService();  public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, 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(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");    out.println(" <BODY>");    out.println("請按要求填寫");    out.println(" </BODY>");    out.println("</HTML>");    out.flush();    out.close();  }  public void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    PrintWriter out = response.getWriter();    String name=request.getParameter("name");    String pwd=request.getParameter("pwd");    String email=request.getParameter("email");    User user=new User();    user.setName(name);    user.setPwd(pwd);    user.setEmail(email);    user=service.reg(user);    if (user!=null) {      out.print("注冊成功,請到郵箱驗證");      new SendEMailThread(user.getAcode()).start();    }else{      out.print("注冊失敗");    }  }}

SendEMailThread.java

package cn.hncu.reg.sendMail;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message.RecipientType;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.apache.log4j.Logger;public class SendEMailThread extends Thread {  private String acode;  private Logger log=Logger.getLogger(SendEMailThread.class);  public SendEMailThread(String acode) {    this.acode = acode;  }  @Override  public void run() {    Properties p=new Properties();    p.setProperty("mail.host", "smtp.sina.com");    p.setProperty("mail.smtp.auth", "true");    Session session=Session.getDefaultInstance(p, new Authenticator() {      @Override      protected PasswordAuthentication getPasswordAuthentication() {        PasswordAuthentication pa=new PasswordAuthentication("hncujava", "1234567");        return pa;      }    });    session.setDebug(true);    MimeMessage msg=new MimeMessage(session);    try {      msg.setFrom( new InternetAddress("hncujava@sina.com") );      msg.setRecipient(RecipientType.TO, new InternetAddress("747205398@qq.com"));      msg.setSubject("激活hncu賬號");      StringBuilder sb=new StringBuilder();      sb.append("請激活郵箱:<a );      sb.append("?acode="+acode+" '>點擊激活</a>");      sb.append("<br/>如果激活未成功,請復制下面地址到瀏覽器地址欄進行手動激活:");      sb.append("http://www.hncu.cn/mailWeb/ActiveServlet?acode="+acode);      msg.setContent(sb.toString(),"text/html;charset=utf-8");      Transport.send(msg);      log.info("郵件發送成功");    } catch (AddressException e) {      log.error("郵箱地址錯誤,郵件發送失敗");      e.printStackTrace();    } catch (MessagingException e) {      e.printStackTrace();      log.error("郵箱信息格式錯誤,郵件發送失敗");    }  }}

 ActiveServlet.java

package cn.hncu.reg.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.hncu.reg.domain.User;import cn.hncu.reg.service.IRegService;import cn.hncu.reg.service.RegService;public class ActiveServlet extends HttpServlet {  private IRegService service=new RegService();    public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    PrintWriter out = response.getWriter();    String acode=request.getParameter("acode");    User user=service.active(acode);    request.setAttribute("user", user);    System.out.println("user:"+user);    request.getRequestDispatcher("/jsps/result.jsp").forward(request, response);  }}

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>郵箱登錄</title>  <script type="text/javascript">    function 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 }">  登錄失敗  <c:remove var="error" scope="session"/> </c:if> <c:if test="${empty sessionScope.user }" var="boo">    <h3>用戶注冊</h3>    <form action="" method="post" >      姓名:<input type="text" name="name" value="wang"/><br/>      密碼:<input type="text" name="pwd" value="1234"/><br/>      <input type="button" value="登錄" onclick="login();"/>      <input type="button" value="注冊" onclick="reg();"/><br/>    </form>  </c:if>  <c:if test="${!boo }">    歡迎回來,${ sessionScope.user.name}  </c:if> </body></html>

reg.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>郵箱注冊系統</title>  <script type="text/javascript">    function 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="${empty sessionScope.user }" var=" boo">    <h3>用戶注冊</h3>    <form action="" method="post" >      姓名:<input type="text" name="name" value="wang"/><br/>      密碼:<input type="text" name="pwd" value="1234"/><br/>      郵箱:<input type="text" name="email" value="747205398@qq.com"/> <br/>      <input type="button" value="注冊" onclick="reg();"/><br/>    </form>  </c:if>  </body></html>

result.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <script type="text/javascript">    var tm;    var time=5;    function start(){      div1.innerHTML="將在"+time+"秒跳轉";      time--;      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="${!empty requestScope.user }" var=" boo">    恭喜注冊成功!請登錄    <a href='<c:url value="/index.jsp" />'>登錄</a><br/><br/>    <div id ="div1">    </div>  </c:if>  <c:if test="${boo}">    注冊失敗,請重新激活  </c:if>  </body></html>

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0"   xmlns="http://java.sun.com/xml/ns/javaee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <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>  <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>RegServlet</servlet-name>  <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-class>cn.hncu.reg.servlet.ActiveServlet</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>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-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>

需要的jar包
c3p0-0.9.1.2.jar
commons-dbutils-1.4.jar
java-mail-1.4.4.jar
mysql-connector-java-5.1.34-bin.jar
myConUtil.jar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴林右旗| 新绛县| 绥棱县| 自贡市| 五河县| 全州县| 屯门区| 阳谷县| 南澳县| 河北省| 鄂尔多斯市| 涞源县| 佛坪县| 通化县| 诸暨市| 古浪县| 施秉县| 韩城市| 东安县| 峨边| 南雄市| 固原市| 莱阳市| 宜君县| 肃南| 铜陵市| 宁化县| 夹江县| 温宿县| 江北区| 聂荣县| 花垣县| 梨树县| 南城县| 平潭县| 松桃| 清苑县| 教育| 隆子县| 滦南县| 怀仁县|