java实现邮箱激活注册账号思路

需要掌握的知识点

  1. 会创建一个简单的java web项目——jsp+servlet
  2. 需要会使用JAVA Mail或者使用common-email发送邮件
  3. 会使用java进行数据库的操作
  4. 了解前后端的数据交互

前期准备

  1. qq邮箱开通POP3/SMTP服务
    第一步:
    java实现邮箱激活注册账号思路_第1张图片

第二步:
java实现邮箱激活注册账号思路_第2张图片
2. 下载所需的jar包
jar包下载地址
链接:https://pan.baidu.com/s/1e-WFVjeZuAPLe1Eo7LA2cw
提取码:njds

思路

  1. 数据库中存储用户是否激活的状态和激活时系统随机生成的校验码
    状态:当状态值为1时,处于激活状态,当状态为0时,处于未激活状态
    校验码:由系统随机生成的一串字符串,在激活时检查是否是通过发送给用户的邮件激活的
  2. 用java实现发送邮件,邮件包含一个超链接

代码思路

这是注册页面,输入信息点击注册,发起一个post请求,请求到http:localhost:8080/register
java实现邮箱激活注册账号思路_第3张图片

接受注册请求的servlet

@WebServlet("/register")
public class Register extends HttpServlet {
     
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
       //获取从页面发送过来的数据
       //系统生成一串随机字符串
       //将用户信息保存到数据库中,包括状态(状态为0,表示未激活)和系统生成一串随机字符串
        //向用户发送一封邮件
        EmailUtils.sendAccountActivateEmail(user);
    }
}

发送邮件内容的思路

//可以使用JAVA Mail或者使用common-email发送邮件,建议使用common-email发送邮件,代码比较简洁,需要使用的jar包在准备中有
public class EmailUtils {
     

    private static final String FROM = "要发送邮件的邮箱,这个例子是qq邮箱";

    public static void sendAccountActivateEmail(User user) {
     
    	//内容可以包含一个链接,该链接主要用来发送一个请求,用来激活账户,即把数据库中账户的状态设为1
		//例如链接可以长这样:点击激活账号
		//这时候tomcat服务器别关掉了
    }
}



激活账户的servelt


@WebServlet("/activateServlet")
public class ActivateServlet extends HttpServlet {
     

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
        //获取id的值和checkCode的值
        //id是存储在数据库中账号的主键,通过id找出数据库中的账户注册时存储的一串随机字符串
        //checkCode:与数据库中一串随机字符串作比较,如果通过验证,将数据库中的状态设为1, 如果没有通过验证,激活失败
        //checkCode为了保密性可以进行一些加密,例如md5
    }
}

总而言之,java实现邮箱激活并不难,只要会使用JAVA Mail或common-email发送邮件就可以了。

你可能感兴趣的:(java,web,java)