java验证码画布类型,【Java工具类】使用Kaptcha生成验证码写回页面中

1. 导入依赖

导入kaptcha依赖:

com.github.penggle

kaptcha

2.3.2

2. 编写配置类:

@Configuration

public class KaptchaConfig {

@Bean

public Producer kaptchaProducer() {Properties properties = new Properties();

properties.setProperty("kaptcha.image.width","100");

properties.setProperty("kaptcha.image.height","40");

properties.setProperty("kaptcha.textproducer.font.size","32");

properties.setProperty("kaptcha.textproducer.font.color","0,0,0");

properties.setProperty("kaptcha.textproducer.char.string","0123456789ABCDEFGHIJKLMOPQRSTUVWXYZ");

properties.setProperty("kaptcha.textproducer.char.length","4"); // 验证码长度

properties.setProperty("kaptcha.noise.impl","com.google.code.kaptcha.impl.NoNoise");

DefaultKaptcha kaptcha = new DefaultKaptcha();

Config config = new Config(properties);

kaptcha.setConfig(config);

return kaptcha;

}

}

3. 编写 Controller 将验证码存入 session 并以图片的形式传回前端

/**

* 生成验证码并返回

*

* @param response

* @param session

*/

@GetMapping("/kaptcha")

public void getKaptchaImage(HttpServletResponse response, HttpSession session) {

String text = producer.createText();

BufferedImage image = producer.createImage(text);

// 将验证码存到session中

session.setAttribute("kaptcha", text);

// 将图片返回给浏览器

response.setContentType("image/png");

try {

OutputStream os = response.getOutputStream();

// 利用写出图片的工具类

ImageIO.write(image, "png", os);

} catch (IOException e) {

logger.error(e.getMessage());

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393986.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用js获取浏览器URL中查询字符串的参数

首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主机名和当前的URL的端口号。本博客首页返回www.cnblogs.com hostname:设置或返回当前URL的主机名。本博客首页返…

测试无服务器应用程序的最佳方法

Serverless is more than a cloud computing execution model. It changes the way we plan, build, and deploy apps. But it also changes the way we test our apps.无服务器不仅仅是云计算执行模型。 它改变了我们计划,构建和部署应用程序的方式。 但这也改变了…

nginx反向代理打印日志_nginx启用TCP反向代理日志配置

Nginx使用TCP反向代理日志配置不同于http修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式stream {log_format proxy ‘$remote_addr [$time_local] ‘‘$protocol $status $bytes_sent $bytes_received ‘‘$session_time "$upstream_addr" ‘‘&qu…

计算机系统的数制及转换

1、计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种进…

29. ExtJs - Struts2 整合(1) - 登录页面

转自:https://yarafa.iteye.com/blog/729197 初学 ExtJS,在此记录下学习过程中的点点滴滴,以备不时只需,也希望能给跟我一样的菜鸟一些帮助,老鸟请忽略。如有不当之处,欢迎指正。 开发环境: MyE…

leetcode690. 员工的重要性(bfs)

给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。 比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是…

如何使用Webpack 4简化React.js开发过程

by Margarita Obraztsova玛格丽塔(Margarita Obraztsova) 如何使用Webpack 4简化React.js开发过程 (How to streamline your React.js development process using Webpack 4) In the real world of development, we have to add new features very quickly. In this tutorial,…

HDU - 3247 Resource Archiver (AC自动机,状压dp)

\(\quad\)Great! Your new software is almost finished! The only thing left to do is archiving all your n resource files into a big one.\(\quad\)Wait a minute… you realized that it isn’t as easy as you thought. Think about the virus killers. They’ll find …

space index.php 7-14,disk_free_space()

disk_free_space()(PHP 4 > 4.1.0, PHP 5, PHP 7)返回目录中的可用空间说明disk_free_space(string$directory):float给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。参数$directory文件系统目录或者磁盘分区。Note:如果…

云专网和云专线的区别_企业更适合互联网专线还是云专线联网?

随着云计算、移动应用及全球化的发展,纵横企业专网20年的MPLS专线弊端逐渐暴露,MPLS专线越来越难以满足企业的业务发展需求,而云计算、SaaS及移动应用具有天然的互联网属性。为什么“互联网”可以取代专线?互联网的持续发展,为取…

composer安装thinkphp

https://getcomposer.org/Composer-Setup.exe 正常安装composer以后,执行composer create-project topthink/thinkphp myapp安装thinkphp.转载于:https://www.cnblogs.com/lijurui/p/6362012.html

wordpress 插件_如何为您的Web应用程序创建WordPress插件

wordpress 插件by Feedier by Alkalab由Feedier通过Alkalab 如何为您的Web应用程序创建WordPress插件 (How to create a WordPress plugin for your web app) Today, we are going to see how to create a very simple WordPress plugin for any web app that needs to insert…

Android 软键盘相关问题

1. windowSoftInputMode属性的使用 Android使用windowSoftInputMode来控制Activity 的主窗口与包含屏幕软键盘的窗口的交互方式。 该属性的设置影响两个方面: 当 Activity 成为用户注意的焦点时软键盘的状态 — 隐藏还是可见。对 Activity 主窗口所做的调整 — 是否…

git php框架,如何用Git安装TP框架

本篇文章主要给大家介绍如何用Git安装Thinkphp框架。关于TP框架的安装,想必大家都知道较为常见的方式是通过composer安装tp框架。首先简单的给大家介绍下Git和TP框架。Git是一个开源的分布式版本控制系统,可以快速,高效地处理从小型到大型项目…

C#EF中,使用类似于SQL中的% 模糊查询

最近在做项目的时候需要使用到模糊查询,但是后台使用EF写的 而不是ADO或者是Dapper,如果是这样的话,我们就可以使用Sql语句直接进行模糊查询 现在我们需要在LINQ中使用类似于模糊查询 在EF中有两个方法:StartsWith()和EndWith() StartsWith(): 在转到定义时 我们可以看见,这个方…

android toast居中显示_Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明...

Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view)。1.简单用法Toast.makeText(midlet.getApplicationContext(), "用户名不能为空", Toast.LENG…

leetcode103. 二叉树的锯齿形层次遍历(bfs)

给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回…

LintCode Find the Weak Connected Component in the Directed Graph

原题链接在这里:http://www.lintcode.com/en/problem/find-the-weak-connected-component-in-the-directed-graph/ 题目: Find the number Weak Connected Component in the directed graph. Each node in the graph contains a label and a list of its…

简单了解tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。最终目标是打造一个高效、稳定、安全、易用的Web平台。1、基本的HTTP服务器特性1.处理静态文件,索引文件以及自动索引&#xff…

服务器创建多个dhcp服务_如何在15分钟内创建无服务器服务

服务器创建多个dhcp服务by Charlee Li通过李李 如何在15分钟内创建无服务器服务 (How to create a serverless service in 15 minutes) The word “serverless” has been popular for quite a while. When Amazon released the AWS Lambda service in 2015, many tools emerg…