Heim > Java > javaLernprogramm > So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

PHPz
Freigeben: 2023-05-10 18:28:06
nach vorne
1597 Leute haben es durchsucht

Verifizierungscode-Generierung

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>
Nach dem Login kopieren

Verifizierungscode-Format

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

Implementierung von Back- Endlogik

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());
    }
 
}
Nach dem Login kopieren

Neu Controller hier Die Standardmethode Kaptcha() wird von dieser Methode abgefangen und verarbeitet: /kaptcha

Implementierung der Front-End-Logik

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.html

Der Effekt ist wie folgt:

So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

Verifizierung des Bestätigungscodes

Back-End Code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码</title>
</head>
<body>
 <img  src="/kaptcha" onclick="this.src=&#39;/kaptcha?t=new Date()&#39;" alt="So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten" >
</body>
</html>
Nach dem Login kopieren

Front-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 "验证成功";
    }
}
Nach dem Login kopieren
Effekt

So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

So verwenden Sie Java, um den Bestätigungscode für die Website-Anmeldung zu erhalten

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage