码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • kaptcha验证码组件用法


    1.添加依赖

    <dependency>
        <groupId>com.github.penggle</groupId>
        <artifactId>kaptcha</artifactId>
        <version>2.3.2</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.在applicationContext.xml配置Kaptcha

        <!-- 配置Kaptcha -->
        <bean id="kaptchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
            <property name="config">
                <bean class="com.google.code.kaptcha.util.Config">
                    <constructor-arg>
                        <props>
                            <!--验证码图片不生成边框-->
                            <prop key="kaptcha.border">no</prop>
                            <!-- 验证码图片宽度为120像素 -->
                            <prop key="kaptcha.image.width">120</prop>
                            <!-- 验证码图片字体颜色为蓝色 -->
                            <prop key="kaptcha.textproducer.font.color">blue</prop>
                            <!-- 每个字符最大占用40像素 -->
                            <prop key="kaptcha.textproducer.font.size">40</prop>
                            <!-- 验证码包含4个字符 -->
                            <prop key="kaptcha.textproducer.char.length">4</prop>
                        </props>
                    </constructor-arg>
                </bean>
            </property>
        </bean>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    3.在KaptchaController中实现逻辑功能

    @Controller
    public class KaptchaController {
        @Resource
        private Producer kaptchaProducer;
    
        @GetMapping("/verify_code")
        public void createVerifyCode(HttpServletRequest request , HttpServletResponse response) throws IOException {
            //响应立即过期
            response.setDateHeader("Expires",0);
            //不缓存任何图片数据
            response.setHeader("Cache-Control" , "no-store,no-cache,must-revalidate");
            response.setHeader("Cache-Control" , "post-check=0,pre-check=0");
            response.setHeader("Pragma" , "no-cache");
            response.setContentType("image/png");
            //生成验证码字符文本
            String verifyCode = kaptchaProducer.createText();
            request.getSession().setAttribute("kaptchaVerifyCode",verifyCode);
            System.out.println(request.getSession().getAttribute("kaptchaVerifyCode"));
            BufferedImage image = kaptchaProducer.createImage(verifyCode);//创建验证码图片
            ServletOutputStream out = response.getOutputStream();
            ImageIO.write(image, "png", out);//输出图片流
            out.flush();
            out.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    【场景化解决方案】项目管理结合酷应用,让企业项目管理更便捷高效
    导出本地服务到Public Network,需有密码才能访问,7天有效时间
    MATLAB 状态空间设计 —— LQG/LQR 和极点配置算法
    算法设计与分析「通关指南」
    【广州华锐互动】VR建筑安全培训体验为建筑行业人才培养提供有力支持
    css 渐变色进度条
    UVM m_sequencer 和 p_sequencer
    1163 Dijkstra Sequence
    AntX6 DAG拖拽流程图:从0到1实现流程图05-连接桩篇
    ArkTS - HarmonyOS服务卡片(创建)
  • 原文地址:https://blog.csdn.net/qq_41787812/article/details/133104940
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号