登录功能之添加验证码|学习笔记

简介: 快速学习登录功能之添加验证码

开发者学堂课程【JSP 快速入门登录功能之添加验证码】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/33/detail/718


登录功能之添加验证码


内容介绍:

1. 验证码功能的基本原理

2. VerifyCodeServlet 生成图片

3. LoginServlet 校验验证码

4. 验证码换一张功能

 

验证码功能的基本原理:

首先用户发出请求到 login.jsp→VerifyCodeServlet 生成图片并保存到 session 之后响应给客户端→用户提交验证码表单→ LoginServlet 获取表单中的验证码和 session 中的验证码并进行比较→如果信息相同则向下运行,不同则保存错误信息到request 域并转发到 login.jsp

图片16.png


VerifyCodeServlet 生成图片

1.生成图片

2.保存图片上的文本到 session域中

3.把图片响应给客户端

对应代码:

package cn.itcast.servlet;

import java.awt.image.BufferedImage;

public class VerifyCodeServlet extends

HttpServlet {

public void doGet (HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

VerifyCode vc = new VerifyCode ();

BufferedImage image = vc. getImage ();

request.getSession().setAttribute("session_vcode",ve.getText());

VerifyCode.output(image,response.getOutputStream());

}

}


LoginServlet 校验验证码

1从 session 中获取正确的验证码

2从表单中获取用户填写的验证码

3进行比较!

4如果相同,向下运行,否则保存错误信息到 request 域,转发到 login.jsp

对应代码:String sessionCode = (String) request, getSession ().getAttribute ("session_vcode");

String paramCode = request. getParameter ("verifyCode");

if(!paramCode.equalsIgnoreCase(sessionCode)) {

request.setAttribute("msg","验证码错误!");

request.getRequestDispatcher("/session2/login.jsp").forward(request,response);

return

}



验证码换一张功能

1.得到 img 元素

2.修改其 src 为 /day11_3/VerifyCodeServlet

对应代码:

function_change(){

var imgEle = document.getElementById("img");

imgEle.src = "/day11_3/VerifyCodeServlet?a="+ new Date().getTime();

}

相关文章
|
6月前
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
179 0
|
6月前
|
前端开发 安全 Java
SpringBoot 实现登录验证码(附集成SpringSecurity)
SpringBoot 实现登录验证码(附集成SpringSecurity)
396 0
|
3月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
1月前
|
Java
Java 登录输入的验证码
Java 登录输入的验证码
22 1
|
1月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
72 2
|
2月前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
43 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
3月前
|
资源调度 JavaScript API
nest.js + sms 实现短信验证码登录
本文介绍了在Nest.js框架中集成短信验证码登录的实现方案,详细阐述了使用阿里云短信服务的配置流程、资质申请、短信模板设置,并提供了API调用示例和工程代码的运行步骤。
nest.js + sms 实现短信验证码登录
|
3月前
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
|
6月前
|
安全 Java 数据库
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
1143 2
|
6月前
|
缓存 算法 NoSQL
短信验证码登录接口,如何防止恶意攻击
该文讨论了移动应用中常见的手机短信验证码登录(短验登录)的安全设计。后端通常需要提供获取短信验证码和手机短验登录两个API。为了增强机短验登录API的安全性,提出了几种无需依赖Redis等存储介质的方案:1)使用数字签名确保请求合法性;2)基于时间戳的验证,允许在一定时间范围内有效;3)应用TOTP算法生成动态码进行验证;4)利用JWTToken进行身份验证并设置有效期。文章强调了创新思考在解决安全问题中的重要性,并鼓励读者分享更多方案。
559 1