热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java验证码——kaptcha的使用配置及样式

本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。

一.配置kaptcha的jar包

  技术分享图片

  pom.xml配置:

<-- 目前只有2.3.2版本-->

<dependency>
<groupId>com.github.pengglegroupId>
<artifactId>kaptchaartifactId>
<version>2.3.2version>
dependency>


 二.kaptcha样式配置

  web.xml:配置kaptcha的servlet及部分样式

<servlet>
<servlet-name>Kaptchaservlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServletservlet-class>


<init-param>
<param-name>kaptcha.borderparam-name>

<param-value>noparam-value>
init-param>

<init-param>
<param-name>kaptcha.textproducer.font.colorparam-name>
<param-value>redparam-value>
init-param>

<init-param>
<param-name>kaptcha.image.widthparam-name>
<param-value>135param-value>
init-param>

<init-param>
<param-name>kaptcha.textProducer.char.stringparam-name>
<param-value>ACDEFHKPRSTWX345679param-value>
init-param>

<init-param>
<param-name>kaptcha.image.heightparam-name>
<param-value>50param-value>
init-param>

<init-param>
<param-name>kaptcha.textproducer.font.sizeparam-name>
<param-value>43param-value>
init-param>

<init-param>
<param-name>kaptcha.noise.colorparam-name>
<param-value>blackparam-value>
init-param>

<init-param>
<param-name>kaptcha.textproducer.char.lengthparam-name>
<param-value>4param-value>
init-param>

<init-param>
<param-name>kaptcha.textproducer.font.namesparam-name>
<param-value>Ariaparam-value>
init-param>
servlet>
<servlet-mapping>
<servlet-name>Kaptchaservlet-name>
<url-pattern>/Kaptchaurl-pattern>
servlet-mapping>

 

  kaptcha详细参数:

技术分享图片

三.后端验证

  从前端接收验证码并验证是否正确:

import javax.servlet.http.HttpServletRequest;
public class CodeUtil {
public static boolean checkVerifyCode(HttpServletRequest request) {
String verifyCodeExpected
= (String) request.getSession()
.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
String verifyCodeActual
= HttpServletRequestUtil.getString(request, "verifyCodeActual");
if (verifyCodeActual == null || !verifyCodeActual.equals(verifyCodeExpected)) {
return false;
}
return true;
}
}

 ·  前端部分js代码:

.....

var verifyCodeActual=$(‘#j_captcha‘).val();
if(!verifyCodeActual){
$.toast(
"请输出验证码");
return;
}

formData.append(
‘verifyCodeActual‘,verifyCodeActual);
$ajax({
url:registerShopUrl,
type:
‘POST‘,
data:formData,
contentType:
false,
processData:
false,
cacche:
false,
success:
function(data){
if(data.success){
$.toast(
"提交成功");
}
else{
$.toast(
"提交失败:"+data.errMsg);
}
$(
‘#captcha_img‘).click();
}
})

 


推荐阅读
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 回顾2014年,我经历了多个重要项目和学习阶段,取得了一定的成绩。新的一年即将到来,希望能在更多项目实践中继续成长。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 落樱3D v0.5是一款在Android平台上发布的3D美少女格斗游戏,本次更新带来了多项新功能和优化。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 探讨了在有序数列中实现多种查询和修改操作的高效数据结构设计,主要使用线段树与平衡树(Treap)结合的方法。 ... [详细]
  • 深入理解T-SQL中的NULL与三值逻辑
    本文探讨了SQL Server中的三值逻辑,解释了谓词计算结果为TRUE、FALSE和UNKNOWN的规则。通过具体示例,详细说明了如何正确处理NULL值,并探讨了在不同约束条件下的行为。 ... [详细]
  • Redis Hash 数据结构详解
    本文详细介绍了 Redis 中的 Hash 数据类型及其常用命令。Hash 类型用于存储键值对集合,支持多种操作如插入、查询、更新和删除字段值。此外,文章还探讨了 Hash 类型在实际业务场景中的应用,并提供了优化建议。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 本文介绍了 Winter-1-C A + B II 问题的详细解题思路和测试数据。该问题要求计算两个大整数的和,并输出结果。我们将深入探讨如何处理大整数运算,确保在给定的时间和内存限制下正确求解。 ... [详细]
author-avatar
安小辰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有