欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java web激活郵箱并找回密碼

 更新時(shí)間:2015年11月24日 15:31:05   作者:Garry1115  
這篇文章主要介紹了java web激活郵箱并找回密碼,在項(xiàng)目中要實(shí)現(xiàn)用戶注冊(cè)的郵箱激活以及忘記密碼重置密碼功能,感興趣的小伙伴們

幾乎每個(gè)網(wǎng)站或論壇之類的用戶注冊(cè)后都需要通過(guò)發(fā)送郵件到郵箱激活用戶,如何激活郵箱吶?
設(shè)計(jì)激活步驟:
1、發(fā)送激活操作鏈接地址至用戶郵箱。
2、用戶至郵箱查收郵件。
3、用戶點(diǎn)擊鏈接,跳轉(zhuǎn)至成功頁(yè)面(修改激活狀態(tài)),激活成功。

實(shí)現(xiàn):

/** 
  * 發(fā)送郵件 
  * 
  * @param request 
  * @return 
  */ 
 @RequestMapping(value = "/sendEmail.jhtml") 
 @ResponseBody 
 public String sendEmail(HttpServletRequest request) { 
  DynamicParams params = new DynamicParams(request); 
  StringBuilder builder = new StringBuilder(); 
  StringBuffer url = new StringBuffer(); 
  String type = params.getString("type"); 
  Long uid = params.getLong("id"); 
  User user = userManager.find(uid); 
  String subject = ""; 
   
   // 判斷是否已激活 
   if ("1".equals(String.valueOf(user.getEmailStatus()))) { 
    return errMsg(); 
   } 
   String contextPath = request.getContextPath(); 
   String rUrl = String.valueOf(request.getRequestURL()); 
   url.append(rUrl.substring(0, rUrl.indexOf(contextPath))); 
   url.append(contextPath + "/account"); 
   // 郵箱激活 
   // url.append("/activateEmail.jhtml?email=" + user.getEmail() + 
   // "&id=" + uid + "&mode=activate"); 
   url.append("/activateEmail.jhtml?id=" + uid + "&mode=activate"); 
   // 正文 
   builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" </head><body>"); 
   builder.append("請(qǐng)點(diǎn)擊下方鏈接激活您的郵箱,完成激活郵箱的操作!"); 
   builder.append("<br/><br/>"); 
   builder.append("<a href=\"" + url + "\">"); 
   builder.append(url); 
   builder.append("</a>"); 
   builder.append("</body></html>"); 
   subject = "郵箱地址激活 - xxxx"; 
   
  MailSender.mailSimple(user.getEmail(), subject, builder.toString(), 
    false, null); 
  return successMsg(); 
 } 
 
 /** 
  * 激活郵箱 
  * 
  * @param request 
  * @return 
  */ 
 @RequestMapping(value = "/activateEmail.jhtml") 
 public String activateEmail(HttpServletRequest request, Model model) { 
  DynamicParams params = new DynamicParams(request); 
  // 激活之前查詢 
  User user = userManager.find(params.getLong("id")); 
 
  if ("1".equals(String.valueOf(user.getEmailStatus()))) { 
   // 已激活 
   model.addAttribute("flag", false); 
  } else { 
   // 未激活 
   userManager.activateEmail(params); 
   // 激活之后查詢 
   user = userManager.find(params.getLong("id")); 
   request.getSession().setAttribute("sessionUser", user); 
   model.addAttribute("mode", params.getString("mode")); 
   model.addAttribute("flag", true); 
  } 
  return "site/modules/account/activateSuccess"; 
 } 

MailSender.mailSimple(user.getEmail(), subject, builder.toString(),false, null);即為發(fā)送郵件工具類,如有不明白可參考我之前的文章(spring mail發(fā)送郵件)

忘記密碼(重置密碼)

背景:同樣是各大網(wǎng)站都會(huì)擁有的一個(gè)功能,通過(guò)發(fā)送驗(yàn)證碼到用戶注冊(cè)的郵箱重置密碼

設(shè)計(jì):1)輸入用戶名/手機(jī)號(hào)碼/郵箱,驗(yàn)證碼。
             2)用戶選擇手機(jī)驗(yàn)證或郵箱驗(yàn)證,發(fā)送驗(yàn)證碼到手機(jī)或郵箱。如果用戶郵箱未激活,則不允許郵箱驗(yàn)證。
             3)用戶輸入驗(yàn)證碼成功,進(jìn)入密碼重新設(shè)置頁(yè)面。
             4)重置密碼

流程:

實(shí)現(xiàn):

/** 
 * 發(fā)送郵件 
 * 
 * @param request 
 * @return 
 */ 
