这门课解决什么问题,适合什么基础

很多做后端转全栈、或者刚学完 SSM、SSH 等框架组合的同学,一遇到注册、登录、发帖页面的验证码就卡壳。要么照着网上零散的博客抄一段,刷新一次验证码就失效;要么干扰线画得太密看不清,被用户投诉;要么前后台对不上,提交后永远提示验证码错误。这门课就是针对这类高频小卡点做的一次专项梳理,聚焦在常见验证码的生成、展示、校验全链路。它不要求你精通前端框架,但默认你已经能独立写出一个基本的表单提交和后端接收接口,熟悉 Java 服务端基本的请求响应流程。如果你连 Servlet 或 Controller 怎么接参数都还没弄明白,建议先补完基础再来看,否则会觉得很碎。

建议先看哪几块,资料怎么配合练习

建议先从问题验证码那一整块入手,因为它把缓存控制、干扰线绘制、核心画图代码、前台展示、后台校验拆成了连贯的步骤,是最能帮你建立整体认知的主线。看完这一块,再去看字母数字混合验证码的研发步骤,就能举一反三,理解不同样式只是生成逻辑的差异。资料包里的代码片段不要只看不动手,正确的用法是:先照着核心画图程序块在自己本地的 SSM 或 SSH 项目里跑通一次,再故意把干扰线参数调乱、把缓存头去掉,观察验证码失效和重复提交时的表现。只有把错误现场亲手制造出来,你才会真正记住为什么页面不缓存那一行不能省。每节课对应的提示信息和校验逻辑,也要自己对着前端控制台和后端日志各跑一遍,别只看视频里的成功画面。

学完能独立做什么

学完之后,你应该能独立给一个论坛注册页、登录页、发帖页加上可用的验证码,并且知道怎么定位常见报错。具体来说,你要能回答这几个问题:验证码图片为什么不能被浏览器缓存,不设置会出什么问题?干扰线画几条合适,怎么在防止机器识别和保证人工可读之间找平衡?前端拿到用户输入的验证码后,是直接拿去和原图比对,还是交给后端 session 里的值比对,为什么?如果用户刷新了验证码但没提交表单,下一次提交时后端怎么判断该用哪个值?把这些点想透,你加的验证码才不是摆设,而是真能挡住一部分无效请求。别指望看完就什么都会,没在自己项目里踩过刷新失效的坑,都不算真正掌握。

课程目录

1-1 [验证码的现状] 验证码的生活所见 (10:40)
1-2 [验证码的现状] 【技术选型】研发验证码的背景技术介绍 (11:11)
2-1 [问题验证码] 【缓存】设置页面不缓存 (10:02)
2-2 [问题验证码] 【干扰线】程序生成干扰线 (08:30)
2-3 [问题验证码] 【画图】核心程序代码块 (08:30)
2-4 [问题验证码] 【前台】问题验证码的展示 (05:35)
2-5 [问题验证码] 【整合】问题验证码的调试 (09:47)
2-6 [问题验证码] 【后台】验证码怎么验证正确性 (03:46)
2-7 [问题验证码] 【前台】验证码怎么验证正确性 (06:07)
2-8 [问题验证码] 【提示】验证码验证成功 (05:52)
3-1 [字母和数字混合验证码] 【研发】字母和数字混合验证码研发步骤 (12:50)
3-2 [字母和数字混合验证码] 【整合】数字字母验证码成功 (04:08)
3-3 [字母和数字混合验证码] 【算法】验证码的验证算法 (11:44)
3-4 [字母和数字混合验证码] 数字验证码的后台验证成功 (10:17)
4-1 [中文验证码] 【分析】中文验证码分析 (05:13)
4-2 [中文验证码] 中文汉字库中随机获取 (10:17)
4-3 [中文验证码] 【旋转图像】中文验证码 (11:29)
4-4 [中文验证码] 中文验证码的成功整合 (06:12)
4-5 [中文验证码] 【验证】中文验证码验证正确性 (08:40)
5-1 [源代码] 问题验证码源码(内含通用lib包) (01:40)
5-2 [源代码] 数字字母验证码源代码(lib包请使用问题验证码的lib) (01:40)
5-3 [源代码] 中文验证码源代码(lib包请使用问题验证码的lib包) (01:40)