利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改)
说明: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生成图片验证码(以下源码可以直接复制并自定义修改)的更多相关文章
- atitit 短信验证码的源码实现 .docx
atitit 短信验证码的源码实现 .docx 参考 Atitit usrQBM1603短信验证码规范1 主要方法1 源码实现1 参考 Atitit usrQBM1603短信验证码规范 主要方法 L ...
- maven下载的jar包可以查看源码
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...
- 迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法
迅为4412开发板QtE系统源码-屏幕横竖屏切换修改方法 详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com/ 用户在开发板上运 ...
- 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...
- 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于python语言的tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...
- Android Studio使用Mob来获取手机验证码的源码
本文来自:CSDN 感谢作者:qq_35812301(其实就是我的号!) 查看原文:http://blog.csdn.net/qq_35812301/article/details/79150775 ...
- eclipse导入了jar查看不了源码解决方法
当导入源码的时候ctrl+左键的时候,还是查看不了源码.问题一直困扰我很久,百度了很多方法.现在分享下解决的方法. 经过简单整理,如下: 第一步:下载JAD . jad官方地址的官方下载地址是: ht ...
- idea中如何查看jar包中的源码(非maven),以oracle的ojdbc为例
文章目录 背景 解决 背景 工作需要查看oracle的部分源码(ojdbc.jar),maven并没有这个依赖,单纯的导入jar包无法查看. 解决 将ojdbc.jar 安装到本地仓库,maven从本 ...
- 曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)
背景 大家知道,jdk安装的目录下,一般会有个src.zip包,这个包基本对应了rt.jar这个包.rt.jar这个包里面,就放了jdk中,jdk采用java实现的那部分类库代码,比如java.lan ...
随机推荐
- 1 Mybatis动态SQL
Mybatis动态SQL 1. 注解开发 我们也可以使用注解的形式来进行开发,用注解来替换掉xml. 使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从 ...
- 购物车+ATM项目(图形化)
项目下载 项目目录结构 运行效果 seetings.py import logging import logging.config # 定义日志输出格式 开始 import os standard_f ...
- 万字长文深度剖析 RocketMQ 设计原理
幸福的烦恼 张大胖最近是又喜又忧,喜的是业务量发展猛增,忧的是由于业务量猛增,一些原来不是问题的问题变成了大问题,比如说新会员注册吧,原来注册成功只要发个短信就行了,但随着业务的发展,现在注册成功也需 ...
- mysql Bad handshake
由于 Java 程序访问 MySQL 时,MySQL 抛出 Bad handshake 错误,导致接口抛错,然后在 MySQL 配置文件新增 skip_ssl 配置(忽略 SSL 密钥和证书文件),重 ...
- Docker学习重点(7)~DockerFile
一.DockerFile DockerFile是用来构建docker镜像的文件,可以理解为命令参数脚本! 1.构建步骤: 编写一个dockerfile文件 docker build 构建成为一个镜像 ...
- 一个 "开箱即用" 个人博客全栈系统项目!vue+node+express+mysql+sequlize+uniapp
" MG'Blog " 一个 "开箱即用" 个人博客全栈系统项目! 探索本项目的源码 » 前台预览 · 管理端预览 v1.0.2 小程序预览 v1.0.2 介绍 ...
- 06vim --- gcc库的制作及使用
VIM 命令模式下的操作 保存退出 快捷键 操作 ZZ 保存退出 代码格式化 快捷键 操作 gg=G 代码的格式化 光标移动(键盘上下左右键课代替) 快捷键 操作 h 光标左移 j 光标下移 k 光标 ...
- 使用docker创建和运行跨平台的容器化的mssql数据库
我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库.如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用dock ...
- Python工程:ImportError: attempted relative import with no known parent package
Python工程:ImportError: attempted relative import with no known parent package 解决方法: 1.对每个目录创建的时候都选择创建 ...
- 一文带你搞懂 SSR
欲语还休,欲语还休,却道天凉好个秋 ---- <丑奴儿·书博山道中壁>辛弃疾 什么是 SSR ShadowsocksR?阴阳师?FGO? Server-side rendering (SS ...