栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java下使用kaptcha生成验证码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java下使用kaptcha生成验证码

kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小、颜色、显示的字符等等。下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验。

一、搭建测试环境

1.1、创建Web测试项目

  新建一个Web项目,并将kaptcha-2.3.2.jar放在项目的WEB-INF/lib目录下,如下图所示:

  

1.2、在web.xml文件配置生成验证码的KaptchaServlet

KaptchaServlet的详细配置如下:



 
 index.jsp
 
 
 
 
 
 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.jpg
 

1.3、显示生成的验证码

在页面index.jsp显示验证码

<%@ page language="java" pageEncoding="UTF-8"%>


 
 显示KaptchaServlet生成的验证码
 
 
 
 
 
  
 

运行效果如下图所示:

  

1.4、在服务器端验证提交的验证码

  用户在form表单中提交了验证码之后,我们会在服务器端进行验证,编写一个VerifyServlet,代码如下:


package me.gacl.web.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class VerifyServlet extends HttpServlet {

 
 public void doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {

 response.setContentType("text/html;charaset=utf-8");
 response.setHeader("pragma", "no-cache");
 response.setHeader("cache-control", "no-cache");
 PrintWriter out = null;
 try {
 //响应数据
 String resultData;
 //获取传过来的验证码
 String verifyCode = request.getParameter("verifyCode");
 System.out.println("verifyCode----"+verifyCode);
 if(verifyCode=="") {
 resultData = "N";
 }else {
 //获取kaptcha生成存放在session中的验证码
 String kaptchaValue = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
 //比较输入的验证码和实际生成的验证码是否相同
 if(kaptchaValue == null || kaptchaValue == ""||!verifyCode.equalsIgnoreCase(kaptchaValue)) {
  resultData = "N";
 }else {
  resultData = "Y";
 }
 }
 out = response.getWriter();
 out.write(resultData);
 out.flush();
 }catch(Exception e) {
 e.printStackTrace();
 }finally {
 if(out != null) {
 out.close();
 }
 }
 }
}

在web.xml中注册VerifyServlet


 
 VerifyServlet
 me.gacl.web.controller.VerifyServlet
 
 
 VerifyServlet
 /servlet/VerifyServlet
 

  运行结果如下:

  1、验证码不输入

  2、输入错误的验证码

  3、输入正确的验证码

使用kaptcha生成验证码感觉挺不错的,非常好用和方便,希望大家可以熟练掌握。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/150758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号