Dieser Effekt wird mit dem Easy-Captcha-Toolkit erreicht. Zuerst müssen Sie relevante Abhängigkeiten zu pom.xml hinzufügen. Der Code lautet wie folgt:
<dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency>
Easy-Captcha-Verifizierungscode-Tool unterstützt GIF, Chinesisch, Arithmetik und andere Typen, die durch die folgenden Instanzobjekte implementiert werden:
SpecCaptcha (statischer Bildverifizierungscode vom Typ PNG)
GifCaptcha (Bildverifizierungscode vom Typ GIF)
ChineseCaptcha (GIF-Typ Chinesischer Bildbestätigungscode)
ArithmeticCaptcha (arithmetischer Bildbestätigungscode)
Zeichentypen sind in die folgenden Typen unterteilt:
TYPE_DEFAULT: gemischte Zahlen und Buchstaben
TYPEONLYNUMBER: reine Zahlen
TYPEONLYCHAR: Reine Buchstaben
TYPEONLYUPPER: Reine Großbuchstaben
TYPEONLYLOWER: Reine Kleinbuchstaben
TYPENUMAND_UPPER: Gemischte Zahlen und Großbuchstaben
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()); } }
Neu Controller hier Die Standardmethode Kaptcha() wird von dieser Methode abgefangen und verarbeitet: /kaptcha
Erstellen Sie eine neue kaptcha.html-Seite im statischen Verzeichnis
Zugriff auf den Back-End-Bestätigungscodepfad/Kaptcha, Bestätigungscode in Bildform. Die Onclick-Methode kann dynamisch wechseln, um den Bestätigungscode anzuzeigen, wenn auf das Etikett geklickt wird. Starten Sie das Spring Boot-Projekt, öffnen Sie den Browser und geben Sie die Adresse ein: http://localhost:8080/kaptcha.htmlDer Effekt ist wie folgt: Verifizierung des BestätigungscodesBack-End Code<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>验证码</title> </head> <body> <img src="/kaptcha" onclick="this.src='/kaptcha?t=new Date()'" alt="So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten" > </body> </html>
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 "验证成功"; } }
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!