- 浏览: 240532 次
- 性别:
- 来自: 皇城根儿下
文章分类
最新评论
-
悦悦余音:
楼主妙笔生花的文章解决了我的问题
hessian http response code:411 -
297434791:
返回对象有警告··返回String就没警告了,什么原因
hessian异常 -
lsjinpeng:
这个中文乱码怎么弄啊?
Kaptcha使用 -
zcs540061627:
wangjian95 写道我也遇到了这个问题
2012-7-1 ...
hessian异常 -
wangjian95:
哈哈,哥刚试了,数组是可以的,嘎嘎
hessian异常
简单的装备起来很简单,网上一大把,就不说了。
但是许多时候因为产品啊,领导啊等等什么的需求就出来了,怎么去让它适应需求?
1.kaptcha可配置项:
2.kaptcha提供了很好的可扩展性,而且扩展的方式也很简单,只需要实现相关接口,然后把我们自定义的对象添加到配置项里面就可以了,如Producer,WordRenderer,GimpyEngine,BackgroundProducer,NoiseProducer,TextProducer这些接口,我们可以随意的扩展。
3.关于对生成的验证码进行加噪点,一些干扰因素,kaptcha也提供了许多现成的filter供选择,它自己默认的干扰因素生成类WaterRipple就是由RippleFilter,WaterFilter两个filter组成的,这些filter实现了各种对文本样式变化处理,位于com.jhlabs.image package下。
自己实现一个WordRenderer
但是许多时候因为产品啊,领导啊等等什么的需求就出来了,怎么去让它适应需求?
1.kaptcha可配置项:
kaptcha.border 是否有边框 默认为true 我们可以自己设置yes,no kaptcha.border.color 边框颜色 默认为Color.BLACK kaptcha.border.thickness 边框粗细度 默认为1 kaptcha.producer.impl 验证码生成器 默认为DefaultKaptcha kaptcha.textproducer.impl 验证码文本生成器 默认为DefaultTextCreator kaptcha.textproducer.char.string 验证码文本字符内容范围 默认为abcde2345678gfynmnpwx kaptcha.textproducer.char.length 验证码文本字符长度 默认为5 kaptcha.textproducer.font.names 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) kaptcha.textproducer.font.size 验证码文本字符大小 默认为40 kaptcha.textproducer.font.color 验证码文本字符颜色 默认为Color.BLACK kaptcha.textproducer.char.space 验证码文本字符间距 默认为2 kaptcha.noise.impl 验证码噪点生成对象 默认为DefaultNoise kaptcha.noise.color 验证码噪点颜色 默认为Color.BLACK kaptcha.obscurificator.impl 验证码样式引擎 默认为WaterRipple kaptcha.word.impl 验证码文本字符渲染 默认为DefaultWordRenderer kaptcha.background.impl 验证码背景生成器 默认为DefaultBackground kaptcha.background.clear.from 验证码背景颜色渐进 默认为Color.LIGHT_GRAY kaptcha.background.clear.to 验证码背景颜色渐进 默认为Color.WHITE kaptcha.image.width 验证码图片宽度 默认为200 kaptcha.image.height 验证码图片高度 默认为50
2.kaptcha提供了很好的可扩展性,而且扩展的方式也很简单,只需要实现相关接口,然后把我们自定义的对象添加到配置项里面就可以了,如Producer,WordRenderer,GimpyEngine,BackgroundProducer,NoiseProducer,TextProducer这些接口,我们可以随意的扩展。
3.关于对生成的验证码进行加噪点,一些干扰因素,kaptcha也提供了许多现成的filter供选择,它自己默认的干扰因素生成类WaterRipple就是由RippleFilter,WaterFilter两个filter组成的,这些filter实现了各种对文本样式变化处理,位于com.jhlabs.image package下。
自己实现一个WordRenderer
public class ZHWordRenderer extends Configurable implements WordRenderer{ public ZHWordRenderer() { } public BufferedImage renderWord(String word, int width, int height) { int fontSize = getConfig().getTextProducerFontSize(); // 这个地方我们自定义了验证码文本字符样式,虽然是可以配置的,但是字体展示都粗体,我们希望不是粗体就只有自定义这个渲染类了 String paramName = "kaptcha.textproducer.font.names"; String paramValue = (String)getConfig().getProperties().get(paramName); String fontNames[] = paramValue.split(","); Font fonts[] = new Font[fontNames.length]; for(int i = 0; i < fontNames.length; i++){ fonts[i] = new Font(fontNames[i], Font.ITALIC, fontSize); } java.awt.Color color = getConfig().getTextProducerFontColor(); int charSpace = getConfig().getTextProducerCharSpace(); BufferedImage image = new BufferedImage(width, height, 2); Graphics2D g2D = image.createGraphics(); g2D.setColor(color); RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); hints.add(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)); g2D.setRenderingHints(hints); java.awt.font.FontRenderContext frc = g2D.getFontRenderContext(); Random random = new Random(); int startPosY = (height - fontSize) / 5 + fontSize; char wordChars[] = word.toCharArray(); Font chosenFonts[] = new Font[wordChars.length]; int charWidths[] = new int[wordChars.length]; int widthNeeded = 0; for(int i = 0; i < wordChars.length; i++) { chosenFonts[i] = fonts[random.nextInt(fonts.length)]; char charToDraw[] = { wordChars[i] }; GlyphVector gv = chosenFonts[i].createGlyphVector(frc, charToDraw); charWidths[i] = (int)gv.getVisualBounds().getWidth(); if(i > 0) widthNeeded += 2; widthNeeded += charWidths[i]; } int startPosX = (width - widthNeeded) / 2; for(int i = 0; i < wordChars.length; i++) { g2D.setFont(chosenFonts[i]); char charToDraw[] = { wordChars[i] }; g2D.drawChars(charToDraw, 0, charToDraw.length, startPosX, startPosY); startPosX = startPosX + charWidths[i] + charSpace; } return image; } }
发表评论
-
xmemcached 一致性hash
2012-12-11 18:22 0应用中使用xmemcached做为memcached的客户端, ... -
spring mvc 内存泄露
2012-12-11 16:30 4558有一个项目使用了spring mvc,以前因为各种原因一两个月 ... -
spring mvc annotation-driven
2012-11-08 12:03 2407使用spring mvc时,我们会在配置文件里添加<mv ... -
hessian spring overloadEnabled
2012-11-06 17:40 2601用spring+hessian构建远程服务,遇到有的服务接口存 ... -
hessian http response code:411
2012-11-06 17:31 4756记录一个很久以前的遇到的一个关于hessian的问题。 用 ... -
htmlunit抓取小说网站JS加载内容
2012-10-31 13:25 6628http://www.17k.com/chapter/76 ... -
关于spring jdbcTemplate取得LAST_INSERT_ID
2012-03-16 18:38 6320spring的jdbctemplate提供的方案: Key ... -
spring mvc请求映射关系处理
2012-01-04 18:05 78541:看DispatcherServlet的初始化策略 pr ... -
spring mvc异常处理设置
2011-12-09 16:23 21806最近使用spring mvc开发一个web系统,发现在cont ... -
取得用户IP地址
2011-11-17 12:45 1304public static String getIpAdd ... -
泛型类的编译导致的错误
2011-10-25 16:16 1354这是前段时间遇到的一个问题,确定是因为泛型编译导致的,但是特别 ... -
spring-JavaMailSenderImpl
2011-07-12 16:11 2813使用spring的JavaMailSenderImpl J ... -
分库主键设计-Mysql
2011-07-06 18:21 3123常见的两种方案,遍布网络: 第一种: replace方案,m ... -
resin容器配置影响listener加载时机
2011-06-08 17:57 1575项目使用resin容器,发现resin容器启动时不加载list ... -
java求质数
2011-04-12 17:19 1400这两天JE求质数的帖子火了好几个哈 先介绍下质数的解释: 就 ... -
spring mvc异常设置
2011-03-17 18:10 15415spring mvc异常设置,做个记录 此段代码ZZ ... -
去除标签段的小代码
2011-03-14 15:45 1064private String removeImg(Str ... -
非注入方式取得spring注入bean的util类实现
2011-03-14 15:07 4784import org.springframework.be ... -
java.util.Set转换为Object[]
2011-03-10 14:49 1231Set<String> set = map.k ... -
java几种单例模式
2010-11-04 15:41 13981:饿汉 public class SingletonEx ...
相关推荐
下面将详细介绍Kaptcha的安装与使用过程。 1. **Kaptcha的安装** - Kaptcha提供了jar包,如`kaptcha-2.3.2-jdk14.jar`和`kaptcha-2.3.2.jar`,它们包含了Kaptcha的核心类和依赖。将这两个文件添加到你的Java项目的...
赠送jar包:kaptcha-2.3.2.jar; 赠送原API文档:kaptcha-2.3.2-javadoc.jar; 赠送源代码:kaptcha-2.3.2-sources.jar; 赠送Maven依赖信息文件:kaptcha-2.3.2.pom; 包含翻译后的API文档:kaptcha-2.3.2-javadoc-...
下面我们将详细介绍Kaptcha的使用方法。 首先,要在项目中使用Kaptcha,你需要将`kaptcha-2.3.jar`包导入到你的项目类路径中。这个JAR文件包含了Kaptcha的核心组件和依赖,使你能够快速地集成验证码功能。 接下来...
使用Kaptcha生成随机码的一个demo
谷歌的kaptcha库是其中一款广泛使用的开源验证码生成器,尤其以其2.3.2版本备受推崇。本文将深入探讨kaptcha-2.3.2.jar的核心功能、使用方法以及如何通过配置参数来定制验证码的显示效果。 一、kaptcha概述 ...
在Controller中,使用kaptcha生成验证码: ```java @Controller public class CaptchaController { @Autowired private Producer captchaProducer; @GetMapping("/captcha") public void captcha...
【谷歌验证码使用工具——kaptcha-2.3.2】是一款基于Java的开源验证码生成库,主要用于网站的身份验证,防止自动化的机器人或者恶意攻击者进行非法操作。kaptcha这个名字是"CAPTCHA"(Completely Automated Public ...
6. **示例代码**:文件可能提供了一些简单的Java代码片段,展示如何快速开始使用kaptcha。 总之,kaptcha是一个强大的验证码生成工具,对于Java开发者来说,它提供了一种便捷的方式来保护他们的应用免受自动化攻击...
在本文中,我们将深入探讨Kaptcha的特性、工作原理以及如何在实际项目中集成和使用。 Kaptcha的核心功能在于生成难以由机器识别的图像验证码,这些图像通常包含随机的字母或数字组合,用户在提交表单前需要正确输入...
### Kaptcha验证码使用详解 #### 一、Kaptcha简介 Kaptcha是一款强大的验证码生成工具,由Java编写而成,被广泛应用于Web应用中。其最大的特点在于高度可定制性,允许开发者根据需求调整验证码的样式与内容。这...
本文将深入探讨Kaptcha 2.3.2版本,解析其核心概念、使用方法以及实际应用场景。 1. **Kaptcha简介** Kaptcha是由Google开源的一个Java验证码生成框架,它的设计目标是提供一个简单易用的API,帮助开发者快速创建...
在实际项目中,使用`kaptcha-2.3.jar`时,你需要: 1. 将`kaptcha-2.3.jar`添加到项目的类路径中。 2. 配置`web.xml`,声明`KaptchaServlet`并设置其URL映射。 3. 创建一个`KaptchaProducer`实例,配置验证码的生成...
6. **README.txt**:这是一个重要的文档,通常会提供插件的基本介绍、安装指南、使用示例以及注意事项等内容,帮助开发者快速理解和使用kaptcha。 7. **kaptcha.war**:这是一个Web应用归档文件,用于部署在Servlet...
在Web开发中,`kaptcha` 是一个广泛使用的Java库,用于生成复杂的图像验证码。`kaptcha-2.3.2` 是该库的一个版本,提供了丰富的功能和定制选项。 `kaptcha` 库的核心是生成器(Generator),它负责创建独一无二且...
在本案例中,我们将探讨如何使用`Kaptcha`插件来生成动态验证码。`Kaptcha`是一个开源Java库,专为生成验证码图像而设计,具有高度可配置性,可以轻松集成到Web应用中。 首先,我们需要了解`Kaptcha`插件的基本用法...
在实际使用中,你可能需要将Kaptcha集成到Spring、Struts或其他Web框架中。这通常涉及到在配置文件中声明一个Kaptcha bean,并在需要的地方注入这个bean以生成验证码。例如,在Spring中,可以在`applicationContext....
javadoc目录下则是kaptcha库的API文档,通过阅读这些文档,开发者可以了解类、方法和接口的具体使用方式。src目录包含源代码,对于想要自定义验证码样式或者深入理解其工作原理的开发者来说,这是一个宝贵的资源。...
这个"kaptcha验证码小程序"是基于kaptcha开发的一个简单的示例项目,旨在帮助初学者了解和学习如何使用kaptcha来创建验证码。 kaptcha的核心特性包括: 1. **可定制性**:kaptcha提供了一系列参数供开发者调整...
本文将深入探讨kaptcha.jar这一验证码资源包,揭示其工作原理、功能特性以及在实际应用中的使用方法。 kaptcha.jar是一个专门用于生成验证码的Java库,它为开发者提供了简单易用的API,以生成各种复杂度的图像...