public class ImageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//浏览器定时刷新
resp.setHeader("refresh","2");
//在内存中创建一张图片
BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
//得到这张2D图片图片
Graphics2D img = (Graphics2D) image.getGraphics();//画笔
//设置图片背景颜色及覆盖区域
img.setColor(Color.white);
img.fillRect(0,0,100,20);
//给图片写数据
img.setColor(Color.BLUE);
img.setFont(new Font(null,Font.BOLD,20));
img.drawString(makeNum(),0,20);
//告诉浏览器这个请求用图片的方式打开:响应体中设置
resp.setContentType("image/jpeg");
//网站中存在缓存,设置不缓存
resp.setDateHeader("expires",-1);
resp.setHeader("Cache-Control","no cache");
resp.setHeader("Pragma","no cache");
//把图片写给浏览器
ImageIO.write(image,"jpeg",resp.getOutputStream());
}
//生成随机数
private String makeNum(){
Random random = new Random();
String num = random.nextInt(99999999) + "";
StringBuffer sb = new StringBuffer();
for (int i=0;i<8-num.length();i++){
sb.append("0");
}
num = sb.toString() + num;
return num;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
Response验证码实现
最新推荐文章于 2025-05-28 18:02:37 发布