图片验证。
Servlet中的操作
1.在内存中创建一张图片
BufferedImage img= new BufferedImage (?,?,?) 宽 高 图片类型
2 获取到图片,用于在java平台获取到一个二维图形
graphics2d:提供了对几何图形,坐标转换、颜色管理或者文本格式的控制。
Graphics2d g = Img.getGraphics();
3 设置图片的背景颜色
G.setcolor(color.white)
4 设置背景填充
G.fillrect(0,0,80,20)
5 向图片上写数据
设置字体颜色
G.setcolor(color.?)
设置字体风格
G.setfont(new font(“微软雅黑”,font.bold,20))
String num= getnum();
创建session装用户验证码
session= Req.Getsession
Session.setattribute(“code”,num)
G.drawString(num,10,20)
设置响应的mime类型
Setcontenttype(“iamge/jpeg”)
控制图片不能缓存
Resp.setdateheader(“expries”,-1)
resp.setheader(“cacher-control”,”no-cache”)
Resp.setheader(“pragma”,”no-chche”)
Imageio.write(image,”jpg”,resp.getoutputsteam());
Public string getnum(){
Random r =new random(); //随机数
String num =r.nexint(9999)+””;//转换成字符
Stringbuffer b= newStringbuffer();
For(int i=0;i<4-num;i++){
B.append(“0”)//控制随机数的格式
}
String newnum= b.tostring()+num;
Return newnum;
}
Html操作
Img src=”验证码图片服务器”
<a href=”javascrpt:ck()”> 刷新</a>
<script>
得到img getelementbyid(“ 图片id”)
Function ck(){
设置得到的img的src=”验证码图片服务器”+math.random();
}
</script>