Maison > Java > javaDidacticiel > Comment utiliser Java pour obtenir le code de vérification de connexion au site Web

Comment utiliser Java pour obtenir le code de vérification de connexion au site Web

PHPz
Libérer: 2023-05-10 18:28:06
avant
1600 Les gens l'ont consulté

Génération de code de vérification

Cet effet est obtenu à l'aide de la boîte à outils easy-captcha. Tout d'abord, vous devez ajouter les dépendances pertinentes à pom.xml. Le code est le suivant :

<dependency>
    <groupId>com.github.whvcse</groupId>
    <artifactId>easy-captcha</artifactId>
    <version>1.6.2</version>
</dependency>
Copier après la connexion
.

Format du code de vérification

L'outil de code de vérification easy-captcha prend en charge les types GIF, chinois, arithmétique et autres, qui sont implémentés via les objets d'instance suivants :

    #🎜 🎜#
  • SpecCaptcha (code de vérification d'image statique de type PNG)

  • GifCaptcha (code de vérification d'image de type Gif)

    #🎜🎜 ##🎜🎜 #ChineseCaptcha (code de vérification d'image chinois de type GIF)
  • ArithmeticCaptcha (code de vérification d'image de type arithmétique)
  • #🎜🎜 #Les types de caractères sont répartis dans les types suivants :

TYPE_DEFAULT : chiffres et lettres mixtes

  • #🎜🎜 #TYPEONLYNUMBER : Chiffres purs

  • TYPEONLYCHAR : Lettres pures

  • TYPEONLYUPPER : Lettres majuscules pures

  • TYPEONLYLOWER : lettres minuscules pures

  • TYPENUMAND_UPPER : chiffres mixtes et lettres majuscules

    #🎜 🎜##🎜 🎜#Implémentation de la logique back-end
  • 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());
        }
     
    }
    Copier après la connexion
  • Le contrôleur ajoute ici la méthode defaultKaptcha(), et le chemin intercepté et traité par cette méthode est

    # 🎜🎜#Front-end logic Implémenter
Créez une nouvelle page kaptcha.html dans le répertoire statique, le code est le suivant :

<!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="Comment utiliser Java pour obtenir le code de vérification de connexion au site Web" >
</body>
</html>
Copier après la connexion

Accès au chemin du code de vérification backend/ kaptcha, le code de vérification se présente sous la forme d'une image. La méthode onclick peut basculer dynamiquement pour afficher le code de vérification lorsque l'on clique sur l'étiquette.

/kaptchaDémarrez le projet Spring Boot, ouvrez le navigateur et saisissez l'adresse :

http://localhost:8080/kaptcha.html

The l'effet est le suivant :# 🎜🎜#

Vérification CAPTCHA

Code backend

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 "验证成功";
    }
}
Copier après la connexion

Code frontend#🎜 🎜#

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码验证</title>
</head>
<body>
 
<img  src="/kaptcha" onclick="this.src=&#39;/kaptcha?d=new Date()&#39;" alt="Comment utiliser Java pour obtenir le code de vérification de connexion au site Web" >
 


<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(){
  //验证按钮点击事件
   $(&#39;#verify&#39;).click(function(){
    var code=$(&#39;#code&#39;).val();
    $.ajax({
      type:&#39;GET&#39;,//方法类型
      url:&#39;/verify?code=&#39;+code,
      success:function(result){
        $(&#39;#verifyResult&#39;).html(result);
      },
      error:function(){
        alert(&#39;请求失败&#39;);
      },
    });
   });
  });
</script>
</html>
Copier après la connexion
# 🎜🎜#effect

Comment utiliser Java pour obtenir le code de vérification de connexion au site Web

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal