重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

SpringBoot结合kaptcha验证码工具是怎样的

本篇文章为大家展示了SpringBoot结合kaptcha验证码工具是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联建站专业为企业提供桥西网站建设、桥西做网站、桥西网站设计、桥西网站制作等企业网站建设、网页设计与制作、桥西企业网站模板建站服务,十载桥西做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

首先,在pom.xml中加入kaptcha的依赖


		
			com.github.penggle
			kaptcha
			
				
					javax.servlet-api
					javax.servlet
				
			
		

其次,在项目中创建CaptchaConfig类,对验证码进行配置。

@Configuration
public class CaptchaConfig
{
    @Bean(name = "captchaProducer")
    public DefaultKaptcha getKaptchaBean()
    {
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
    	// 是否有边框
        properties.setProperty(KAPTCHA_BORDER, "no");
        // 验证码文本字符颜色
        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");
        // 验证码文本字符大小
        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");
        // KAPTCHA_SESSION_KEY
        properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");
        // 验证码文本字符长度
        properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
        // 验证码文本字体样式 
        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
        // 图片样式 
        properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}

接着,编写Controller类,生成验证码。

@Controller
public class CaptchaController {
	
	private static final Logger log = LoggerFactory.getLogger(CaptchaController.class);


	@Resource(name = "captchaProducer")//配置类中的bean
	private Producer captchaProducer;

	@RequestMapping("/captcha")
	public ModelAndView captcha(HttpServletRequest request, HttpServletResponse response) {
		ServletOutputStream out = null;
		try {
			HttpSession session = request.getSession();
			response.setDateHeader("Expires", 0);
			response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			response.addHeader("Cache-Control", "post-check=0, pre-check=0");
			response.setHeader("Pragma", "no-cache");
			response.setContentType("image/jpeg");
			
			String capStr = null;
			String code = null;
			BufferedImage bi = null;
			capStr = code = captchaProducer.createText();
			bi = captchaProducer.createImage(capStr);
			log.info("验证码:"+code);
			session.setAttribute(Constants.KAPTCHA_SESSION_KEY, code);
			out = response.getOutputStream();
			ImageIO.write(bi, "jpg", out);
			out.flush();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (out != null) {
					out.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return null;
	}
}

然后,编写页面代码,本样例使用layui。


            
            
            
            
            
            
            
            
        

最后,运行项目,查看效果,并且确认页面的验证码与实际输出验证码一致。

SpringBoot结合kaptcha验证码工具是怎样的

日志输出:

INFO  c.p.a.w.c.CaptchaController - [captcha,47] - 验证码:pfcd

上述内容就是SpringBoot结合kaptcha验证码工具是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


新闻标题:SpringBoot结合kaptcha验证码工具是怎样的
本文路径:http://cqcxhl.cn/article/gjhsch.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP