前言

Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能。Happy Captcha完全遵循Apache 2.0开源许可协议,你可以自由使用该软件,如您在使用Happy Captcha时发现软件的任何缺陷,欢迎随时与我联系。

Happy Capthca的源代码已托管到Github和Gitee,你可以访问下面的链接获取更多信息:

  • Github: https://github.com/ramostear/Happy-Captcha
  • Gitee: https://gitee.com/ramostear/Happy-Capthca

如果你想快速体验Happy Captcha的功能,可通过下列方式获取Happy-Captcha依赖:

Maven

<dependency><groupId>com.ramostear</groupId><artifactId>Happy-Captcha</artifactId><version>1.0.1</version>
</dependency>

Gradle

implementation 'com.ramostear:Happy-Captcha:1.0.1'

一、展示

Happy Captcha提供了图片和动画两种展现形式,验证码内容包括中文(收录3500个常用汉字),阿拉伯数字(09),中文数字(零至九),中文大写数字(零至玖),数字与字母混合(09-az-AZ),数字与小写字母混合(09-az),数字与大写字母混合(09-AZ),纯小写字母,纯大写字母,大小写字母混合以及运算表达式(阿拉伯数字运算表达式和中文运算表达式)等12种类型。

CaptchaType IMAGE ANIMATION
CHINESE
NUMBER
NUMBER_ZH_CN
NUMBER_ZH_HK
DEFAULT
WORD
WORD_LOWER
WORD_UPPER
WORD_NUMBER_LOWER
WORD_NUMBER_UPPER
ARITHMETIC
ARITHMETIC_ZH

二、安装

如果你的项目使用的是Maven进行依赖管理,你只需向pom.xml文件添加下面的配置即可:

<dependency><groupId>com.ramostear</groupId><artifactId>Happy-Captcha</artifactId><version>1.0.1</version>
</dependency>

Gradle用户则可以通过引入如下的配置获取Happy Captcha:

implementation 'com.ramostear:Happy-Captcha:1.0.1'

三、使用

HappyCaptcha在设计时力求过程的简洁,在默认情况下,你只需要书写一行代码即可生成漂亮的验证码图片。下面是HappyCaptcha的使用示例:

@Controller
public class HappyCaptchaController{@GetMapping("/captcha")public void happyCaptcha(HttpServletRequest request,HttpServletResponse response){HappyCaptcha.require(request,response).build().finish();}
}

对于HappyCaptcha而言,只有request和response是必须提供的参数,其余参数都可以使用缺省值。

在默认情况下,HappyCaptcha生成的验证码以图片形式展现,内容为09-az-A~Z的字符随机组合,字符长度为5,图片宽度为160,高度为50,字体为微软雅黑。

四、校验

用户输入的验证码校验是一个必不可少的环节,HappyCaptcha内置了对用户输入的验证码校验功能。下面是验证码校验示例:

@Controller
public class CaptchaController{@PostMapping("/verify")public String verify(String code,HttpServletRequest request){//Verification Captchaboolean flag = HappyCaptcha.verification(request,code,true);if(flag){//Other operations...}}
}

如果在校验过程中需要忽略字母大小写,第三个参数设置为true,如果需要强校验,则设置为false。

五、清理

当验证码被使用后,你可以通过HappyCaptcha类种的remove()方法将Session中存放的验证码清理掉。下面是清理验证码的代码示例:

@Controller
public class HappyCaptchaController{@GetMapping("/remove/captcha")public void removeCaptcha(HttpServletRequest request){HappyCaptcha.remove(request);   }
}

除HappyCaptcha提供的默认方法,你也可以在需要操作的地方,手动清理Session中存放的验证码,HappyCaptcha验证码的Key为“happy-captcha”。

六、高级特性

通过前面的内容,我们已经了解到如何快熟的安装并使用HappyCaptcha生成验证码。在接下的内容当中,将介绍HappyCaptcha更详细的内容。

6.1 style()

HappyCaptcha提供两种验证码展现形式:图片和动画。默认的展现形式为图片,可以通过style()方法修改默认值。style()方法的值由CaptchaStyle类提供,可供选择的值有IMG和ANIM。style()使用示例如下:

HappyCaptcha.require(request,response).style(CaptchaStyle.ANIM).build().finish();

若展现形式为图片,则style(CaptchaStyle.IMG)可以省略。

6.2 type()

HappyCaptcha一共提供了12种验证码类型,你可以自由选择其中的一种类型作为验证码的内容形式。默认情况下,验证码使用数字和大小写字母的混合形式。验证码类型值由CaptchaType类提供,内容如下表:

说明
DEFAULT 数字、大小写字母随机组合
ARITHMETIC 加、减、乘算数运算表达式
ARITHMETIC_ZH 中文简体加、减、乘算数运算表达式描述
CHINESE 常见汉字(3500个)随机组合
NUMBER 0~9数字随机组合
NUMBER_ZH_CN 中文数字(零至九)随机组合
NUMBER_ZH_HK 中文繁体数字(零至玖)随机组合
WORD 大小写字母随机组合
WORD_LOWER 小写字母随机组合
WORD_UPPER 大写字母随机组合
WORD_NUMBER_LOWER 数字、小写字母随机组合
WORD_NUMBER_UPPER 数字、大写字母随机组合

type()使用示例如下:

HappyCaptcha.require(request,response).type(CaptchaType.CHINESE).build().finish();

6.3 length()

length()方法用于设置验证码字符长度,默认情况下缺省值为5。你可以通过以下方式对验证码字符长度进行控制:

HappyCaptcha.require(request,response).length(6).build().finish();

6.4 width()

width()方法可对验证码图片的宽度进行调节,默认的缺省值为160。使用方式如下:

HappyCaptcha.require(request,response).width(180).build().finish();

6.5 height()

同width()方法一样,height()方法用于设置验证码图片的高度,默认缺省值为50。使用方式如下:

HappyCaptcha.require(request,response).height(60).build().finish();

6.6 font()

如果你想改变验证码的字体,可通过font()方法进行设置,默认缺省字体为微软雅黑。HappyCaptcha内置了四种字体,可以通过Fonts类进行调用。

HappyCaptcha.require(request,response).font(Fonts.getInstance().zhFont()).build().finish();

6.7 链式调用

上面介绍了如何修改单个配置,HappyCaptcha支持链式调用,可同时对验证码的多个属性进行设置。例如:

@GetMapping("/captcha")
public void captcha(HttpServletRequest req,HttpServletResponse res){HappyCaptcha.require(req,res).style(CaptchaStyle.ANIM)          //设置展现样式为动画.type(CaptchaType.CHINESE)           //设置验证码内容为汉字.length(6)                          //设置字符长度为6.width(220)                           //设置动画宽度为220.height(80)                         //设置动画高度为80.font(Fonts.getInstance().zhFont())  //设置汉字的字体.build().finish();                 //生成并输出验证码
}

若验证码的类型为ARITHMETIC或ARITHMETIC_ZH,可省略验证码长度的设置。算术运算表达式的长度为5。

Happy Captcha v 1.0.1使用教程相关推荐

