JAVA 代码生成。SimpleCaptcha

去官方网站下载Jar包:

http://simplecaptcha.sourceforge.net/

Javadocs:

http://simplecaptcha.sourceforge.net/javadocs/index.html

自己书写工具类:

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package com.sino.gxh.util;

import java.awt.Color;

import java.awt.Font;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import nl.captcha.Captcha;

import nl.captcha.gimpy.FishEyeGimpyRenderer;

import nl.captcha.gimpy.RippleGimpyRenderer;

import nl.captcha.noise.CurvedLineNoiseProducer;

import nl.captcha.servlet.CaptchaServletUtil;

import nl.captcha.text.producer.DefaultTextProducer;

import nl.captcha.text.renderer.ColoredEdgesWordRenderer;

import nl.captcha.text.renderer.WordRenderer;

/**

*

* @author Administrator

*/

public class CodeMaker {

//验证码内容

private char[] numberChar = new char[]{‘a‘, ‘b‘, ‘c‘, ‘d‘,

‘e‘, ‘f‘, ‘g‘, ‘h‘, ‘j‘, ‘k‘, ‘m‘, ‘n‘, ‘p‘, ‘q‘, ‘r‘, ‘s‘, ‘t‘, ‘u‘, ‘v‘, ‘w‘, ‘x‘, ‘y‘, ‘z‘};

//验证码数量

private int _CodeCount = 4;

//验证码宽度

private int _width = 110;

//验证码高度

private int _height = 50;

//验证码颜色

private Color _CodeColor = Color.BLACK;

//使用字体名字

private String _FontName = "System";

//使用字体类型

private int _FontType = Font.BOLD;

//使用字体大小

private int _FontSize = 40;

//干扰线颜色

private Color _NoiseColor = Color.BLACK;

//干扰线大小

private int _NoiseSize = 2;

//干扰线条数

private int _NoiseCount = 1;

//验证图形码时是否开启大写和小写

private boolean whetherOpenBigOrSmall = false;

//验证码储存

private String CodeMemory;

//获取验证码

public void getCode(HttpServletResponse resp) {

Captcha.Builder captcha = new Captcha.Builder(_width, _height);

List<Font> fontList = new ArrayList<Font>();

List<Color> colorList = new ArrayList<Color>();

colorList.add(_CodeColor);

fontList.add(new Font(_FontName, _FontType, _FontSize));

WordRenderer dwr = new ColoredEdgesWordRenderer(colorList, fontList);

captcha.addText(new DefaultTextProducer(_CodeCount, numberChar), dwr);

for (int i = 0; i < _NoiseCount; i++) {

captcha.addNoise(new CurvedLineNoiseProducer(_NoiseColor, _NoiseSize));

}

captcha.gimp(new FishEyeGimpyRenderer(new Color(0, 0, 0, 0), new Color(0, 0, 0, 0)));

captcha.gimp(new RippleGimpyRenderer());

captcha.build();

Captcha captchas = captcha.build();

CaptchaServletUtil.writeImage(resp, captchas.getImage());

CodeMemory = captchas.getAnswer();

}

//比較验证码

public boolean compareCode(String Code) {

if (null == Code || "".equals(Code)) {

return false;

} else {

boolean bz;

System.out.println(whetherOpenBigOrSmall);

if (whetherOpenBigOrSmall) {

bz = CodeMemory.equals(Code);

} else {

bz = CodeMemory.equalsIgnoreCase(Code);

}

return bz;

}

}

public boolean isWhetherOpenBigOrSmall() {

return whetherOpenBigOrSmall;

}

public void setWhetherOpenBigOrSmall(boolean whetherOpenBigOrSmall) {

this.whetherOpenBigOrSmall = whetherOpenBigOrSmall;

}

public char[] getNumberChar() {

return numberChar;

}

public void setNumberChar(char[] numberChar) {

this.numberChar = numberChar;

}

public int getCodeCount() {

return _CodeCount;

}

public void setCodeCount(int _CodeCount) {

this._CodeCount = _CodeCount;

}

public int getWidth() {

return _width;

}

public void setWidth(int _width) {

this._width = _width;

}

public int getHeight() {

return _height;

}

public void setHeight(int _height) {

this._height = _height;

}

public Color getCodeColor() {

return _CodeColor;

}

public void setCodeColor(Color _CodeColor) {

this._CodeColor = _CodeColor;

}

public String getFontName() {

return _FontName;

}

public void setFontName(String _FontName) {

this._FontName = _FontName;

}

public int getFontType() {

return _FontType;

}

public void setFontType(int _FontType) {

this._FontType = _FontType;

}

public int getFontSize() {

return _FontSize;

}

public void setFontSize(int _FontSize) {

this._FontSize = _FontSize;

}

public Color getNoiseColor() {

return _NoiseColor;

}

public void setNoiseColor(Color _NoiseColor) {

this._NoiseColor = _NoiseColor;

}

public int getNoiseSize() {

return _NoiseSize;

}

public void setNoiseSize(int _NoiseSize) {

this._NoiseSize = _NoiseSize;

}

public int getNoiseCount() {

return _NoiseCount;

}

public void setNoiseCount(int _NoiseCount) {

this._NoiseCount = _NoiseCount;

}

}

