java实用类验证码代码_java_java实用验证码的实现代码,本文为大家分享了java实用验证 - phpStudy...

java实用验证码的实现代码

本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下

1、ValidCode

package validImg;

import java.awt.Color;

import java.io.IOException;

import java.util.Random;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.github.bingoohuang.patchca.color.ColorFactory;

import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService;

import com.github.bingoohuang.patchca.filter.predefined.CurvesRippleFilterFactory;

import com.github.bingoohuang.patchca.filter.predefined.DiffuseRippleFilterFactory;

import com.github.bingoohuang.patchca.filter.predefined.DoubleRippleFilterFactory;

import com.github.bingoohuang.patchca.filter.predefined.MarbleRippleFilterFactory;

import com.github.bingoohuang.patchca.filter.predefined.WobbleRippleFilterFactory;

import com.github.bingoohuang.patchca.utils.encoder.EncoderHelper;

import com.github.bingoohuang.patchca.word.RandomWordFactory;

public class ValidCode extends HttpServlet {

private static ConfigurableCaptchaService cs = new ConfigurableCaptchaService();

private static Random random = new Random();

static {

// cs.setColorFactory(new SingleColorFactory(new Color(25, 60, 170)));

cs.setColorFactory(new ColorFactory() {

@Override

public Color getColor(int x) {

int[] c = new int[3];

int i = random.nextInt(c.length);

for (int fi = 0; fi < c.length; fi++) {

if (fi == i) {

c[fi] = random.nextInt(71);

} else {

c[fi] = random.nextInt(256);

}

}

return new Color(c[0], c[1], c[2]);

}

});

RandomWordFactory wf = new RandomWordFactory();

wf.setCharacters("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ");

wf.setMaxLength(4);

wf.setMinLength(4);

cs.setWordFactory(wf);

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

switch (random.nextInt(5)) {

case 0:

cs.setFilterFactory(new CurvesRippleFilterFactory(cs

.getColorFactory()));

break;

case 1:

cs.setFilterFactory(new MarbleRippleFilterFactory());

break;

case 2:

cs.setFilterFactory(new DoubleRippleFilterFactory());

break;

case 3:

cs.setFilterFactory(new WobbleRippleFilterFactory());

break;

case 4:

cs.setFilterFactory(new DiffuseRippleFilterFactory());

break;

}

HttpSession session = request.getSession(false);

if (session == null) {

session = request.getSession();

}

setResponseHeaders(response);

String token = EncoderHelper.getChallangeAndWriteImage(cs, "png",

response.getOutputStream());

session.setAttribute("validCode", token);

System.out.println("当前的SessionID=" + session.getId() + ",验证码= ," + token);

}

protected void setResponseHeaders(HttpServletResponse response) {

response.setContentType("image/png");

response.setHeader("Cache-Control", "no-cache, no-store");

response.setHeader("Pragma", "no-cache");

long time = System.currentTimeMillis();

response.setDateHeader("Last-Modified", time);

response.setDateHeader("Date", time);

response.setDateHeader("Expires", time);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

}

}

2.XML代码

com.github.bingoohuang

patchca

0.0.1

ValidCode

validImg.ValidCode

ValidCode

/validImg.jpg

以上就是本文的全部内容,希望对大家的学习有所帮助。相关阅读:

Fedora作为办公环境的一些基本配置介绍

div模拟滚动条当div宽度小于18时滚动条不滚动

C++遗传算法类文件实例分析

php中switch与ifelse的效率区别及适用情况分析

Win7系统电脑有杂音怎么办?Win7系统声音有杂音的解决方法

js光标定位文本框回车表单提交问题的解决方法

Android利用BitMap获得图片像素数据的方法

rhel6.3如何使用yum安装Apache

在浏览器中打开或关闭JavaScript的方法

Android开发学习路线图

js键盘上下左右键怎么触发function(实例讲解)

c#中SqlHelper封装SqlDataReader的方法

jQuery实现的文字hover颜色渐变效果实例

c#深拷贝文件夹示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值