这里使用编码的方式调用kaptcha实现验证码功能

程序运行截图如下:

输入错误后,还是这个界面,但输入正确后:

maven如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>kaptchaDemo2</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency></dependencies></project>

程序结构如下:

源码如下:

LoginServlet.java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(value = "/login")
public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String vailCode = request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY).toString().toLowerCase();String inCode = request.getParameter("inCode").toLowerCase();if (inCode.equals(vailCode)) {response.sendRedirect("success.jsp");} else {String url = request.getHeader("Referer");response.sendRedirect(url);}}
}

MyServlet.java

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name>
</web-app>

web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name>
</web-app>

index.jsp

<%--Created by IntelliJ IDEA.User: cffDate: 2020/2/1Time: 9:38To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>kaptchaDemo</title><style type="text/css">.code_a{color: #0000ff;font-size: 12px;text-decoration: none;cursor: pointer;}#imgCode{cursor: pointer;}</style><script type="text/javascript">function changeCode(){var imgCode = document.getElementById("imgCode");imgCode.src = "kaptcha?"+Math.random();}</script>
</head><body>
<form action="login" method="post"><label>验证码:</label><input type="text" id="inCode" name="inCode" /><img src="kaptcha" align="center" id="imgCode" onclick="changeCode()" /><a class="code_a" onclick="changeCode()">换一张</a><br /><input type="submit" value="登录"/>
</form>
</body>
</html>

success.jsp

<%--Created by IntelliJ IDEA.User: cffDate: 2020/2/1Time: 9:49To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>SUCCESS</h1>
</body>
</html>

Java笔记-编码方式创建kaptcha验证码相关推荐

  1. java字符编码方式总结

    java字符编码方式总结一.概要在JAVA应用程序特别是基于WEB的程序中,经常遇到字符的编码问题.为了防止出现乱码,首先需要了解JAVA是如何处理字符的,这样就可以有目的地在输入/输出环节中增加必要 ...

  2. Java的编码方式、单个char类型存储大部分中文字符、getBytes()、new String()的转换流程

    目录 一 编码种类 1.1 ASCII码 1.2 ISO8859-1编码 1.3 GBK编码 1.4 Unicode字符集 1.4.1 UTF-8编码 1.4.2 UTF-16编码 1.4.3 UTF ...

  3. java ascii 编码方式,Java 字符编码 ASCII、Unicode和UTF-8

    1 ASCII码 统一规定英语字符与二进制位之间的关系.ASCII码一共规定了128个字符的编码.例如,空格"SPACE"是32(二进制00100000),大写字母A是65(二进制 ...

  4. java ascii 编码方式_JAVA 的ASCII字符编码一览表

    JAVA 的ASCII字符编码一览表 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 0000 0000 0 00 NUL ␀ 空字符(Null) 0000 0001 1 01 SOH ...

  5. java解析odt,如何用java以编程方式创建odt文件?

    How can I create an odt (LibreOffice/OpenOffice Writer) file with Java programmatically? A "hel ...

  6. 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档

    近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...

  7. eclipse如何查看当前项目的编码方式+java编码方式总结

    我们写代码有时候会出现这种情况:在自己电脑上运行的很正常,字符显示很完美,把自己的代码给别人或者换台机器运行,就会出现乱码的现象,这是为什么呢?都是编码方式在作祟,不同的机器或java项目可能使用的默 ...

  8. JAVA通过SSL证书创建MS AD账户及设置密码

    近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工 ...

  9. Java笔记-使用Kaptcha验证码框架

    使用Kaptcha这个验证码框架用起来,比自己写简单 首先设置maven项目: <dependency><groupId>com.github.penggle</grou ...

最新文章

  1. 新网站优化基本流程不可忽视!
  2. 一个历时五天的 Bug
  3. CSS3属性——text
  4. android修改电量颜色,android状态栏电池颜色?
  5. POJ-1664 放苹果 动态规划思想解组合数学
  6. ubuntu等linux系统给windows共享文件
  7. 2020年9月25日-01-项目启动(团队分工)+带宽,网络速度的计算
  8. jQuery: jscolor - color picker
  9. java基础—集合 Vcetor 基本方法演示
  10. sqlalchemy Column Elements
  11. ECNU 3263 丽娃河的狼人传说(差分约束)
  12. java实例属性_Java 静态属性与实例属性的初始化
  13. java consumed_Java设计模式—生产者消费者模式(阻塞队列实现)
  14. 一位寒门博士的致谢,女友回复...
  15. 爬虫_淘宝(selenium)
  16. sai笔记1-sai安装
  17. 学计算机的要起一个群名,吸引人的学生群名字
  18. java 判断是否为男女_java:生成中文姓名(区分男女)
  19. Java案例:因数平方和
  20. WebUI自动化框架 - 数据驱动(ddt、paramunittest)

热门文章

  1. 怎样定义和引用一维数组,二维数组
  2. Gentoo Linux: /var/db/pkg 这个文件夹很重要![转]推荐阅读
  3. C/C++编程笔记:输入输出的优化,你还为思路正确却TLE而烦恼吗?
  4. 战斗系统的伪原创工具
  5. 昨天飞鸽传书可能是因为太累了
  6. Windows函数错误处理
  7. 刻奇·缩减·博客——当今中国博客文化之批判
  8. 某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!
  9. 学不动的前端人,该如何跟上前端技术的发展
  10. 第二节:ES7 新增的 includes 特性