生成随机的5位登录验证码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
生成随机的5位登录验证码
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
static String code="";
publicclass checkService {
publicvoid checkCode(HttpServletRequest
req,HttpServletResponse resp)
throws ServletException,IOException{
//绘制画布
BufferedImage bf=new
BufferedImage(80,30,BufferedImage.TYPE_INT_BGR);
//获得画笔
Graphics g=bf.getGraphics();
//给画笔设置颜色
g.setColor(new Color(255,255,255));
//填充背景色
g.fillRect(0, 0, 80, 30);
//随机获得前景色
Random r=new Random();
g.setColor(new
Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));
//设置字体
Font f=new Font("",Font.BOLD,22);
//获得字体
g.setFont(f);
//以当前颜色和字体绘制干扰线
checkService.code=checkService.getstr();
g.drawString(checkService.code,10,25);
for(int i=0;i<10;i++){
g.drawLine(r.nextInt(80), r.nextInt(30), r.nextInt(80), r.nextInt(30));
}
//将图片按照jpeg算法压缩并发送给浏览器
resp.setContentType("image/jpeg");
OutputStream out =resp.getOutputStream();
javax.imageio.ImageIO.write(bf,"jpeg", out);
}
//生成随机的字符串验证码
publicstatic String getstr(){
String str="abcdefghijklmnopqrstuvwxyz0123456789";
Random r=new Random();
String code="";
for(int i=0;i<5;i++){
code+=str.charAt(r.nextInt(str.length()));
}
return code;
}
}