此实现工分三个文件,即:CreatImage.java 生成图像流的类,提供用于生成图片流的方法;images.jsp 图片包装,用于将图片加入到response输出流中;login.jsp 调用前面的jsp,显示验证码。
下面是源代码:
1 package com;
2
3 import java.awt.Color;
4 import java.awt.Font;
5 import java.awt.Graphics;
6 import java.awt.Image;
7 import java.awt.image.BufferedImage;
8 import java.util.Random;
9
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.servlet.http.HttpSession;
13
14 public class CreatImage{
15
16 private static final long serialVersionUID = 1L;
17 Image image = null;
18 HttpServletRequest request = null;
19 HttpServletResponse response = null;
20
21 public CreatImage(HttpServletRequest request, HttpServletResponse response){
22 this.request = request;
23 this.response = response;
24 }
25
26 public Color getRandColor(int fc,int bc){//给定范围获得随机颜色
27 Random random = new Random();
28 if(fc>255) fc=255;
29 if(bc>255) bc=255;
30 int r=fc+random.nextInt(bc-fc);
31 int g=fc+random.nextInt(bc-fc);
32 int b=fc+random.nextInt(bc-fc);
33 return new Color(r,g,b);
34 }
下面是源代码:
1 package com;
2
3 import java.awt.Color;
4 import java.awt.Font;
5 import java.awt.Graphics;
6 import java.awt.Image;
7 import java.awt.image.BufferedImage;
8 import java.util.Random;
9
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.servlet.http.HttpSession;
13
14 public class CreatImage{
15
16 private static final long serialVersionUID = 1L;
17 Image image = null;
18 HttpServletRequest request = null;
19 HttpServletResponse response = null;
20
21 public CreatImage(HttpServletRequest request, HttpServletResponse response){
22 this.request = request;
23 this.response = response;
24 }
25
26 public Color getRandColor(int fc,int bc){//给定范围获得随机颜色
27 Random random = new Random();
28 if(fc>255) fc=255;
29 if(bc>255) bc=255;
30 int r=fc+random.nextInt(bc-fc);
31 int g=fc+random.nextInt(bc-fc);
32 int b=fc+random.nextInt(bc-fc);
33 return new Color(r,g,b);
34 }