public void getCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 让浏览器60秒自动刷新一下次(可以不写)
response.setHeader("refresh","60");
// 在内存中创建一个图片
BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_3BYTE_BGR);
// 得到图片
Graphics2D g = (Graphics2D) image.getGraphics();
// 设置图片背景色
g.setColor(Color.white);
g.fillRect(0,0,80,20);
// 给图片写数据
g.setColor(Color.blue);
g.setFont(new Font(null,Font.BOLD,20));
g.drawString(makeNum(),0 ,20);
// 告诉浏览器,这个请求用图片的方式打开
response.setContentType("image/jpg");
// 网站存在缓存,不让浏览器缓存(如下代码可以不写)
response.setDateHeader("expires", -1);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no=cache");
// 把图片写给浏览器
ImageIO.write(image,"jpg", response.getOutputStream());
}
/**
* 获取随机数
* @return
*/
private String makeNum () {
Random random = new Random();
String num = random.nextInt(999999) + "";
StringBuffer stringBuffer = new StringBuffer();
for (int i=0; i< 6-num.length(); i++){
stringBuffer.append("0");
}
num = stringBuffer.toString() + num;
return num;
}
java 生成图形验证码
最新推荐文章于 2024-05-28 23:35:06 发布