  1. 【XBOX360】Xbox360 RGH3.0 刷机教程

    Xbox360 RGH3.0 刷机教程 Xbox360 RGH3.0 介绍 RGH 3.0 是最新的Xbox360自制系统刷机固件,可以不需要安装脉冲芯片,使用Xbox360自带的南桥芯片,就可以让X ...

  2. OpenGL ES 2.0 for Android教程(六):进入第三维

    OpenGL ES 2 第六章:进入第三维 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES ...

  3. OpenGL ES 2.0 for Android教程(九):添加触摸反馈

    OpenGL ES 2 第九章:添加触摸反馈 文章传送门 OpenGL ES 2.0 for Android教程(一) OpenGL ES 2.0 for Android教程(二) OpenGL ES ...

  4. Quartus2_13.0初级使用教程

    Quartus2_13.0新手使用教程 此次教程以Altera公司的FPGA芯片cyclone IV EP4CE10F17C8N为例,所以使用主要开发软件是其公司配套的quartus2_13.0,其中 ...

  5. Lumion8.0中文版安装教程(附软件下载)

    Lumion是一款可以实时的3D可视化工具,用来制作电影和静帧作品,涉及到的领域包含建筑.规划和设计: Lumion的强大在于它可以提供优秀的图像,并将快速和高效工作流程结合在一起,为使用者节省时间. ...

  6. centos 下安装mysql,linux(Centos7)下安装mysql8.0.18的教程图解

    1 获取安装资源包 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 提取码: rsif 2 在/usr/local目录下新建目录mysql8 3 将下载的资源包(my ...

  7. stella forum v 2.0 的两款主题样式

    stella forum v 2.0 的开发工作已经快结束啦,现在我正在加紧努力,想在本周内完成,因为下个星期我可能会不在学校. 下面公开一下我在做的两款主题,第一个是以前v1 版用的经典论坛的样式, ...

  8. V5SHOP网店系统V 8.0 仿京东模板

    V5SHOP网店系统V 8.0 仿京东模板 V5SHOP网店系统V 8.0  仿京东模板发布[UTF-8] 语言编码:UTF-8 风格作者:威博网络 版权所属:威博网络 风格转换:原创 下载 (166 ...

  9. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

最新文章

  1. 李宏毅笔记机器学习(四)——Regression——Demo
  2. 周志华等人提出可微XGBoost算法sGBM,速度提升、准确率更胜一筹
  3. jfreechart的使用
  4. POJ 2389 Bull Math(大数乘大数)
  5. db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
  6. python字典下标是什么_python列表、元组、字典
  7. SAP Spartacus cms service取完page信息后的回调callback
  8. shell 删除了hdfs 文件_从零开始学大数据(三) Shell操作HDFS文件系统-中
  9. 微型计算机原理及其应用彭楚武答案第三章,微机原理及其应用_第1章.ppt
  10. adb 重命名_adb中常用的命令
  11. Shell 脚本案例实战 [4]
  12. codevs1380 没有上司的舞会
  13. ResultSet用法集锦
  14. 移动端web轮播图插件swiper,功能很强大
  15. CompletableFuture异步任务的简单使用
  16. Java爬虫入门(一)
  17. Java 垃圾回收机制原理
  18. Google's BBR拥塞控制算法模型解析
  19. 恶意软件分析实战15-UPack脱壳Lab18-5
  20. 【雅思大作文考官范文】——第八篇:recycling essay(垃圾回收)

热门文章

  1. XPATH元素定位详解
  2. 大数据时代下的个性化服务
  3. Android UI开发——Material Design界面设计风格
  4. WordSR 在多个Word文件中批量查找替换
  5. 所有的快捷方式打不开怎么办?
  6. P72 检查约束与默认值约束
  7. 《深度学习入门P72》显示mnist图像
  8. ICASSP 2022 | 用于多模态情感识别的KS-Transformer
  9. 微博投放最新秘籍来袭 看这些品牌如何利用冬奥会引爆社交圈?
  10. 什么方法应对3D打印常见的表面粗糙的问题