综合练习:验证码案例(1)总体设计

综合练习:验证码案例(1)总体设计

文章目录

观前提醒:

这篇博客的代码,从我的 gitee 上可以下载:
https://gitee.com/mrbgvhbhjv/java-ee-course/tree/master/后端代码/review_captcha_20251031

1.验证码介绍:

验证码:随机字符 + 干扰信息。

随机字符:

  1. 数字 0~9
  2. 字母 a~z A~Z
  3. 汉字

随机字符,可以放在数组里,如果要用,随机拿出来四个,五个,就可以了。

生成验证码的代码,在 github 上,有很多开源的,gitee上也有,直接去搜索就行。

2. Hutool工具介绍

Hutool 核心资源汇总:

Hutool 官网:https://hutool.cn/

Hutool 参考文档:https://hutool.cn/docs/#/

Hutool 源码:https://github.com/dromara/hutool

引入 hutool包 工具,我们使用 maven ,添加依赖:

依赖代码:

java 复制代码
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-captcha</artifactId>
            <version>5.8.36</version>
        </dependency>

使用 hutool工具,随机生成验证码代码:

这是个示例,验证码还需要进行校验才行。

3. 验证码代码编写:

学会如何使用 hutool 工具之后,开始代码的编写。

3.1 预期效果 & 准备工作:

预期效果:

准备工作:

将我设计好的前端代码(static包),下载下来,放到 Springboot项目 中的 resource文件下。

3.2 定义接口(接口文档描述):

通过分析,我们需要设计两个接口:

  1. 生成验证码图片,返回验证码图片给前端
  2. 校验验证码是否正确

接口文档描述:

第一个接口:生成验证码:

第二个接口:检验验证码是否正确:

3.3 后端代码:

由于这块内容,需要讲解的东西,比较多,放到另一篇博客中:
综合练习:验证码案例(2)后端代码

3.4 测试接口:

第一个接口:生成验证码:

第二个接口:检验验证码是否正确:

输入 check方法 的参数。

4. 前端代码

前端代码,后端开发不用关心怎么写的,能看懂就行。

所以,前端代码不做任何解释。

想知道前端代码的原理的,可以问 ai。

index.html 代码:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />


    <title>验证码</title>
    <style>
        #inputCaptcha {
            height: 30px;
            vertical-align: middle;
        }
        
        #verificationCodeImg {
            vertical-align: middle;
        }
        
        #checkCaptcha {
            height: 40px;
            width: 100px;
        }
    </style>
</head>

<body>
    <h1>输入验证码</h1>
    <div id="confirm">
        <input type="text" name="inputCaptcha" id="inputCaptcha">
        <img id="verificationCodeImg" src="/captcha/getcaptcha" style="cursor: pointer;" title="看不清?换一张" />
        <input type="button" value="提交" id="checkCaptcha">
    </div>
    <script src="js/jquery-3.7.1.min.js"></script>
    <script>
        $("#verificationCodeImg").click(function() {
            $(this).hide().attr('src', '/captcha/getcaptcha?dt=' + new Date().getTime()).fadeIn();
        });

        $("#checkCaptcha").click(function() {
            $.ajax({
                url: "/captcha/check",
                type: "post",
                data: {
                    lineCaptcha: $("#inputCaptcha").val()
                },
                success: function(result) {
                    if (result) {
                        location.href = "success.html";
                    } else {
                        alert("验证码错误,请重新输入。");
                    }
                }
            });
        });
    </script>
</body>

</html>

5. 运行效果:


6. 前端图形工具:bootstrap

后端代码,需要详解了解原理,多写几遍,对我们编程有好处。

前端代码,我们需要能看懂,会修改就行(修改也可以问 ai),不需要掌握怎么设计一个完整的 html页面。

完整的 html页面,网上也是有模板的。网上,有很多可以下载 html模板 的工具,例如:boostrap框架。

这是前端非常流行的一个框架:https://www.bootcss.com/

中文文档:https://v4.bootcss.com/docs/getting-started/introduction/

首先需要先下载 CSS文件和 JS文件。

使用起来非常方便,中文文档中,你喜欢的样式,可以直接复制代码到你的项目中去。

注意:一定要严格按照版本号,bootstrap是 5.0.X的html项目,只能粘贴 5.0文档中的代码。

其中,也有免费的模板可以下载。

你也可以在浏览器之后搜索 "html模板",就会有很多网站,可以下载 html 模板的。

7. 总结:

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!

下一篇博客:Mybatis(1)Mybatis 入门

相关推荐
草莓熊Lotso7 小时前
Qt 主窗口核心组件实战:菜单栏、工具栏、状态栏、浮动窗口全攻略
运维·开发语言·人工智能·python·qt·ui
Ronin3057 小时前
持久化数据管理中心模块
开发语言·c++·rabbitmq·gtest
froginwe117 小时前
AJAX 实例详解
开发语言
魔力军7 小时前
Rust学习Day2: 变量与可变性、数据类型和函数和控制流
开发语言·学习·rust
sycmancia7 小时前
C++——强制类型转化、const的理解
开发语言·c++
一嘴一个橘子7 小时前
idea 执行 Maven 的 `clean`、`install`、`package` 等命令报错
java
hzb666667 小时前
unictf2026
开发语言·javascript·安全·web安全·php
Sylvia-girl7 小时前
线程通讯~
java
燃于AC之乐7 小时前
深入解剖STL deque:从源码剖析到容器适配器实现
开发语言·c++·stl·源码剖析·容器实现