说明: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. html单页面通过cdn引入element-ui组件样式不显示问题

    html单页面通过cdn引入element-ui组件样式不显示问题 必须先引入vue,再通过cdn引入element,否则element-ui组件与样式无效. <!DOCTYPE html> ...

  2. 824. Goat Latin - LeetCode

    Questioin 824. Goat Latin Solution 题目大意:根据要求翻译句子 思路:转换成单词数组,遍历数组,根据要求转换单词 Java实现: 用Java8的流实现,效率太低 pu ...

  3. java框架--快速入门

    spring快速入门    1.创建项目        1.1创建项目文件夹        1.2启动idea ->文件->打开->点击创建的项目文件夹        1.3右键创建 ...

  4. Spark在Local环境下的使用

    ①    将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux (cd /opt/module路径下)并解压缩 ②    修改spark-3.0.0-bin-hado ...

  5. SpringSecurity的 loginProcessingUrl为什么不能用

    前情提要: 我在做一个springsecurity动态鉴权的项目时, 据网上说配置了 loginProcessingUrl("/login1"); 以后 就可以自定义login的请 ...

  6. java和.net 双语言开发框架,开源的PaaS平台

    当下,我国国内的PaaS平台正在蓬勃发展,各式各样的PaaS平台层出不穷,但万变不离其宗,一个优秀的PaaS平台总有自己独树一帜或与众不同的地方.那么,首先我们要了解下什么是PaaS平台?PaaS是( ...

  7. Django+Vue+Nginx+Https域名代理访问

    Django+Vue使用Nginx实现Https域名的安全访问 前端 VUE 前端访问自身域名: https://demo.com,后序使用 Nginx 代理至后端 直接访问后端https:api会无 ...

  8. React简单教程-2-ts和组件参数

    前言 在上一章:React 简单教程-1-组件 我们知道了 React 的组件是什么,长什么样,用 js 和 HTML 小小体验了一下组件.在这一章,我们将使用 typescript(简称 ts) 来 ...

  9. 【python】tile函数简单介绍

    转:https://blog.csdn.net/april_newnew/article/details/44176059格式:tile(A,reps)* A:array_like* 输入的array ...

  10. 使用 .NET MAUI 创建移动应用——Get Start

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 1.IDE下载安装 如果你还没安装Visual Studio 2022 预览版 你 ...