- 浏览: 238527 次
- 性别:
- 来自: 皇城根儿下
文章分类
最新评论
-
悦悦余音:
楼主妙笔生花的文章解决了我的问题
hessian http response code:411 -
297434791:
返回对象有警告··返回String就没警告了,什么原因
hessian异常 -
lsjinpeng:
这个中文乱码怎么弄啊?
Kaptcha使用 -
zcs540061627:
<div class="quote_title ...
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 4479有一个项目使用了spring mvc,以前因为各种原因一两个月 ... -
spring mvc annotation-driven
2012-11-08 12:03 2370使用spring mvc时,我们会在配置文件里添加<mv ... -
hessian spring overloadEnabled
2012-11-06 17:40 2554用spring+hessian构建远程服务,遇到有的服务接口存 ... -
hessian http response code:411
2012-11-06 17:31 4679记录一个很久以前的遇到的一个关于hessian的问题。 用 ... -
htmlunit抓取小说网站JS加载内容
2012-10-31 13:25 6581http://www.17k.com/chapter/76 ... -
关于spring jdbcTemplate取得LAST_INSERT_ID
2012-03-16 18:38 6267spring的jdbctemplate提供的方案: Key ... -
spring mvc请求映射关系处理
2012-01-04 18:05 77921:看DispatcherServlet的初始化策略 pr ... -
spring mvc异常处理设置
2011-12-09 16:23 21675最近使用spring mvc开发一个web系统,发现在cont ... -
取得用户IP地址
2011-11-17 12:45 1259public static String getIpAdd ... -
泛型类的编译导致的错误
2011-10-25 16:16 1324这是前段时间遇到的一个问题,确定是因为泛型编译导致的,但是特别 ... -
spring-JavaMailSenderImpl
2011-07-12 16:11 2775使用spring的JavaMailSenderImpl J ... -
分库主键设计-Mysql
2011-07-06 18:21 3073常见的两种方案,遍布网络: 第一种: replace方案,m ... -
resin容器配置影响listener加载时机
2011-06-08 17:57 1541项目使用resin容器,发现resin容器启动时不加载list ... -
java求质数
2011-04-12 17:19 1365这两天JE求质数的帖子火了好几个哈 先介绍下质数的解释: 就 ... -
spring mvc异常设置
2011-03-17 18:10 15372spring mvc异常设置,做个记录 此段代码ZZ ... -
去除标签段的小代码
2011-03-14 15:45 1038private String removeImg(Str ... -
非注入方式取得spring注入bean的util类实现
2011-03-14 15:07 4737import org.springframework.be ... -
java.util.Set转换为Object[]
2011-03-10 14:49 1194Set<String> set = map.k ... -
java几种单例模式
2010-11-04 15:41 13401:饿汉 public class SingletonEx ...
相关推荐
赠送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-...
主要介绍了java验证码组件kaptcha使用方法,很不错的一个组件,可以在JAVA开发中使用,大家都试试吧
使用Kaptcha生成随机码的一个demo
kaptcha验证码使用
谷歌验证码使用工具——kaptcha-2.3.2的使用非常简单;
kaptcha验证码在使用上比其它的都方便,配置也相对简单,建议将本实例中的源码导入到Eclipse运行。其中主要有几处配置,一是在Web.xml文件里增加相应的配置,后是在Action里做相关的生成及校验工作。前台采用不刷新...
google kaptcha-2.3.2.jar验证码的jar包,google把生成验证码的操作基本的封装好了,使用起来很方便。
kaptcha-2.3.2.jar,由于google 访问不了;特此下载下来共同学们使用。
自用可行的验证码生成框架,下载好后解压进入到kaptcha-2.3.2/kaptcha-2.3.2,使用mvn install:install-file -Dfile=./kaptcha-2.3.2.jar -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3.2 ...
Java使用kaptcha实现验证码功能必备jar包,使用简单,web.xml中配置即用。 Java使用kaptcha实现验证码功能必备jar包,使用简单,web.xml中配置即用。
实现Google的Kaptcha验证码所需要的jar包和可以参考的源码包,使用的是导入jar包,需要看源码的时候参考source包
验证码在很多地方都会使用到,本分享是自己在做验证码功能的时候总结的一些经验,是基于谷歌kaptcha来做的,验证码的效果是,可以自定义字符范围,可以自定义背景效果,自定义字体等。总之,根据参数,都可以实现...
谷歌的验证码生成工具包,下载解压,使用命令mvn install:install-file -Dfile=(你的路径)/kaptcha-2.3.2.jar -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3.2 -Dpackaging=jar安装到...
JavaWeb开发可以拿来看看,了解一下谷歌验证码的使用
自己实现用idea实现了下google的kaptcha验证码,挺好用的,使用简单方便,希望能够帮助到大家
NULL 博文链接:https://royal2xiaose.iteye.com/blog/1601208
Google验证码插件jar包,直接解压存入本地仓库即可使用
用来生成验证码的工具类,已有完整的demo,按照样例来使用即可~
前端验证码,使用非常广泛,此验证码提供给大家希望能有所帮助
google的Kaptcha生成验证码,附件有jar资源和使用Demo 一款可以各种配置显示方式的验证码