@RequestMapping(value = "/sendEmail.jhtml") 
@ResponseBody 
public String sendEmail(HttpServletRequest request) { 
 DynamicParams params = new DynamicParams(request); 
 StringBuilder builder = new StringBuilder(); 
 StringBuffer url = new StringBuffer(); 
 String type = params.getString("type"); 
 Long uid = params.getLong("id"); 
 User user = userManager.find(uid); 
 String subject = ""; 
  
  // type = forget 密碼重置 
  String verifyCode = VerifyCodeUtils.generateVerifyCode(4); 
  request.getSession().setAttribute("resetCertCode", verifyCode); 
  url.append("<font color='red'>" + verifyCode + "</font>"); 
  // 正文 
  builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>"); 
  builder.append("要使用新的密碼, 請(qǐng)將已下字符輸入驗(yàn)證框中,完成重置密碼的操作!"); 
  builder.append("<br/><br/>"); 
  builder.append("<div>" + url + "</div>"); 
  builder.append("</body></html>"); 
  subject = "密碼重置 - xxxx"; 
  
 MailSender.mailSimple(user.getEmail(), subject, builder.toString(), 
   false, null); 
 return successMsg(); 
} 

至此,激活郵箱和忘記密碼功能已初步完成!希望對(duì)大家的學(xué)習(xí)有所幫助,大家可以動(dòng)手實(shí)現(xiàn)激活郵箱并找回密碼。

相關(guān)文章

  • Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程

    Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程

    這篇文章主要介紹了Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程,選擇排序的時(shí)間復(fù)雜度為О(n&sup2;),需要的朋友可以參考下
    2016-05-05
  • Java經(jīng)典算法之快速排序詳解

    Java經(jīng)典算法之快速排序詳解

    這篇文章主要給大家介紹了關(guān)于Java經(jīng)典算法之快速排序的相關(guān)資料,需快速排序是一種分治法的排序算法,其基本思想是通過(guò)一趟排序?qū)⒋判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有元素均比另一部分的元素小,然后分別對(duì)這兩部分繼續(xù)進(jìn)行排序,需要的朋友可以參考下
    2024-07-07
  • RestTemplate發(fā)送HTTP?POST請(qǐng)求使用方法詳解

    RestTemplate發(fā)送HTTP?POST請(qǐng)求使用方法詳解

    這篇文章主要為大家介紹了RestTemplate發(fā)送HTTP?POST請(qǐng)求的使用方法詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • 簡(jiǎn)單學(xué)習(xí)Java API 設(shè)計(jì)實(shí)踐

    簡(jiǎn)單學(xué)習(xí)Java API 設(shè)計(jì)實(shí)踐

    API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件的以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。需要的可以了解一下
    2019-06-06
  • Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法

    Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法

    這篇文章主要介紹了Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法,介紹了定義Struts2的自定義標(biāo)簽的三個(gè)步驟以及詳細(xì)解釋,需要的朋友可以參考下。
    2017-09-09
  • Java正則表達(dá)式匹配不到結(jié)果的解決

    Java正則表達(dá)式匹配不到結(jié)果的解決

    這篇文章主要介紹了Java正則表達(dá)式匹配不到結(jié)果的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 一文詳細(xì)springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟

    一文詳細(xì)springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟

    Spring Boot可以很方便地與MySQL數(shù)據(jù)庫(kù)進(jìn)行整合,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的整合步驟,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • GSON實(shí)現(xiàn)Java對(duì)象與JSON格式對(duì)象相互轉(zhuǎn)換的完全教程

    GSON實(shí)現(xiàn)Java對(duì)象與JSON格式對(duì)象相互轉(zhuǎn)換的完全教程

    GSON是Google編寫(xiě)并在在GitHub上開(kāi)源的Java序列化與反序列化JSON的類庫(kù),今天我們就來(lái)總結(jié)一下使用GSON實(shí)現(xiàn)Java對(duì)象與JSON格式對(duì)象相互轉(zhuǎn)換的完全教程
    2016-06-06
  • Java使用注解實(shí)現(xiàn)BigDecimal的四舍五入

    Java使用注解實(shí)現(xiàn)BigDecimal的四舍五入

    BigDecimal是Java中的一個(gè)類,位于java.math包中,它提供了任意精度的有符號(hào)十進(jìn)制數(shù)字的表示,以及對(duì)這些數(shù)字進(jìn)行算術(shù)運(yùn)算的方法,本文介紹了Java使用注解實(shí)現(xiàn)BigDecimal的四舍五入的相關(guān)知識(shí),需要的朋友可以參考下
    2024-09-09
  • Spring需要三個(gè)級(jí)別緩存解決循環(huán)依賴原理解析

    Spring需要三個(gè)級(jí)別緩存解決循環(huán)依賴原理解析

    這篇文章主要為大家介紹了Spring需要三個(gè)級(jí)別緩存解決循環(huán)依賴原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論