Maison >Java >javaDidacticiel >Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image

Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image

PHPz
PHPzavant
2023-05-11 12:25:061530parcourir

1. Comprendre le processus de communication "serveur/navigateur" (3 étapes)

Étape 1 : Le navigateur utilise la balise <img src="/static/imghwm/default1.png" data-src="/test/controller" class="lazy" alt="Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image" > pour demander une requête spécifique. Chemin du contrôleur. <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168377910912202.png" class="lazy" lazy alt="Comment utiliser SpringBoot+hutool pour implémenter le code de vérification dimage">

二、开发前准备:

Spring Boot开发常识

hutool工具(hutool是一款Java辅助开发工具,利用它可以快速生成验证码图片,从而避免让我们编写大量重复代码,具体使用请移至官网)

<!-- pom 导包:hutool 工具 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-captcha</artifactId>
    <version>5.8.5</version>
</dependency>

三、 代码实现

【 index.html 】页面

nbsp;html>


    <meta>
    <title>验证码页面</title>


  
          Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image   
   <script> function refresh() { document.getElementById("code").src = "/test/code?time" + new Date().getTime(); } </script>

【SpringBoot后端】

@RestController
@RequestMapping("test")
public class TestController {
  
    @Autowired
    HttpServletResponse response;
    @Autowired
    HttpSession session;

    @GetMapping("code")
    void getCode() throws IOException {
   		  // 利用 hutool 工具,生成验证码图片资源
        CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 5);
        // 获得生成的验证码字符
        String code = captcha.getCode();
        // 利用 session 来存储验证码
        session.setAttribute("code",code);
      	// 将验证码图片的二进制数据写入【响应体 response 】
        captcha.write(response.getOutputStream());
    }
}

四、“点击验证码图片自动刷新” 是如何实现的 ?

HTML 规范规定,在 <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/164/168377910964986.png" class="lazy" alt="Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image" >

Étape 2 : Le contrôleur du serveur renvoie les données binaires de l'image.

Étape 3 : Le navigateur reçoit les données et affiche l'image.

Comment utiliser SpringBoot+hutool pour implémenter le code de vérification dimageComment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image

🎜 2. Préparation avant le développement : 🎜🎜Le bon sens du développement Spring Boot🎜🎜outil hutool (hutool est un outil de développement auxiliaire Java qui peut générer rapidement des images de code de vérification, nous évitant ainsi d'écrire beaucoup de code répété. Veuillez vous déplacer vers le site officiel pour un usage spécifique)🎜
 <img  src="/static/imghwm/default1.png"  data-src="/test/code"  class="lazy"   id="code" onclick="refresh();" alt="Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image" >

......

<!-- “点击验证码图片,自动刷新” 脚本 -->
<script>
    function refresh() {
        document.getElementById("code").src = 
          "/test/code?time" + new Date().getTime();
    }
</script>
🎜3. Implémentation du code🎜🎜[index.html] page🎜rrreee🎜[SpringBoot backend]🎜rrreee🎜4. Comment se fait "cliquer sur l'image du code de vérification pour actualiser automatiquement" ? 🎜🎜La spécification HTML stipule que dans la balise <img src="/static/imghwm/default1.png" data-src="xxx" class="lazy" alt="Comment utiliser SpringBoot+hutool pour implémenter le code de vérification d'image" >, chaque fois que le chemin src change, le navigateur demandera automatiquement à nouveau la ressource. Nous pouvons donc écrire un simple script js. Tant que l'on clique sur l'image du code de vérification, le chemin src sera ajouté avec le [horodatage] actuel, atteignant ainsi l'objectif de changer le chemin src. 🎜rrreee🎜5. Effet final🎜🎜🎜🎜

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer