栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kaptcha验证码的生成及配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kaptcha验证码的生成及配置

第一步:在Pom文件中引入插件

            com.github.penggle
            kaptcha
            2.3.2

第二步:application中配置
 
    
        
            
                
                    
                        
                        no
                        
                        120
                        
                        blue
                        
                        40
                        
                        4
                    
                
            
第三步:创建全新的Controller
package com.imooc.reader.controller;

import com.google.code.kaptcha.Producer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

@Controller
public class KaptchaController {
    // kaptchaProducer 为配置文件中的 benId
    @Resource
    private Producer kaptchaProducer;

    //生成验证码图片
    @GetMapping("verify_code")
    public void creatVerifyCode(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"));

        //CreatImage用于创建验证码图片
        BufferedImage image = kaptchaProducer.createImage(verifyCode);
        //图片为二进制所以使用outPutStream
        ServletOutputStream out = response.getOutputStream();
        //将图片从服务器通过响应发送到客户端浏览器,客户端浏览器收到图片数据为png格式的图片,就当作图片进行展示
        ImageIO.write(image,"png",out);

        out.flush();
        out.close();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号