使用Kaptcha这个验证码框架用起来,比自己写简单

首先设置maven项目:

        <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

然后配置WEB-INF下的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><servlet-mapping><servlet-name>kaptchaDemo</servlet-name><url-pattern>/kaptcha</url-pattern></servlet-mapping><servlet><servlet-name>kaptchaDemo</servlet-name><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class><init-param><param-name>kaptcha.border</param-name><param-value>no</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.color</param-name><param-value>red</param-value></init-param><init-param><param-name>kaptcha.image.width</param-name><param-value>80</param-value></init-param><init-param><param-name>kaptcha.image.height</param-name><param-value>30</param-value></init-param><init-param><param-name>kaptcha.textproducer.char.string</param-name><param-value>0123456789</param-value></init-param><init-param><param-name>kaptcha.textproducer.char.length</param-name><param-value>4</param-value></init-param><init-param><param-name>kaptcha.textproducer.char.space</param-name><param-value>3</param-value></init-param><init-param><param-name>kaptcha.textproducer.font.size</param-name><param-value>24</param-value></init-param>
<!--        <init-param>-->
<!--            <param-name>kaptcha.noise.impl</param-name>-->
<!--            <param-value>com.google.code.kaptcha.impl.NoNoise</param-value>-->
<!--        </init-param>--></servlet></web-app>

其中对应的jsp页面如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><base href="<%=basePath%>"><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>

这里src请求的是kaptcha的url。这里这个框架里面实现了一个Servlet,通过配置文件的方式,对某些属性进行设置(这里不用说了,肯定是反射)

程序运行截图如下:

输入错误时,依旧是这个界面,但输入正确后!

下面是关于他的验证方面的代码:

LoginServlet.java

import com.google.code.kaptcha.Constants;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(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);}}
}

Java笔记-使用Kaptcha验证码框架相关推荐

  1. 《Java从入门到放弃》框架入门篇:使用kaptcha验证码框架

    使用kaptcha框架实现的验证码效果如下图 使用该验证码框架的步骤如下: 一.引入 kaptcha-2.3.2.jar(点击下载) 文件. 二.在web.xml中配置验证码Servlet. < ...

  2. Java笔记-WEB算术验证码

    这里和图片的字符串验证码差不多,只是要保留一个结果就可以了! 程序运行截图如下: 输入错误后,还是这个界面,但输入正确后: 程序截图如下: maven项目,源码如下: LoginServlet.jav ...

  3. Java笔记-腾讯验证码平台使用实例

    主要就是官方的这个图: 前端调用接口,得到腾讯发过来的几个数据,前端把这几个数据给后端,后端拿到这些数据后传给腾讯,让其判断是否正常,以及其他属性. 程序运行截图如下: 点击登录后,拖动正确进行跳转, ...

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

    java相关:kaptcha验证码使用方法详解 发布于 2020-6-7| 复制链接 摘记: 本文为大家分享了kaptcha验证码的使用方法,供大家参考,具体内容如下1.首先在pom.xml文件中导入 ...

  5. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载

    主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...

  6. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  7. 11.3-全栈Java笔记:线程的生命周期

    一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态 ...

  8. kaptcha验证码实现,配合spring boot使用

    一.kaptcha介绍 Kaptcha是谷歌放在github上的一个验证码jar包,我们可以简单配置属性实现验证码的验证功能. kaptcha参数设置如下所示: Constant 描述 默认值 kap ...

  9. kaptcha验证码组件使用简介

    kaptcha验证码组件使用简介 Kaptcha是一个基于SimpleCaptcha的验证码开源项目. 官网地址:http://code.google.com/p/kaptcha/ kaptcha的使 ...

最新文章

  1. 旅游资源及线路管理系统
  2. github船舰新文件夹_mac下搭建hexo+github
  3. 反射调用private或internal构造函数
  4. 一台电脑同时启动多个java_如何在一台同时登录多个微信?
  5. linux恢复终端默认配置,以gnome-terminal为例,修改gnome3 的默认配置,
  6. DyFPN:浙大华为诺亚西湖大学等提出用于目标检测的动态特征金字塔,减少40%的FLOPs!...
  7. button执行onclick函数_千万别再一直无脑使用ES6的箭头函数了,它虽然很有用但并不是万能的...
  8. python实现屏幕录制_JavaScript 屏幕录制 API 学习
  9. 企业管理系统前后端分离架构设计 系列一 权限模型篇
  10. android gps导航省电,具有省电功能的gps导航系统及其省电方法
  11. python 谷歌翻译
  12. JavaScript 全栈工程师培训教程(来自阮一峰)
  13. 有符号与无符号,长整型与短整型
  14. Blue Coat 拓展安全行业最大的加密流量管理协作组织
  15. 单独使用Quartz 2.1.7 时Job属性Spring无法注入
  16. 电脑ctrl和ALT经常键自动按住--答案是QQ2012的Bug
  17. Altium Designer--如何快速查看PCB网络布线
  18. 国企生存感悟(必读篇)
  19. 说说 Google AdSense、百度联盟和搜狗联盟
  20. 合并多个PPT文件到一个文件中的方法

热门文章

  1. IE 6 特有的条件注释详情
  2. maven 构建 springmvc + spring security 权限控制示例
  3. 如何做好会员用户画像分析,比消费者本身更懂自己?
  4. 好的可视化报告一目了然,丑的可视化报表一文不值
  5. 程序员如果想安身立命 什么情况????
  6. 对于判断飞鸽传书2007来说是不够的
  7. 『飞鸽』百度悄然进军客户端领域
  8. 『转』度百死去飞秋一个BUG引发的血案
  9. 用VC写Assembly代码(4)
  10. 初学者是学习 C 语言还是 C++ 好?各有何利弊?