目次
1.「サーバー/ブラウザ」通信プロセスを理解する (3 ステップ)
2. 開発前の準備:
3. コードの実装
4. 「検証コード画像をクリックすると自動的に更新される」はどのように実装されていますか?
5. 最終的な効果
ホームページ Java &#&チュートリアル SpringBoot+hutoolを使用してイメージ検証コードを実装する方法

SpringBoot+hutoolを使用してイメージ検証コードを実装する方法

May 11, 2023 pm 12:25 PM
springboot hutool

1.「サーバー/ブラウザ」通信プロセスを理解する (3 ステップ)

ステップ 1: ブラウザの使用法 <img src="/static/imghw/default1.png" data-src="/test/controller" class="lazy" alt="SpringBoot+hutoolを使用してイメージ検証コードを実装する方法" > タグ特定のコントローラー パスを要求します。

ステップ 2: サーバー コントローラーはイメージのバイナリ データを返します。

ステップ 3: ブラウザはデータを受信し、画像を表示します。

SpringBoot+hutoolを使用してイメージ検証コードを実装する方法

2. 開発前の準備:

Spring Boot 開発の常識

hutool ツール (hutool は Java 補助開発ツールで、検証コードのイメージを素早く生成できるため、繰り返しコードを大量に記述する必要がなくなります。特定の用途については公式 Web サイトに移動してください)

<!-- pom 导包:hutool 工具 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-captcha</artifactId>
    <version>5.8.5</version>
</dependency>
ログイン後にコピー

3. コードの実装

[index.html ] page

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>验证码页面</title>
</head>
<body>
  
<form action="#" method="post">
  
  	<!-- img标签负责向服务器 Controller 请求图片资源 -->
    <img  src="/static/imghw/default1.png"  data-src="/test/code"  class="lazy"   id="code" onclick="refresh();" alt="SpringBoot+hutoolを使用してイメージ検証コードを実装する方法" >
  
</form>
  
</body>

<!-- “点击验证码图片,自动刷新” 脚本 -->
<script>
    function refresh() {
        document.getElementById("code").src = 
          "/test/code?time" + new Date().getTime();
    }
</script>
</html>
ログイン後にコピー

【SpringBoot backend】

@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());
    }
}
ログイン後にコピー

4. 「検証コード画像をクリックすると自動的に更新される」はどのように実装されていますか?

HTML 仕様では、<img src="/static/imghw/default1.png" data-src="xxx" class="lazy" alt="SpringBoot+hutoolを使用してイメージ検証コードを実装する方法" > タグ内で、src パスが変更されるたびにブラウザが自動的にリソースを再リクエストすることが規定されています。簡単な js スクリプトを書くと、検証コードの画像をクリックしている限り、現在の [タイムスタンプ] で src パスが追加され、src パスを変更するという目的が達成されます。

 <img  src="/static/imghw/default1.png"  data-src="/test/code"  class="lazy"   id="code" onclick="refresh();" alt="SpringBoot+hutoolを使用してイメージ検証コードを実装する方法" >

......

<!-- “点击验证码图片,自动刷新” 脚本 -->
<script>
    function refresh() {
        document.getElementById("code").src = 
          "/test/code?time" + new Date().getTime();
    }
</script>
ログイン後にコピー

5. 最終的な効果

SpringBoot+hutoolを使用してイメージ検証コードを実装する方法

以上がSpringBoot+hutoolを使用してイメージ検証コードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Springboot が Jasypt を統合して構成ファイルの暗号化を実装する方法 Springboot が Jasypt を統合して構成ファイルの暗号化を実装する方法 Jun 01, 2023 am 08:55 AM

Springboot が Jasypt を統合して構成ファイルの暗号化を実装する方法

SpringBoot が Redisson を統合して遅延キューを実装する方法 SpringBoot が Redisson を統合して遅延キューを実装する方法 May 30, 2023 pm 02:40 PM

SpringBoot が Redisson を統合して遅延キューを実装する方法

Redis を使用して SpringBoot に分散ロックを実装する方法 Redis を使用して SpringBoot に分散ロックを実装する方法 Jun 03, 2023 am 08:16 AM

Redis を使用して SpringBoot に分散ロックを実装する方法

Springbootがjarパッケージにファイルを読み込んだ後にファイルにアクセスできない問題を解決する方法 Springbootがjarパッケージにファイルを読み込んだ後にファイルにアクセスできない問題を解決する方法 Jun 03, 2023 pm 04:38 PM

Springbootがjarパッケージにファイルを読み込んだ後にファイルにアクセスできない問題を解決する方法

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBootとSpringMVCの比較と差異分析

SpringBoot が Redis をカスタマイズしてキャッシュのシリアル化を実装する方法 SpringBoot が Redis をカスタマイズしてキャッシュのシリアル化を実装する方法 Jun 03, 2023 am 11:32 AM

SpringBoot が Redis をカスタマイズしてキャッシュのシリアル化を実装する方法

Springbootでapplication.ymlの値を取得する方法 Springbootでapplication.ymlの値を取得する方法 Jun 03, 2023 pm 06:43 PM

Springbootでapplication.ymlの値を取得する方法

SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 Jun 02, 2023 am 11:07 AM

SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法

See all articles