最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javamail實現(xiàn)注冊激活郵件

 更新時間:2017年04月24日 08:37:20   作者:成兮  
這篇文章主要為大家詳細介紹了javamail實現(xiàn)注冊激活郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了javamail注冊激活郵件的具體代碼,供大家參考,具體內(nèi)容如下

需要的jar包

1.MySQL驅(qū)動包
2.mail.jar包

SMTP和POP3協(xié)議概述

SMTP協(xié)議稱為簡單郵件傳輸協(xié)議,是一組用于從原地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于TCP/IP的協(xié)議簇,SMTP是負責(zé)郵件服務(wù)器之間的寄信的通信協(xié)定 POP3協(xié)議稱為郵局協(xié)議版本3,也是TCP/IP協(xié)議簇的一員,基于POP3協(xié)議的服務(wù)器是用來接收信件的。每個Email地址一般只有一個如果想要同時收取多個郵箱的信件,就需要挨個設(shè)置每個郵箱的POP3服務(wù)器地址。

核心代碼實現(xiàn)

#創(chuàng)建數(shù)據(jù)庫表
create database javamail;
use javamail;
create table user(
 id int primary key auto_increment,
 username varchar(30) not null,
 password varchar(30) not null,
 nickname varchar(30) not null,
 email varchar(30) not null,
 state int default 0, #標識是否已經(jīng)激活 0未激活1已激活
 code varchar(64) not null
);

//創(chuàng)建數(shù)據(jù)庫對應(yīng)的javabean
public class UserBean{
 private Integer id;
 private String username;
 private String password;
 private String nickname;
 private String email;
 private Integer state;
 private String code;
 //省略setter and getter
}

//數(shù)據(jù)庫操作類UserDao
public class UserDao{
 private Connection conn ;
 //獲取數(shù)據(jù)庫連接
 public void getConn(){
  Class.forName("com.mysql.jdbc.Driver");
  String url = "mysql:jdbc://localhost:3306/javamail";
  String rootname = "root";
  String rootpass = "chengxi";
  conn = DriverManager.getConnection(url,rootname,rootpass);
 }

 //注冊
 public void regist(UserBean user){

  String sql = "insert into user(username,password,nickname,email,code) values(?,?,?,?,?)";
  PreparedStatement pstmt = conn.preparedCall(sql);
  pstmt.setString(1,user.getUsername());
  pstmt.setString(2,user.getPassword());
  pstmt.setString(3,user.getNickname());
  pstmt.setStirng(4,user.getEmail());
  pstmt.setString(5,user.getCode());
  pstmt.executeUpdate(); 
 }

 //激活
 public void activeByCode(String code){

  String sql = "update user set state=1,code=null where code=?";
  PreparedStatement pstmt = conn.preparedCall(sql);
  pstmt.setString(1,code);
  pstmt.executeUpdate(); 
 }

 //關(guān)閉數(shù)據(jù)庫連接
 public void closeConn(){
  if(conn != null){
   conn.close();
  }
 }
}

//一個工具類,用于獲取隨機code注冊激活碼
public class UUIDUtils{
 public static String getUUID(){
  return UUID.randomUUID().toString().replace("-","")+UUID.randomUUID().toString().replace("-","");
 }
}


//index.jsp前端頁面實現(xiàn)
<form action="<%=request.getContextPath()%>/regist.do" method="post">
 <tr>
  <td><label for="username">賬號</label></td>
  <td><input type="text" name="username" /></td>
 </tr>
 <tr>
  <td><label for="password">密碼</label></td>
  <td><input type="text" name="password" /></td>
 </tr>
 <tr>
  <td><label for="nickname">昵稱</label></td>
  <td><input type="text" name="nickname" /></td>
 </tr>
 <tr>
  <td><label for="email">郵箱</label></td>
  <td><input type="text" name="email" /></td>
 </tr>
 <tr>
  <td><input type="submit" value="注冊" /></td>
  <td><input type="reset" name="重寫" /></td>
 </tr>
</form>

//發(fā)送郵件的Utils工具類
public class SendMailUitls{

 public static void sendMail(String to,String code){
  //session是mail包下的,因為是本地測試,所以第一個參數(shù)直接創(chuàng)建默認的即可
  Session session = Session.getInstance(new Properties(),new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication(){
     return new PasswordAuthentication("server@store.com", "111");
    }
   });

  //創(chuàng)建郵件對象
  Message message = new MimeMessage(session);
  //設(shè)置發(fā)件人,這里我創(chuàng)建了一個server@store.com用于發(fā)送郵件
  message.setFrom(new InternetAddress("server@store.com"));
  message.setRecipient(RecipientType.TO, new InternetAddress(to));
  message.setSubject("來自個博網(wǎng)的注冊激活郵件");
  message.setContent("<a href='http://localhost:8080/RegistMailWeb/active.do'>點我激活</a>","text/html;charset=utf-8");

  //發(fā)送郵件
  Transport.send(message);
 } 
}


//regist.doServlet實現(xiàn)
public class RegistServlet extends HttpServlet{
 public void init(){
  super.init();
 }

 public void service(HttpServletRequest request,HttpServletResponse response){
  //獲取數(shù)據(jù)
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  String nickname = request.getParameter("nickname");
  String email = request.getParameter("email");

  //封裝數(shù)據(jù)
  UserBean user = new UserBean();
  user.setUsername(username);
  user.setPassword(password);
  user.setNickname(nickname);
  user.setEmail(email);
  user.setCode(UUIDUtils.getUUID());

  //注冊
  UserDao dao = new UserDao();
  dao.getConn();
  dao.regist(user);
  dao.closeConn();

  //發(fā)送郵件
  SendMailUtils.sendMail(email,user.getCode());
 }

 public void destroy(){
  super.desroy();
 }
} 

//創(chuàng)建active.do Servlet用于激活郵箱
public class ActiveServlet HttpServlet{
 public void init(){
  super.init();
 }

 public void service(HttpServletRequest request,HttpServletResponse response){

  //獲取數(shù)據(jù)
  String code = request.getParameter("code");

  //數(shù)據(jù)庫判斷對應(yīng)code是否存在,(這里就不進行判斷了,直接進行比對)state=1&code=null代表激活
  UserDao dao = new UserDao();
  dao.activeByCode(code);

  //重定向success.jsp
  request.getRequestDispatcher("/WEB-INF/success.jsp").forward(request,response);
 }

 public void destroy(){
  super.destroy();
 }
}

編寫成功頁面

<html>
 <head>
  <title>成功激活</title>
 </head>
 <body>
  <script>
   window.onload = function(){
    alert("已成功激活");
   };
  </script>
 </body>
</html>

web.xml配置兩個Servlet

<servlet>
 <servlet-name>RegistServlet</servlet-name>
 <servlet-class>com.servlet.RegistServlet</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>RegistServlet</servlet-name>
 <url-pattern>/regist.do</url-pattern>
</servlet-mapping>

<servlet>
 <servlet-name>ActiveServlet</servlet-name>
 <servlet-class>com.servlet.ActiveServlet</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>ActiveServlet</servlet-name>
<url-pattern>/active.do</url-pattern>

效果

打開tomcat服務(wù)器和foxmail郵件服務(wù)器,然后進入該web首頁,點擊注冊,可以在foxmail中看到對應(yīng)的email@store.com郵箱中有一封注冊郵箱,點擊該郵箱中的鏈接,就進入了激活頁面,然后該注冊的賬號就激活注冊成功了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java如何根據(jù)用戶請求獲取ip地址并解析省市信息

    java如何根據(jù)用戶請求獲取ip地址并解析省市信息

    根據(jù)當(dāng)前用戶本地IP地址,查詢IP地址庫,獲取IP所在的省市信息,目前有多種方式實現(xiàn)該功能,這篇文章主要給大家介紹了關(guān)于java如何根據(jù)用戶請求獲取ip地址并解析省市信息的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • maven pom中內(nèi)置變量及引用的實現(xiàn)

    maven pom中內(nèi)置變量及引用的實現(xiàn)

    maven其實有很多內(nèi)置變量供開發(fā)著在開發(fā)中使用,本文主要介紹了maven pom中內(nèi)置變量及引用的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 詳解基于Mybatis-plus多租戶實現(xiàn)方案

    詳解基于Mybatis-plus多租戶實現(xiàn)方案

    這篇文章主要介紹了詳解基于Mybatis-plus多租戶實現(xiàn)方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java通過Fork/Join優(yōu)化并行計算

    Java通過Fork/Join優(yōu)化并行計算

    這篇文章主要為大家詳細介紹了Java通過Fork、Join來優(yōu)化并行計算,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • IDEA導(dǎo)入eclipse項目并且部署到tomcat的步驟詳解

    IDEA導(dǎo)入eclipse項目并且部署到tomcat的步驟詳解

    這篇文章主要給大家介紹了關(guān)于IDEA導(dǎo)入eclipse項目并且部署到tomcat的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Springboot?+redis+谷歌開源Kaptcha實現(xiàn)圖片驗證碼功能

    Springboot?+redis+谷歌開源Kaptcha實現(xiàn)圖片驗證碼功能

    這篇文章主要介紹了Springboot?+redis+?歌開源Kaptcha實現(xiàn)圖片驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • java Matcher匹配頭尾截取替換字符串的案例

    java Matcher匹配頭尾截取替換字符串的案例

    這篇文章主要介紹了java Matcher匹配頭尾截取替換字符串的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • SpringBoot中4種接口冪等性的實現(xiàn)策略

    SpringBoot中4種接口冪等性的實現(xiàn)策略

    冪等性是指對同一操作執(zhí)行多次與執(zhí)行一次的效果相同,不會因為重復(fù)執(zhí)行而產(chǎn)生副作用,本文整理了4個SpringBoot實現(xiàn)接口冪等性的方法,大家可以根據(jù)需要進行選擇
    2025-04-04
  • Java?MyBatis之Mapper代理詳解

    Java?MyBatis之Mapper代理詳解

    這篇文章主要介紹了Java?web中MyBatis的mapper代理,文中有詳細的代碼示例,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2023-04-04
  • 聊聊為什么要使用BufferedReader讀取File

    聊聊為什么要使用BufferedReader讀取File

    這篇文章主要介紹了為什么要使用BufferedReader讀取File,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論

江津市| 元阳县| 金阳县| 新源县| 眉山市| 千阳县| 谢通门县| 准格尔旗| 乌恰县| 寻甸| 阳原县| 唐海县| 临夏市| 黔西县| 云安县| 凤阳县| 卓资县| 安福县| 武邑县| 阳东县| 买车| 肥西县| 聂拉木县| 台南县| 平湖市| 新闻| 永川市| 安丘市| 格尔木市| 宣化县| 玉龙| 怀来县| 容城县| 河津市| 陵水| 外汇| 宜丰县| 五寨县| 白朗县| 扶风县| 嘉定区|