生成随机的5位登录验证码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

}

相关文档
最新文档