Verification code generation
This effect is achieved using the easy-captcha toolkit. First, you need to add relevant dependencies to pom.xml. The code is as follows:
<dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency>
Verification code format
easy-captcha verification code tool supports GIF, Chinese, arithmetic and other types, which are implemented through the following instance objects:
SpecCaptcha (PNG type static image verification code)
GifCaptcha (Gif type picture verification code)
ChineseCaptcha (GIF type Chinese picture verification code)
-
ArithmeticCaptcha (arithmetic type picture verification code)
Character types are divided into the following types:
TYPE_DEFAULT: mixed numbers and letters
TYPEONLYNUMBER: Pure numbers
TYPEONLYCHAR: Pure letters
TYPEONLYUPPER: Pure uppercase letters
TYPEONLYLOWER: pure lowercase letters
TYPENUMAND_UPPER: mixed numbers and uppercase letters
Backend logic Implementation
package com.yanx.controller; import com.wf.captcha.SpecCaptcha; import com.wf.captcha.base.Captcha; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.thymeleaf.util.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Controller public class KapchaController { @GetMapping("/kaptcha") public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { httpServletResponse.setHeader("Cache-Control","no-store"); httpServletResponse.setHeader("Pragma","no-cache"); httpServletResponse.setDateHeader("Expires",0); httpServletResponse.setContentType("image/gif"); //三个参数分别为宽、高、位数 SpecCaptcha captcha=new SpecCaptcha(75,30,4); //设置类型为数字和字母混合 captcha.setCharType(Captcha.TYPE_DEFAULT); //设置字体 captcha.setCharType(Captcha.FONT_9); //验证码存入session httpServletRequest.getSession().setAttribute("verifyCode",captcha.text().toLowerCase()); //输出图片流 captcha.out(httpServletResponse.getOutputStream()); } }
Here the controller adds the defaultKaptcha() method. The path intercepted and processed by this method is/kaptcha
Implementation of front-end logic
Create a new kaptcha.html page in the static directory, the code is as follows:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>验证码</title> </head> <body> <img src="/static/imghwm/default1.png" data-src="/kaptcha" class="lazy" onclick="this.src='/kaptcha?t=new Date()'" alt="How to use java to get website login verification code" > </body> </html>
Access the backend verification code path/kaptcha, the verification code is in the form of a picture. The onclick method can dynamically switch to display the verification code when the label is clicked.
Start the Spring Boot project, open the browser and enter the address:
http://localhost:8080/kaptcha.html
The effect is as follows:
Verification code verification
Back-end code
package com.yanx.controller; import com.wf.captcha.SpecCaptcha; import com.wf.captcha.base.Captcha; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.thymeleaf.util.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @Controller public class KapchaController { @GetMapping("/kaptcha") public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException { httpServletResponse.setHeader("Cache-Control","no-store"); httpServletResponse.setHeader("Pragma","no-cache"); httpServletResponse.setDateHeader("Expires",0); httpServletResponse.setContentType("image/gif"); //三个参数分别为宽、高、位数 SpecCaptcha captcha=new SpecCaptcha(75,30,4); //设置类型为数字和字母混合 captcha.setCharType(Captcha.TYPE_DEFAULT); //设置字体 captcha.setCharType(Captcha.FONT_9); //验证码存入session httpServletRequest.getSession().setAttribute("verifyCode",captcha.text().toLowerCase()); //输出图片流 captcha.out(httpServletResponse.getOutputStream()); } @GetMapping("/verify") @ResponseBody public String verify(@RequestParam("code") String code, HttpSession session){ if(StringUtils.isEmpty(code)){ return "验证码不能为空"; } String kapchaCode = session.getAttribute("verifyCode")+""; if(StringUtils.isEmpty(kapchaCode)||!code.toLowerCase().equals(kapchaCode)){ return "验证码输入错误"; } return "验证成功"; } }
Front-end code
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>验证码验证</title> </head> <body> <img src="/static/imghwm/default1.png" data-src="/kaptcha" class="lazy" onclick="this.src='/kaptcha?d=new Date()'" alt="How to use java to get website login verification code" > <input type="text" maxlength="5" id="code" placeholder="请输入验证码"/> <button id="verify">验证</button> <p id="verifyResult"></p> </body> <script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript" > $(function(){ //验证按钮点击事件 $('#verify').click(function(){ var code=$('#code').val(); $.ajax({ type:'GET',//方法类型 url:'/verify?code='+code, success:function(result){ $('#verifyResult').html(result); }, error:function(){ alert('请求失败'); }, }); }); }); </script> </html>
Effect
The above is the detailed content of How to use java to get website login verification code. For more information, please follow other related articles on the PHP Chinese website!

Start Spring using IntelliJIDEAUltimate version...

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

Java...

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Atom editor mac version download
The most popular open source editor

Notepad++7.3.1
Easy-to-use and free code editor

Zend Studio 13.0.1
Powerful PHP integrated development environment