java web激活邮箱并找回密码_java

几乎每个网站或论坛之类的用户注册后都需要通过发送邮件到邮箱激活用户,如何激活邮箱呐?
设计激活步骤:
1、发送激活操作链接地址至用户邮箱。
2、用户至邮箱查收邮件。
3、用户点击链接,跳转至成功页面(修改激活状态),激活成功。

实现:

/**
  * 发送邮件
  *
  * @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("请点击下方链接激活您的邮箱,完成激活邮箱的操作!");
   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);即为发送邮件工具类,如有不明白可参考我之前的文章(spring mail发送邮件)

忘记密码(重置密码)

背景:同样是各大网站都会拥有的一个功能,通过发送验证码到用户注册的邮箱重置密码

设计:1)输入用户名/手机号码/邮箱,验证码。
             2)用户选择手机验证或邮箱验证,发送验证码到手机或邮箱。如果用户邮箱未激活,则不允许邮箱验证。
             3)用户输入验证码成功,进入密码重新设置页面。
             4)重置密码

流程:

实现:

/**
 * 发送邮件
 *
 * @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("要使用新的密码, 请将已下字符输入验证框中,完成重置密码的操作!");
  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();
} 

至此,激活邮箱和忘记密码功能已初步完成!希望对大家的学习有所帮助,大家可以动手实现激活邮箱并找回密码。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javaweb
, 找回密码
激活邮箱
java web邮箱找回密码、java实现邮箱找回密码、java邮箱找回密码、java通过邮箱找回密码、java web密码找回功能,以便于您获取更多的相关知识。

时间: 2024-10-03 04:33:12

java web激活邮箱并找回密码_java的相关文章

Java Web开发环境配置详解_java

这是进行Java Web开发必备的一个过程,仅供新手参考,高手可以忽略! 先看看要安装的东西: jdk下载地址:http://www.jb51.net/softs/214120.html eclipse下载:http://www.jb51.net/softs/143046.html MySQL下载:http://www.jb51.net/softs/40589.html tomcat下载:http://www.jb51.net/softs/417569.html 各位也可以去官网上下载,版本不一

Java Web十条开发实用小知识_java

 1.${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此,发现在项目的一个文件内有这样一段话 的配置 复制代码 代码如下: <c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的

java正则表达式验证邮箱、电话号码示例_java

下面的代码使用正则表达式验证输入格式包括了验证邮箱和验证手机号码 复制代码 代码如下: package com.firewolf.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; /**  * 使用正则表达式验证输入格式  * @author liuxing  *  */ public class RegexValidateUtil {  public static void main(String[]

Java Web Filter 过滤器学习教程(推荐)_java

一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过F

java web项目里ehcache.xml介绍_java

复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"    monitoring=&qu

java web项目实现文件下载实例代码_java

复制代码 代码如下: File file = new File(path);// path是根据日志路径和文件名拼接出来的    String filename = file.getName();// 获取日志文件名称    InputStream fis = new BufferedInputStream(new FileInputStream(path));    byte[] buffer = new byte[fis.available()];    fis.read(buffer); 

java web-Java web项目邮箱获取的验证码无效怎么解决

问题描述 Java web项目邮箱获取的验证码无效怎么解决 这是一个bug,点击邮箱登录之后点击忘记密码会出现获取验证码,获取到验证码之后输入验证码显示不对是无效的,log也没有报错,求大神帮看看是什么问题,,能否给点意见或者帮助解决一下,十分感谢 解决方案 你的验证码在后台生成之后应该是没有传到前台 解决方案二: 传到了呀,log里都显示发送验证码成功了,这个验证码接口供多方调用别的都可以只有摩托罗拉的不好使,

ThinkPHP 3.2 用户注册邮箱验证帐号找回密码

一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实现一个密码找回的功能,一般步骤是: 1.表单输入注册时的邮箱: 2.验证用户邮箱是否正确,如果用户邮箱不存在网站的用户表中,则提示用户邮箱未注册: 3.发送邮件,如果用户邮箱确实存在用户表中,则组合用于验证用户信息的字符串,并构造URL发送到用户邮箱中; 4.用户登录邮箱收取邮件,点击URL链接到网

PHP会员找回密码功能实现实例介绍

设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的"找回密码"超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3.系统通过该邮箱,从数据库中查找到该用户信息,并更新该用户的密码为一个临时密码(比如:12345678). 4.系统借助Jmail功能把该用户的信息发送到该用户的邮箱中(内容包括:用户名.临时密码.提醒用户及时修改临时密码的提示语). 5.用户用临时密码即可登录. HTML 我们在找回密码的