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

PHPz
リリース: 2023-05-11 12:25:06
転載
1394 人が閲覧しました

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

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

 <img  src="/test/code" 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!