本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下
在这里我们需要用到java的画笔工具,所以我们需要导入以下包
import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"
然后我就使用java脚本来实现一个小小的验证码
language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"
pageencoding="utf-8"%>
string path = request.getcontextpath();
string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
验证码
//获取随机颜色
public color getcolor(){
random random = new random();
//使用rgb()随机产生颜色
int r = random.nextint(256);
int g = random.nextint(256);
int b = random.nextint(256);
return new color(r,g,b);
}
//获取随机数字 产生一个4位数
public string getnum(){
string str = "";
random random = new random();
for(int i &#61; 0;i <4;i&#43;&#43;){
str &#43;&#61; random.nextint(10); //0-9
}
return str;
}
%>
/* 清除缓存 */
response.setheader("pragma", "mo-cache");
response.setheader("cache-control", "no-cache");
response.setdateheader("expires", 0);
//产生矩形框
bufferedimage image &#61; new bufferedimage(80,30,bufferedimage.type_int_rgb);
//获取画笔工具
graphics g &#61; image.getgraphics();
//设置矩形框的颜色
g.setcolor(new color(200,200,200));
//设置坐标和宽高
g.fillrect(0, 0, 80, 30);
//随机产生干扰线
for(int i &#61; 0;i <30;i&#43;&#43;){
random random &#61; new random();
int x &#61; random.nextint(80);
int y &#61; random.nextint(30);
int x1 &#61; random.nextint(x &#43; 10);
int y1 &#61; random.nextint(y &#43; 10);
//设置随机颜色
g.setcolor(getcolor());
//画出来
g.drawline(x, y, x1, y1);
}
//字的颜色和数字
g.setfont(new font("microsoft yahei",font.bold,16));
g.setcolor(color.black);
//获取随机数字
string checknum &#61; getnum();
//给字拼接空格
stringbuffer sb &#61; new stringbuffer();
for(int i &#61; 0;i sb.append(checknum.charat(i) &#43; " ");
}
//画出数字
g.drawstring(sb.tostring(), 15, 20);
//存入session域中
session.setattribute("checknum", checknum); //例如1010
//将图像以jpeg的形式通过字节流输出
imageio.write(image, "jpeg", response.getoutputstream());
//清除缓存
out.clear();
//放入body中
out &#61; pagecontext.pushbody();
%>
结果如下&#xff1a;
以上就是本文的全部内容&#xff0c;希望对大家的学习有所帮助&#xff0c;也希望大家多多支持萬仟网。
希望与广大网友互动&#xff1f;&#xff1f;
点此进行留言吧&#xff01;