注册

使用邮箱验证码实现用户注册早已不在是什么新鲜的事,但是对于我这些手(菜鸟)来说还是比较茫然的,所以我将我这第一次的经验总结分享出来,希望能够有助于茫然的你-----------》》》》

主要有一下步骤:

  1. 发送邮箱验证码的工具类;
  2. 发送验证码的servlet类;
  3. 用户注册的servlet类;
  4. 用户登录的jsp页面;
  5. 需要的jar包;
  6. 邮箱账户的设置。

然后让我们一步一步来看:

1. 发送邮箱验证码的工具类


import java.util.Random;import org.apache.commons.mail.HtmlEmail;public class SendEmailUtil {public int sendEmail(String emailaddress) {try {Random random = new Random();int code = random.nextInt(9000)+1000; HtmlEmail email = new HtmlEmail();// 不用更改email.setHostName("smtp.qq.com");// 需要修改,126邮箱为smtp.126.com,163邮箱为163.smtp.com,QQ为smtp.qq.comemail.setCharset("UTF-8");email.addTo(emailaddress);// 收件地址email.setFrom("发件人邮箱", "发件人用户名");// 此处填邮箱地址和用户名,用户名可以任意填写//hhhjkkkhhjklj(IMAP/SMTP服务)---这里需要改为你自己email.setAuthentication("发件人邮箱", "bzqaboqcccmyfdeb");// 此处填写邮箱地址和客户端授权码email.setSubject("邮件名称");// 此处填写邮件名,邮件名可任意填写email.setMsg("尊敬的用户您好,您本次注册的验证码是:" + code);// 此处填写邮件内容email.send();return code;} catch (Exception e) {return 0;}}}

2. 发送验证码的servlet类–重写doGet方法

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//接收邮箱String email = request.getParameter("firstEmail");//用户传递响应结果String sendResult = "";if(email!=null && !"".equals(email)) {//发送邮箱验证码,并返回验证码SendEmailUtil seu = new SendEmailUtil();int code = seu.sendEmail(email);if(code != 0) {//封装邮箱和验证码request.getSession().setAttribute("code",code);request.getSession().setAttribute("firstEmail", email);sendResult = "ok";}else {sendResult = "发送验证码失败";}}else {sendResult = "请输入有效的邮箱地址";}//封装为json并对客户端响应Gson gson = new Gson();response.getWriter().print(gson.toJson(sendResult));}

3. 用户注册的servlet类–重写doGet方法

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置编码request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取表单内容String name = request.getParameter("username");String pwd = request.getParameter("pwd");String repwd = request.getParameter("rePwd");String email = request.getParameter("email");String phone = request.getParameter("phone");//获取session域的验证码和邮箱int code = (int) request.getSession().getAttribute("code");String firstEmail = (String) request.getSession().getAttribute("firstEmail");//获取用户输入验证码String vilidateCode = request.getParameter("eCode");int vCode = 0;if(vilidateCode!=null && !"".equals(vilidateCode)) {vCode = Integer.parseInt(vilidateCode);}//用于封装数据User user = new User();//返回结果String result = "";//如果两次密码一致则封装到实体类if(!repwd.equals(pwd)) {result = "两次密码不一致";}else{//如果两次邮箱不一致,响应结果if(!firstEmail.equals(email)) {result = "请使用接收验证码的邮箱注册";}else {//判断验证码if(vCode == code) {UserService userService = new UserServiceImpl();int row = 0;try {if((name!=null&&!"".equals(name))&&(pwd!=null&&!"".equals(pwd))&&(phone!=null&&!"".equals(phone))) {//都满足则封装数据并存储user.setUname(name);user.setUpwd(pwd);user.setUphone(phone);user.setUemail(email);row = userService.register(user);}} catch (Exception e) {//如果出现异常,重定向页面,由于没有数据传输,所以可以进行响应重定向response.sendRedirect("error.html");}if(row == 1) {//一切无误,返回okresult = "ok";}else {result = "请输入正确的个人信息";}}else {result = "验证码不正确";}}}//响应给客户Gson gson = new Gson();response.getWriter().print(gson.toJson(result));}

4. 用户登录的jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>使用邮箱验证码实现注册</title>
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body><!--登录注册表--><div><form id="form"><div class="flrg-1"><h3>注册</h3><div><input type="text" class="in-1" placeholder="您的用户名"name="username" id="username" onblur="checkNotName()"> <br><font color="red" id="usernameError"></font></div><div class="a"><input type="password" class="in-1" placeholder="输入密码" name="pwd"id="pwd" onblur="checkPwd()"> <br> <fontcolor="red" id="pwdError"></font></div><div class="a"><input type="password" class="in-1" placeholder="再次确认密码"name="repwd" id="rePwd" onblur="checkRePwd()"> <br><font color="red" id="rePwdError"></font></div><div class="a"><input type="text" class="in-1" placeholder="输入手机号码" name="phone"id="phone" onblur="checkPhone()"> <br> <fontcolor="red" id="phoneError"></font></div><div class="a"><input type="email" class="in-1" placeholder="输入邮箱地址" name="email"id="email" onblur="checkEmail()"> <br> <fontcolor="red" id="emailError"></font></div><div class="a"><input type="text" class="in-1" placeholder="邮箱验证码" name="eCode"id="eCode"> <br> <font color="red" id="eCodeError"></font></div><div class="a"><input type="button" id="send" value="发送邮箱验证码"></div><div class="a"><input type="button" id="btn" style="text-align: center;"value="注册"></div><script>$("#send").click(function(){var email = $("#email").val();var result = "ok";$.ajax({type:"post",async:true,url:"SendEmailVilidataCodeServlet",data:"firstEmail="+email,dataType:"json",success:function(sendResult){if(result==sendResult){alert("已发送成功,注意查收");}else{$("#send").val("请重新发送");}},error:function(){alert("发送验证码失败");}})});</script><script>$("#btn").click(function(){var username = $("#username").val();var pwd = $("#pwd").val();var rePwd = $("#rePwd").val();var phone = $("#phone").val();var eCode = $("#eCode").val();var email = $("#email").val();var result = "ok";$.ajax({type:"post",async:true,//最好使用绝对路径url:"${pageContext.request.contextPath}/RegisterServlet",data:"username="+username+"&pwd="+pwd+"&rePwd="+rePwd+"&eCode="+eCode+"&email="+email+"&phone="+phone,dataType:"json",success:function(resultFinal){if(result==resultFinal){alert(resultFinal);window.location.href="login.jsp";}else{$("#eCodeError").html(resultFinal);}},error:function(){alert("注册失败");}})});</script></div></form></div>
</body>
</html>

注册界面其实随便写一个就可以了,主要还是工具类的使用方法,和整体结构的思想,下面工具类所需要的各种jar包

5. 需要的jar包


以上是工具类所需要的jar包

至此我们代码部分已经结束

6. 邮箱账户的设置。

在浏览器登录QQ邮箱就可以设置:
点击设置—>账户—>开启对应的功能(注意:记住授权码)


至此完成所有步骤,
最后,很感谢网上热心的朋友的文章和我的同桌。
如果有何异议,希望不吝分享。谢谢您的浏览!

Java邮箱验证码注册相关推荐

  1. mysql查询使用qq邮箱注册_Spring Boot实现qq邮箱验证码注册和登录验证功能

    1.登录注册思路 这是一个使用spring boot做的一个qq邮箱注册和登录的项目. 没写前端页面,使用postman测试.有截图详细. 1.1.思路 注册:通过输入的邮箱发送验证码,检验前端传来的 ...

  2. java邮箱验证码_Java实现邮箱验证码

    原标题:Java实现邮箱验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注 ...

  3. java邮箱激活注册

    分析: 首先创建含有激活状态的javaBean对象 public class User implements Serializable { private int uid;//用户id private ...

  4. PHPMailer实现简单邮箱验证码

    00PHPMailer PHPMailer是一个非常强大的 php发送邮件类,可以设定发送邮件地址.回复地址.邮件主题.html网页,上传附件,并且使用起来非常方便. phpMailer 的特点: 1 ...

  5. java发送QQ邮箱验证码实现登录注册、邮箱验证码防刷校验

    文章目录 一:前台功能实现 1.1 页面编写 1.2 发送验证码--sendEmailCode 1.2.1 远程调用发送接口 1.2.1 接口防刷校验--60s内只能发送一次 二:获取QQ邮箱授权码 ...

  6. java注册界面发送邮箱验证码(无线程版)

    ​ 邮箱验证注册 本篇文章使用第三方jar包实现邮箱发送验证码来注册用户,该文章未采用线程如果多人访问注册注册页面发送邮件可能会导致服务器崩溃,建议采用线程发送邮件!!! 一.前期准备工作 1.发送验 ...

  7. java短信验证码功能发送的验证码如何校验_发送短信验证码和邮箱验证码—Java实现...

    短信验证码 短信验证码都是调用一些接口来进行短信的发送,短信验证码在登录.注册等操作中使用的最广泛,本文这一节演示如何使用Java制作一个简单的短信验证码登录. 我这里演示使用的是聚合数据的短信接口( ...

  8. Java 使用邮箱进行注册验证

    1.Springboot 使用邮箱进行注册验证需要导入依赖,如果是Java项目则需要导入email.jar <!--email--> <dependency><group ...

  9. JavaWeb登录注册系统/界面(邮箱验证码,数据库连接,详细注释,可作结课作业,可用于学习,可接入其他主系统)

    目录 1.前言 2.系统实机演示 3.系统分析与设计 (1)主要软件与工具 (2)系统分析 (3)系统规划 4.系统设计与构建 (1)JavaWeb创建 (2)JavaWeb运行 (3)先期依赖准备: ...

  10. 【邮箱验证码模板】java 整合redis 发送邮箱验证码模板

    完整代码地址 :https://gitee.com/alleniverrui/mail-send.git (有帮助的话帮忙点个start) 开启邮箱smtp 权限 以QQ邮箱为例( 将图中所示两个sm ...

最新文章

  1. java向量vector类,java数据结构——Vector(向量类)
  2. 小谈多生成树协议--MSTP
  3. ZOJ Problem Set - 1048 Financial Management
  4. 如何通过软件项目开发来提高自身的实力。
  5. 【摄影测量原理】第四章:解析空中三角测量
  6. linux下如何安装配置redis及主从配置
  7. debian查看ip地址命令_鲜为人知而又实用的 Linux 命令大全
  8. mysql 案例~ 主从复制转化为级联复制
  9. [CTO札记]消除2种官僚文化现象
  10. Linux学习笔记(8)文件搜索与帮助(find)
  11. 配置防盗链 访问控制Directory 访问控制FilesMatch
  12. 【开源项目】CircuitJS1在线电路仿真
  13. Android物联网(一)—— 蓝牙通讯
  14. Python CT图像预处理——nii格式读取、重采样、窗宽窗位设置
  15. 阿愚呱呱作为一个非技术人员,是如何做到不到3年时间成为RPA行业的一个头部IP的?
  16. ps去水印教程_【PS教程】超实用6大去水印去除方法!
  17. android七牛多张图片上传
  18. (十七)QT生成PDF文件
  19. Linux 系统基础知识
  20. Android视频解码及渲染

热门文章

  1. python中linspace函数_Python numpy.linspace函数方法的使用
  2. Linux —— 动态库和静态库
  3. PS学习笔记2-ps的基础操作
  4. 常用编码说明-GB2312
  5. 贴片电阻电容封装与尺寸,功率,耐压,温度等的关系
  6. 贪心算法-完全背包问题
  7. 三种经典网页音乐播放器
  8. APP抓包之fiddler使用介绍
  9. 这是一份文科生都能看懂的线性代数简介
  10. C语言中自定义的标识符