有谁能帮我解释下面这段java代码的意思? 越详细越好。

response.setContentType("image/jpeg");

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);

g.setColor(new Color(0,0,0));

String number = String.valueOf( r.nextInt(99999));

HttpSession session = request.getSession();

session.setAttribute("number", number);

g.drawString(number, 5, 15);

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));

OutputStream os =response.getOutputStream();

JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(os);

encoder.encode(image);

response.setContentType("image/jpeg"); //设置响应类型是jpeg图片
BufferedImage image = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB); //建立一个图片缓存
Graphics g = image.getGraphics(); //获取图片缓存的Graphics对象

Random r = new Random(); //获取随机数对象
g.setColor(new Color(r.nextInt(255),r.nextInt(255), r.nextInt(255))); //设置图片充填颜色白色
g.fillRect(0, 0, 60, 20);//绘制一个矩形
g.setColor(new Color(0,0,0)); //设置充填颜色黑色
String number = String.valueOf( r.nextInt(99999)); //生成一个0-99999的随机数
HttpSession session = request.getSession(); //获取用户的Session
session.setAttribute("number", number); //给用户的Session中添加number属性 值是刚才生成的随机数
g.drawString(number, 5, 15); //把生成的随机数画到图片上
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));//在随机的位置画上白色线条干扰OCR识别
OutputStream os =response.getOutputStream(); // 获取响应的输出流
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(os); //获取JPEG编码器
encoder.encode(image);//JPEG编码图片并且输出到响应。
功能就是成一个随机数验证码,不过注意JPEGCodec JPEG编码器java1.7以上就不支持了,只能在1.6以下使用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-26
写验证码的~~~~~~~~~~···