利用Java怎么实现一个邮箱激活功能

  介绍

利用Java怎么实现一个邮箱激活功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>实现思路

注册时填写邮箱,点击注册时网站系统邮箱发送激活验证链接到此邮箱,用户来激活账户

利用Java怎么实现一个邮箱激活功能

点击注册,系统邮箱会发送一封激活邮件到你填写的邮箱账号中

利用Java怎么实现一个邮箱激活功能

在没有进行激活操作前,设定某个字段状态是0,表示此账号未激活,不可以使用或者某些功能受限

利用Java怎么实现一个邮箱激活功能

激活操作之后,将激活字段更新为1,这样就完成了激活操作

那么这里还有一个codeUrl字段,他的作用是存入一个唯一标识的随机码,这个随机码由用户名和UUID唯一标识的随机数组成,这样做的目的是防止用户使用不存在的邮箱又修改链接中的参数来激活账户,将链接中的随机码和数据库中的比对,来达到相对安全的激活。

下面是具体的代码

首先是注册的servlet,这里主要测试激活账号的功能,注册代码有点低,不安全,将就看一下

package  org.amuxia.emailtest.servlet;,   ,   import  java.io.IOException,   import  java.sql.ResultSet,   import  java.sql.SQLException,   import  java.util.UUID,   ,   import  javax.servlet.ServletException,   import  javax.servlet.annotation.WebServlet,   import  javax.servlet.http.HttpServlet,   import  javax.servlet.http.HttpServletRequest,   import  javax.servlet.http.HttpServletResponse,   ,   import  org.amuxia.emailtest.pojo.User,   import  org.amuxia.emailtest.utils.EmailUtils,   import  org.amuxia.emailtest.utils.MyJDBC,   ,/* *,   ,* @author  amuxia    *大敌;2017年7月24日,   ,*/@WebServlet (“/RegistServlet"),   public  class  RegistServlet  extends  HttpServlet  {,   ,private  static  final  long  serialVersionUID =, 1 l,,   ,   ,protected  void 服务(请求,HttpServletRequest  HttpServletResponse 响应),throws  ServletException, IOException  {,   String 才能;username =, request.getParameter (“username");,   String 才能;password =, request.getParameter (“password");,   String 才能;email =, request.getParameter (“email");,   String 才能;codeUrl =, UUID.randomUUID () .toString (),,   User 才能;User =, new 用户(),,   user.setUsername才能(用户名),,   user.setPassword才能(密码),,   user.setEmail才能(电子邮件),,   user.setActivated才能(假的),,//刚注册默认是没有激活状态,   String 才能;SQL =,“insert  into  tb_user(用户名、密码、电子邮件激活,codeUrl), value  (?, ?, ?, ?, ?),,,,   MyJDBC.insert才能(SQL,假,,用户名、密码、电子邮件、0,codeUrl);//注册信息插入数据库,   String 才能;querySQL =,“select  *,得到tb_user  where 电子邮件=?“,   ResultSet 才能;rs =, MyJDBC.query (querySQL,电子邮件),,   {try 才能;   ,,如果(rs.next ()) {,   ,,,user.setId (rs.getInt (1)),,   ,,},   ,,},catch  (SQLException  e), {,   ,,//,TODO  Auto-generated  catch  block    ,,e.printStackTrace (),,   ,,},   ,,//才能,注册成功后,发送帐户激活链接,   request.getSession才能().setAttribute (“user",,用户),,   EmailUtils.sendAccountActivateEmail才能(用户),,   request.getRequestDispatcher才能(“/web - inf/jsp/success.jsp") forward格式(请求、响应),,   }大敌;   ,   }

激活账号的Servlet,也就是更新操作

package  org.amuxia.emailtest.servlet;,   ,   import  java.io.IOException,   import  java.sql.ResultSet,   import  java.sql.SQLException,   ,   import  javax.servlet.ServletException,   import  javax.servlet.annotation.WebServlet,   import  javax.servlet.http.HttpServlet,   import  javax.servlet.http.HttpServletRequest,   import  javax.servlet.http.HttpServletResponse,   ,   import  org.amuxia.emailtest.pojo.User,   import  org.amuxia.emailtest.utils.GenerateLinkUtils,   import  org.amuxia.emailtest.utils.MyJDBC,   ,/* *,   ,* @author  amuxia    *大敌;2017年7月24日,   ,*/@WebServlet (“/ActivateServlet"),   public  class  ActivateServlet  extends  HttpServlet {,   ,private  static  final  long  serialVersionUID =, 1 l,,   @Override    protected  void 服务(请求,HttpServletRequest  HttpServletResponse 响应),   throws 才能;ServletException, IOException  {,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用Java怎么实现一个邮箱激活功能