allobject
2013-01-09 20:46:18
java随机生成图片验证码
随机生成两种类型的验证码
public class CheckcodeServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //step1 创建一个图片,创建一个内存映像对象 BufferedImage image = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB); //得到画笔 Graphics g = image.getGraphics(); Random r = new Random(); //设置画笔的颜色 g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255))); //设置整个画板的背景颜色 g.fillRect(0,0, 60, 20); //生成一个随机数 //String number = r.nextInt(99999) + ""; String number = getNumber(5); //将number绑订到session对象上。 HttpSession session = request.getSession(); session.setAttribute("number", number); g.setColor(new Color(0,0,0)); g.drawString(number, 5, 15); //加一些干扰线 for(int i=0;i<5;i++){ g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255))); g.drawLine(r.nextInt(60),r.nextInt(20),r.nextInt(60),r.nextInt(20)); } //step2 压缩图片,然后输出 response.setContentType("image/jpeg"); OutputStream output = response.getOutputStream(); javax.imageio.ImageIO.write(image, "jpeg", output); } //随机从"A~Z","0~9"当中取出5个字符 private String getNumber(int length) { Random r = new Random(); char[] chars = {'A','B','C','D','E','F','G', 'H','I','J','K','L','M','N','O','P','Q', 'R','S','T','U','V','W', 'X','Y','Z','0', '1','2','3','4','5','6','7','8','9'}; String number = ""; for(int i=0;i<length;i++){ number += chars[r.nextInt(chars.length)]; } return number; }
由最代码官方编辑于2014-1-23 22:13:06
由AXIN编辑于2014-2-12 18:10:19
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
blueskyroof LV9
2019年11月26日
zhouyunfei LV3
2019年5月17日
skystory LV11
2019年4月27日
123123zxl LV11
2018年6月25日
罗明飞 LV4
2018年6月22日
Fdaxiong LV1
2018年6月10日
yxw0707 LV3
2018年5月21日
1335203 LV10
2018年2月28日
乞丐哥哥 LV23
2018年2月11日
vipsers森林 LV2
2017年12月5日
最近浏览
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
3174233007
2022年12月19日
暂无贡献等级
double_AI LV1
2022年11月12日
wwww11112222
2022年7月19日
暂无贡献等级
芮坎尚 LV1
2022年5月11日
Jeasonchan898 LV2
2022年4月26日
杨豫川 LV12
2022年4月19日
10816599
2021年9月15日
暂无贡献等级
zhaoxu123123 LV10
2021年9月9日
zzy94269664 LV11
2021年3月16日