图片验证码 java代码_Java实现图片验证码具体代码

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

6f3fca690dd6baa142ceba7f9f41935d.png

网页显示效果:

5c94ccc6a3f0993dbae53ab6b39a6a9c.png

index.jsp使用两种方式强制图片更新:

1、设置图片输出时不缓存。

2、用js改变请求的地址。

第一个web项目的主页

function changeimg(){

var _img=document.getelementbyid("_img");

var time=new date().gettime();//浏览器认为相同的动作(被过滤)没必要应答,所以用时间值改变src值(即请求)(事实上是同一请求)

_img.src="confirm?"+time;//用js改变请求的地址

}

主页主页

湖南长沙

发布方式一......

1.jpg

去到子页


姓名:

密码:

确认密码:

验证码:confirm

看不清

自动生成验证码的java代码

关键类(以下类为基础部分的内容)

bufferedimage

imageio

graphics/graphics2d

import java.awt.color;

import java.awt.font;

import java.awt.graphics;

import java.awt.image.bufferedimage;

import java.io.ioexception;

import java.util.random;

import javax.imageio.imageio;

import javax.servlet.servletexception;

import javax.servlet.http.httpservlet;

import javax.servlet.http.httpservletrequest;

import javax.servlet.http.httpservletresponse;

public class imageservlet extends httpservlet{

@override

protected void service(httpservletrequest req, httpservletresponse resp)

throws servletexception, ioexception {

// system.out.println("jinlaile");

resp.setcontenttype("image/jpeg");//jpeg是图片格式。设置响应内容的类型为jpeg的图片

int width=64;

int height=40;

bufferedimage bimg=new bufferedimage(width, height, bufferedimage.type_int_rgb);

graphics g=bimg.getgraphics();

//背景

g.setcolor(color.white);

g.fillrect(0, 0, width, height);

//字体颜色

g.setfont(new font("aa", font.bold,18));

//用随机数生成验证码:4个0~9以内的整数

random r=new random();

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

int t=r.nextint(10);//10以内的随机整数

int y=10+r.nextint(20);//上下位置:10~30

color c=new color(r.nextint(255), r.nextint(255), r.nextint(255));

g.setcolor(c);

g.drawstring(""+t, i*16, y);

}

//画干扰线

for(int i=1;i<8;i++){

color c=new color(r.nextint(255), r.nextint(255), r.nextint(255));

g.setcolor(c);

g.drawline(r.nextint(width), r.nextint(height), r.nextint(width), r.nextint(height));

}

//把图形刷到bimg对象中

g.dispose();//相当于io中的close()方法带自动flush();

imageio.write(bimg,"jpeg", resp.getoutputstream());//通过resp获取req的outputstream对象,发向客户端的socket的封装,即写到客户端

}

}

web.xml

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"

xsi:schemalocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

bbbb

/web-inf/b.jsp

img

cn.hncu.servlet.imageservlet

bbbb

/bb.asp

img

/confirm

index.jsp

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值