调用和比較:

@RequestMapping(value = "/imagesanpeng", method = RequestMethod.GET)

protected void imagesanpeng(HttpServletRequest req, HttpServletResponse resp)

throws Exception {

CodeMaker c = new CodeMaker();

c.getCode(resp);

req.getSession().setAttribute("code", c);

}

@RequestMapping(value = "/txmbj", method = RequestMethod.POST)

protected void txmbj(HttpServletRequest req, HttpServletResponse resp,

@RequestParam(value = "txyzm", required = true) String txyzm)

throws Exception {

CodeMaker c = (CodeMaker) req.getSession().getAttribute("code");

c.setWhetherOpenBigOrSmall(true);

resp.getWriter().print(c.compareCode(txyzm));

resp.getWriter().flush();

resp.getWriter().close();

//        CodeMaker c = new CodeMaker();

//        c.setWhetherOpenBigOrSmall(true);

//        resp.getWriter().print(c.compareCode(req, resp, txyzm));

//        resp.getWriter().flush();

//        resp.getWriter().close();

}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-09-28 22:08:21

JAVA 代码生成。SimpleCaptcha的相关文章

PowerDesigner 反转Java代码生成类图

PowerDesigner 反转Java代码生成类图 首先当然是新建一个OOM. 单击Language->Reverse Engineer Java- 不同的版本,菜单可能不一样,我的是12.5 到了这步当然是选择要反转的java 类了.不过试了蛮久,没找到文件夹导入的方法. 最后点击OK就行了.以下是效果图. 分享到: 

Java 代码生成

了解更多请访问 http://blog.csdn.net/lpy3654321/article/details/31841573 Java web 代码生成 Java Web版,代码生成 项目设想,在项目开发中,我们的开发人员大多数时间都在重复开发 同样的关键字,同样的语法. 但就在这样的情况下还会经常发生语法的错误,而且每个开发人员的代码风格不同. 其他人员阅读困难.新人的学习成本也会增加. 这些问题会浪费很多时间,也会影响到开发人员的心情,和程序质量. 由这些问题我想的解决方法是 <代码生成

利用java代码生成二维码

第一步:准备依赖包:core-3.0.0.jar (下载地址,扫二维码,哈哈)和一张准备放在二维码中间的图片 第二步:打开Eclipse,新建一个web工程,起好工程名 在src中先键一个包,然后将下面两个java文件拷贝进src去 BufferedImageLuminanceSource.java package com.simplelife; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import ja

通过java代码生成XML格式文件

import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import javax.swing.JOptionPane; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; /** * 本类测试生成XML格式的文件 * @author guanshun * */

JAVA代码生成验证码

验证码的作用: 因为你的WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是身份欺骗_它通过在客户端脚本写入一些代码,然后利用其,客户机在网站,论坛反复登陆,或者攻击者创建一个HTML窗体,其窗体如果包含了你注册窗体或发帖窗体等相同的字段,然后利用"http-post"传输数据到服务器,服务器会执行相应的创建帐户,提交垃圾数据等操作,如果服务器本身不能有效验证并拒绝此非法操作,它会很严重耗费其系统资源,降低网站性能甚至使程序崩溃.而现在流行的判断访问WEB程序是合法用户还是恶

java代码生成二维码

一.使用3个jar包. zxing-core-1.7.jar,zxing-j2se-1.7.jar,qrgen-1.2.jar 下载地址:  http://download.csdn.net/detail/jiazhipeng12/8442665 public class Main { /** * 生成一个二维码 * @param args * @throws UnsupportedEncodingException */ public static void main(String[] arg

java代码生成二维码图片

需要使用到的jar包:QRCode.jar 这里提供一个下载:点此下载QRCode.jar 因为代码比较简单.就不多啰嗦,直接帖代码了,拷过去就能直接用. TwoDimensionCode.java: 1 import java.awt.Color; 2 import java.awt.Graphics2D; 3 import java.awt.image.BufferedImage; 4 import java.io.File; 5 import java.io.IOException; 6

JAVA代码生成工具

https://download.csdn.net/download/qq_32028315/10615017 https://blog.csdn.net/qq_769932247/article/details/84060836 https://download.csdn.net/download/m0_37609579/10227239 原文地址:https://www.cnblogs.com/qiu18359243869/p/12099577.html

Java虚拟机9:Java类加载机制

http://www.cnblogs.com/xrq730/p/4844915.html 前言 我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述 了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用.而虚拟机如何加载这些.class文件?.class文件的信息进入到虚拟机后会发生什么变 化?这些都是本文要讲的内容,文章将会讲解加载类加载的每个阶段Java虚拟机需要做什么事(加粗标红). 类使用的7个阶段 类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期