@RequestMapping(value = "/verificationCode")
public void verificationCode(HttpServletRequest request, HttpServletResponse response) {
// 创建一个宽100,高50,且不带透明色的image对象 100 50
BufferedImage bi = new BufferedImage(100, 50, BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
// RGB色彩
Color c = new Color(192, 192, 192);
// 框中的背景色
g.setColor(c);
// 颜色填充像素
g.fillRect(0, 0, 100, 50);
// 定义验证码字符数组
char[] ch = "ABCDEFGHIJKLMNPQRSTUVWXYZ0123456798".toCharArray();
Random r = new Random();
int len = ch.length;
int index;
StringBuilder sb = new StringBuilder();
// 取出四个数字
for (int i = 0; i < 4; i++) {
// 循环四次随机取长度定义为索引
index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
Font font = new Font("Times New Roman", Font.BOLD, 22+r.nextInt(5));
g.setFont(font);
g.drawString(ch[index] + "", (i * 18) + 10, 30);
sb.append(ch[index]);
}
g.drawLine(r.nextInt(5), 10+r.nextInt(30), 90+r.nextInt(10), 20+r.nextInt(20));
// 放入Session中
request.getSession().setAttribute(verificationCodeSessionName, sb.toString());
try {
ImageIO.write(bi, "PNG", response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}