亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java web實(shí)現(xiàn)郵箱激活與忘記密碼

 更新時(shí)間:2019年02月10日 11:29:34   作者:Garry1115  
這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)郵箱激活與忘記密碼、重置密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

由于在項(xiàng)目中要實(shí)現(xiàn)用戶注冊(cè)的郵箱激活以及忘記密碼重置密碼功能,所以通過(guò)查閱資料做了一個(gè)簡(jiǎn)單的設(shè)計(jì)和實(shí)現(xiàn)。

郵箱激活

背景:幾乎每個(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();
 }

至此,激活郵箱和忘記密碼功能已初步完成!如有不同看法的朋友,請(qǐng)留下您寶貴的意見(jiàn)或建議。

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

相關(guān)文章

  • java網(wǎng)絡(luò)通信技術(shù)之簡(jiǎn)單聊天小程序

    java網(wǎng)絡(luò)通信技術(shù)之簡(jiǎn)單聊天小程序

    這篇文章主要為大家詳細(xì)介紹了java網(wǎng)絡(luò)通信技術(shù)之簡(jiǎn)單聊天小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 遞歸出現(xiàn)棧溢出stackoverflow的問(wèn)題及解決

    遞歸出現(xiàn)棧溢出stackoverflow的問(wèn)題及解決

    這篇文章主要介紹了關(guān)于遞歸出現(xiàn)棧溢出stackoverflow的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java開(kāi)發(fā)SpringBoot集成接口文檔實(shí)現(xiàn)示例

    Java開(kāi)發(fā)SpringBoot集成接口文檔實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Java開(kāi)發(fā)SpringBoot如何集成接口文檔的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • 教您如何3分鐘快速搞定EasyExcel導(dǎo)入與導(dǎo)出功能

    教您如何3分鐘快速搞定EasyExcel導(dǎo)入與導(dǎo)出功能

    對(duì)于EasyExcel庫(kù),我們可以使用它來(lái)實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出,下面這篇文章主要給大家介紹了關(guān)于如何3分鐘快速搞定EasyExcel導(dǎo)入與導(dǎo)出功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 淺談升級(jí)Spring Cloud到Finchley后的一點(diǎn)坑

    淺談升級(jí)Spring Cloud到Finchley后的一點(diǎn)坑

    這篇文章主要介紹了淺談升級(jí)Spring Cloud到Finchley后的一點(diǎn)坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • springboot整合微信支付sdk過(guò)程解析

    springboot整合微信支付sdk過(guò)程解析

    這篇文章主要介紹了springboot整合微信支付sdk過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法

    SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法

    這篇文章主要介紹了SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 淺談Spring嵌套事務(wù)是怎么回滾的

    淺談Spring嵌套事務(wù)是怎么回滾的

    本文主要介紹了Spring嵌套事務(wù)是怎么回滾的,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Flutter實(shí)現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼

    Flutter實(shí)現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼

    這篇文章主要介紹了Flutter實(shí)現(xiàn)文本組件、圖標(biāo)及按鈕組件的代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Java編程環(huán)境搭建和變量基本使用圖文教程

    Java編程環(huán)境搭建和變量基本使用圖文教程

    這篇文章主要介紹了Java編程環(huán)境搭建和變量基本使用,結(jié)合圖文形式詳細(xì)分析了java編程語(yǔ)言環(huán)境搭建、配置、變量、注釋的基本使用方法,需要的朋友可以參考下
    2020-02-02

最新評(píng)論