这里使用编码的方式调用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. 他是阿里中台之父,从一线员工做到CTO:有商业意识的技术人,才有未来!
  2. 京东618:六年历程步步为营,京东商城的安全保卫战
  3. 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
  4. python入门神器_爬虫 (一) 神器准备篇
  5. 转载,关于缓存穿透、缓存并发、缓存雪崩那些事
  6. Silverlight 2 搜索照片
  7. 杭电2539点球大战
  8. “S“ is the acronym for Super
  9. 语义分割——语义分割数据集的笔记
  10. excel日期改成字符类型_EXCEL的一些基础知识
  11. echarts制作3D锥形金字塔
  12. LaTeX 页面大小和页边距
  13. QPushButton设置背景图片变换(素材四连图)
  14. 系统发育树的美化~Figtree(图文教程)
  15. Springboot使用Curator 集成zk
  16. iphone4电信版怎么写号_电信iphone4如何剪卡以及写号
  17. Hybrid Trajectory Planning for Autonomous Driving in On-Road Dynamic Scenarios文章解读
  18. android触屏对焦,Android相机对焦模式
  19. 数字的原码,补码,反码,~和‘-’的区别。取反与负号的区别。
  20. 从零开始学IDA逆向(百度云)

热门文章

  1. 加载exe的PE信息并输出相关PE信息的一段c++代码
  2. NAND FLASH Controler for IMX31
  3. .Net Remoting中Remote Server的Port占用/释放问题
  4. 程序员,想搞事情?进来,就一句话的事!
  5. 数字化赋能智能生产,一套数据决策分析体系,完美解决生产管理
  6. 用程序解决所有文件的格式转换
  7. 实话!程序员大都不喜欢拉帮结派
  8. 《红色警戒3》新单位详细介绍:忍者
  9. 玩转keybd_event
  10. 12306否认60万用户数据泄露