java相关:kaptcha验证码使用方法详解

发布于 2020-6-7|

复制链接

摘记: 本文为大家分享了kaptcha验证码的使用方法,供大家参考,具体内容如下1.首先在pom.xml文件中导入Maven依赖

```jfx

com.github.penggle

kaptcha

..

本文为大家分享了kaptcha验证码的使用方法,供大家参考,具体内容如下1.首先在pom.xml文件中导入Maven依赖

```jfx

com.github.penggle

kaptcha

2.3.2

```

2.在web.xml文件中配置一个servlet

```xml

Kaptcha

com.google.code.kaptcha.servlet.KaptchaServlet

kaptcha.border

no

kaptcha.textproducer.font.color

red

kaptcha.image.width

135

kaptcha.textproducer.char.string

ACDEFHKPRSTWX345679

kaptcha.image.height

50

kaptcha.textproducer.font.size

43

kaptcha.noise.color

black

kaptcha.textproducer.char.length

4

kaptcha.textproducer.font.names

Arial

Kaptcha

/Kaptcha

```

3.页面代码如下

```xhtml

验证码

```

向后端提交数据

```javascript

var verifyCodeActual = $('#j_captcha').val();

if (!verifyCodeActual) {

$.toast('请输入验证码!');

return;

}

formData.append("verifyCodeActual", verifyCodeActual);

```

4.js交互

```javascript

function changeVerifyCode(img) {

img.src = "../Kaptcha?" + Math.floor(Math.random() * 100);

}

```

5.后端验证

```java

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.equalsIgnoreCase(verifyCodeExpected)) {

return false;

}

return true;

}

}

```

```java

import javax.servlet.http.HttpServletRequest;

public class HttpServletRequestUtil {

public static int getInt(HttpServletRequest request, String name) {

try {

return Integer.decode(request.getParameter(name));

} catch (Exception e) {

return -1;

}

}

public static long getLong(HttpServletRequest request, String name) {

try {

return Long.valueOf(request.getParameter(name));

} catch (Exception e) {

return -1;

}

}

public static Double getDouble(HttpServletRequest request, String name) {

try {

return Double.valueOf(request.getParameter(name));

} catch (Exception e) {

return -1d;

}

}

public static Boolean getBoolean(HttpServletRequest request, String name) {

try {

return Boolean.valueOf(request.getParameter(name));

} catch (Exception e) {

return false;

}

}

public static String getString(HttpServletRequest request, String name) {

try {

String result = request.getParameter(name);

if (result != null) {

result = result.trim();

}

if ("".equals(result))

result = null;

return result;

} catch (Exception e) {

return null;

}

}

}

```

java kaptcha_java相关:kaptcha验证码使用方法详解相关推荐

  1. java读写json格式的文件方法详解.txt,并批量存储进redis

    捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...

  2. java 复合_Java复合语句的使用方法详解

    与 C 语言及其他语言相同, Java 语言的复合语句是以整个块区为单位的语句,所以又称为块语句.下面我们来看看有关复合语句的使用方法和实例. 复合语句由开括号"{"开始,闭括号& ...

  3. java+getactionmap_Struts2 使用OGNL遍历map方法详解

    一.Action中的代码:MapAction.java package com.zx.demo.action; import java.util.ArrayList; import java.util ...

  4. java 方法体 out 参数_Java方法详解

    方法详解 1.方法的定义 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合,包含于类或对象中:在程序中被创建,在其它地方被引用 设计方法的原则:要遵守原子性,即一个 ...

  5. Java String API 常用的String方法详解

    标题 String类的特性 Java中String类的构造方法 String类的 intern() 注意还跟jdk有关 如何保证变量S指向的是字符串常量池中的数据呢? 关于String中 new St ...

  6. Java语言求笛卡尔积,Java笛卡尔积算法原理与实现方法详解

    本文实例讲述了Java笛卡尔积算法原理与实现方法.分享给大家供大家参考,具体如下: 笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列. ...

  7. Java去除字符串中空格的方法详解

    昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. 代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空 ...

  8. java post 发送_Java发送post方法详解

    总结一下java使用http发送post的方法: 1.post请求用于发送json 格式的参数: /** * post请求(用于请求json格式的参数) * * @param url 地址 * @pa ...

  9. java字符串去重_java字符串去重方法详解,字符串如何去重?

    在Java面试的时候,你一定遇到过java字符串去重这个面试题,那么这个题目你是怎样解答的呢?下面一起来看看相关答案吧. 具体的问题: 输入一串带重复字符的字符串,输出第一次出现的字符的字符串. 例: ...

最新文章

  1. java- ASM 字节码操控框架
  2. 批量修改表的所有者对象
  3. oracle为什么要创建数据库,手动创建Oracle数据库之前因后果
  4. Android之三大图片缓存原理、特性对比
  5. 论文浅尝 - AAAI2020 | 基于知识图谱进行对话目标规划的开放域对话生成技术
  6. python两个中文队列比较_具有两个优先级的优先级队列Python
  7. 华为2019上半年业绩发布:华为手机海外销量已恢复禁令前80%的水平
  8. 【题解】CF#960 H-Santa's Gift
  9. java matching_LeetCode第[44]题(Java):Wildcard Matching
  10. OSG-基本几何图形
  11. 按键精灵手机助手之入门篇
  12. PCB多层板设计总结
  13. 2021-泛微OA V8 SQL注入漏洞
  14. 小米手机google play下载应用一直显示等待中的解决办法
  15. USYD悉尼大学DATA1002 OralExam 复习(可能会考的内容)
  16. 开源解决方案搭建统一日志平台
  17. python名称由来_python的词源_python的由来_同根词_同源词_趣词词源字典
  18. iTunes C盘占用空间太大 解决方案
  19. 百度网盘秒传链接生成及提取方法
  20. StateFlow用法汇总篇

热门文章

  1. python的序列化和反序列化
  2. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法
  3. Burpsuite学习(2)
  4. JS和OC交互的简单应用
  5. 关于Oracle回收站的一些操作
  6. 我的2015羊年总结
  7. javascript对下拉列表框(select)的操作
  8. Ceph 时钟偏移故障处理
  9. java命令详解 java -D
  10. 使用NSKeyedArchiver归档