说明:Kaptcha是一个很实用的验证码生成工具,它可以生成各种样式的验证码,因为它是可以配置的 目录: 一 实现步骤 二 实例 A 编写jsp页面 B 配置web.xml C 验证输入正确与否。

一 实现步骤 
 1 下载Kaptcha-2.3.jar 
 2 复制jar包,放于项目的lib包下 
 3 编写页面 
 4 配置web.xml 
 5 生成与验证简单代码
 二 实例 
 A 编写jsp页面 < body> < form action="LoginAction?method=login"> 这是servlet的写法,使用框架另论 用户名: < input type="text" name="username"/> 密码: < input type="text" name="password"/> 验证码 < img src='/randomcode.jpg' onclick="this.src='randomcode.jpg'"> 看不清请点击图片刷新 请输入验证码:< input type="text" name="inputCode"/> < input type="submit"> < /from> < /body> 
 B 配置 web.xml(使用时可直接复制)
 < servlet> < servlet-name>Kaptcha< /servlet-name> < servlet-class> com.google.code.kaptcha.servlet.KaptchaServlet< /servlet-class> 更多配置如下(name值不变,value值可替换) 
 a 配置验证码图片是否显示边框
 < init-param> 
 < description>图片边框,合法值:yes,no< /description> 
 < param-name>kaptcha.border< /param-name> 
 < param-value>yes< /param-value> 
 < /init-param>
 b 配置边框颜色 
 < init-param> 
 < description>边框颜色,合法值:black,white,blue等颜色单词< /description> 
 < param-name>kaptcha.border.color< /param-name>
 < param-value>black< /param-value> 
 < /init-param> 
 c 配置边框厚度 
< init-param>
< description>边框厚度,合法值: >0 < /description>
< param-name>kaptcha.border.thickness< /param-name>
< param-value>1< /param-value>
< /init-param>
d 配置验证码图片宽度
< init-param>
< description>验证码图片宽度,合法值: >0 < /description>
< param-name>kaptcha.image.width< /param-name>
< param-value>200< /param-value>
< /init-param>
e 配置验证码图片高度 < init-param> < description>验证码图片高度,合法值: >0 < /description> < param-name>kaptcha.image.height< /param-name> < param-value>50< /param-value> < /init-param> f 配置图片的实现类 < init-param> < description>图片的实现类< /description> < param-name>kaptcha.producer.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultKaptcha< /param-value> < /init-param> g 配置文本的实现类 < init-param> < description>文本的实现类< /description> < param-name>kaptcha.textproducer.impl< /param-name> < param-value>com.google.code.kaptcha.text.impl.DefaultTextCreator< /param-value> < /init-param> h 配置验证码值包含字母数字配置 < init-param> < description>验证码包含的数据,合法值:字母、数字等< /description> < param-name>kaptcha.textproducer.char.string< /param-name> < param-value>abcde12345ABCDE< /param-value> < /init-param> h 配置验证码位数 < init-param> < description>验证码位数 >0 < /description> < param-name>kaptcha.textproducer.char.length< /param-name> < param-value>5< /param-value> < /init-param> i 配置验证码字体 < init-param> < description>验证码字体(将需要的字体名称写入value,逗号隔开),合法值:Arial,Courier等< /description> < param-name>kaptcha.textproducer.font.names< /param-name> < param-value>Arial,Courier< /param-value> < /init-param> j 配置验证码字体大小 < init-param> < description>验证码字体大小 40px< /description> < param-name>kaptcha.textproducer.font.size< /param-name> < param-value>40< /param-value> < /init-param> k 配置验证码字体颜色 < init-param> < description>验证码颜色,合法值:black,white,blue等< /description> < param-name>kaptcha.textproducer.font.color< /param-name> < param-value>black< /param-value> < /init-param> l 配置验证码间隔 < init-param> < description>验证码数据间隔 2等< /description> < param-name>kaptcha.textproducer.char.space< /param-name> < param-value>2< /param-value> < /init-param> m 配置验证码干扰实现类 < init-param> < description>干扰实现类< /description> < param-name>kaptcha.noise.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultNoise< /param-value> < /init-param> n 配置干扰颜色 < init-param> < description>干扰线颜色,合法值:r,g,b或者white,black,blue< /description> < param-name>kaptcha.noise.color< /param-name> < param-value>black< /param-value> < /init-param> o 配置验证码图片样式 < init-param> < description>验证码图片样式: 水纹 com.google.code.kaptcha.impl.WaterRipple 鱼眼 com.google.code.kaptcha.impl.FishEyeGimpy 阴影 com.google.code.kaptcha.impl.ShadowGimpy < /description> < param-name>kaptcha.obscurificator.impl< /param-name> < param-value>com.google.code.kaptcha.impl.WaterRipple< /param-value> < /init-param> p 配置验证码背景实现类 < init-param> < description>背景实现类< /description> < param-name>kaptcha.background.impl< /param-name> < param-value>com.google.code.kaptcha.impl.DefaultBackground< /param-value> < /init-param> q 验证码在session中存放的key键配置 < init-param> < description>session中存放的key键< /description> < param-name>kaptcha.session.key< /param-name> < param-value>KAPTCHA_SESSION_KEY< /param-value> < /init-param> < /servlet> < servlet-mapping> < servlet-name>Kaptcha< /servlet-name> < url-pattern>/randomcode.jpg< /url-pattern> < !-- 此处为生成的验证码图片 --> < servlet-mapping> 
 C 登录验证 //后台获取生成的验证码: String verify=(String)request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY); //接收用户输入的验证码: String userVerify = request.getParameter("此处是输入验证码的input标签name属性值"); //判断 if(verify.equals(userVerify)){ 开始判断用户名密码是否正确 等操作 }else{ request.setAttribute("verifyError","验证码输入有误!") 返回登录页(getDispatch....或者struts2等) }

