本文实例为大家分享了java图片验证码代码,供大家参考,具体内容如下
网页显示效果:
index.jsp使用两种方式强制图片更新:
1、设置图片输出时不缓存。
2、用js改变请求的地址。
第一个web项目的主页function changeimg(){
var _img=document.getelementbyid("_img");
var time=new date().gettime();//浏览器认为相同的动作(被过滤)没必要应答,所以用时间值改变src值(即请求)(事实上是同一请求)
_img.src="confirm?"+time;//用js改变请求的地址
}
主页主页
湖南长沙
发布方式一......
姓名:
密码:
确认密码:
验证码:
看不清
自动生成验证码的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
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!