利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改)的更多相关文章

  1. atitit 短信验证码的源码实现  .docx

    atitit 短信验证码的源码实现  .docx 参考 Atitit usrQBM1603短信验证码规范1 主要方法1 源码实现1 参考 Atitit usrQBM1603短信验证码规范 主要方法 L ...

  2. maven下载的jar包可以查看源码

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  3. 迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法

    迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法 详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com/ 用户在开发板上运 ...

  4. 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...

  5. 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...

  6. Android Studio使用Mob来获取手机验证码的源码

    本文来自:CSDN 感谢作者:qq_35812301(其实就是我的号!) 查看原文:http://blog.csdn.net/qq_35812301/article/details/79150775 ...

  7. eclipse导入了jar查看不了源码解决方法

    当导入源码的时候ctrl+左键的时候,还是查看不了源码.问题一直困扰我很久,百度了很多方法.现在分享下解决的方法. 经过简单整理,如下: 第一步:下载JAD . jad官方地址的官方下载地址是: ht ...

  8. idea中如何查看jar包中的源码(非maven),以oracle的ojdbc为例

    文章目录 背景 解决 背景 工作需要查看oracle的部分源码(ojdbc.jar),maven并没有这个依赖,单纯的导入jar包无法查看. 解决 将ojdbc.jar 安装到本地仓库,maven从本 ...

  9. 曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)

    背景 大家知道,jdk安装的目录下,一般会有个src.zip包,这个包基本对应了rt.jar这个包.rt.jar这个包里面,就放了jdk中,jdk采用java实现的那部分类库代码,比如java.lan ...

随机推荐

  1. 1.11 Linux的主要应用领域有哪些?

    与Windows操作系统软件一样,Linux 也是一个操作系统软件.但与Windows不同的是,Linux是一套开放源代码程序的,并可以自由传播的类UNIX操作系统软件,随着信息技术的更新变化,Lin ...

  2. 命令工具 -(1)Vim 文本编辑器学习

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 提起 Linux,大家都听说过这句话:Linux 一切皆文件. 配置一个服务就是在修改它 ...

  3. vue实例vm的方法

    import wbMessage from './wb-message' let Constructor = Vue.extend(wbMessage) let vm = new Constructo ...

  4. Apache Shiro 漏洞汇总

    Apache Shiro 漏洞汇总 以下是我个人通过收集信息收集起来的一些Apache Shiro漏洞信息,这些漏洞的poc都是公开的,利用起来也是比较简单 Apache Shiro是什么东西: Ap ...

  5. 我的总结常用的js知识

    nvm nvm是node的包管理工具.在不同的项目下使用不同的node版本.下载地址 https://github.com/coreybutler/nvm-windows/releasesnvm in ...

  6. HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验

    AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...

  7. JS基础二--字面量和变量

       /*       字面量,都是一些不可改变的值,       比如:1 2 3 4 5       字面量都是可以直接使用,但是我们一般不会直接使用字面量.       变量,变量可以用来保存字 ...

  8. 论文解读(SUBLIME)《Towards Unsupervised Deep Graph Structure Learning》

    论文信息 论文标题:Towards Unsupervised Deep Graph Structure Learning论文作者:Yixin Liu, Yu Zheng, Daokun Zhang, ...

  9. Prometheus 四种metric类型

    Prometheus的4种metrics(指标)类型: Counter Gauge Histogram Summary 四种指标类型的数据对象都是数字,如果要监控文本类的信息只能通过指标名称或者 la ...

  10. Egg上层框架CabloyJS是如何输出SQL语句日志的?

    背景 在Egg开发实践中,经常会遇到一个问题:如何查看刚刚执行过的Egg组装的原生SQL语句呢? 1. 现有方案 可以直接在项目的config配置文件中添加MySQL配置debug: true.这会启 ...