> 文档中心 > javaWeb项目下的使用servlet的HttpServletResponse定时刷新网页 验证码生成的过程

javaWeb项目下的使用servlet的HttpServletResponse定时刷新网页 验证码生成的过程

  1. 设置网页刷新时间 resp.setHeader("Refresh","3");
  2. 在内存中创建一张图片 BufferedImage bufferedImage = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
  3. 通过生成的图片类获取画笔 在图片上绘制随机数
  4. 设置response返回的页面格式 
  5. 使用ImageIO流将图片绘制到浏览器上
  • resp.setContentType("image/jpeg"); //设置页面展示方式为image/jpeg
  • resp.setDateHeader("expires",-1);       //去除页面的缓存 将expires 参数设置为-1
  • resp.setHeader("Cache-Control","no-cache"); //去除页面的缓存 将Cache-Control 参数设置为no-cache
  • resp.setHeader("Pragma","no-cahe");  //去除页面的缓存 将Pragma参数设置为no-cahe
import javax.imageio.ImageIO;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.*;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;public class ResponseServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {      //生成 验证码 使得网页三秒钟刷新一次 resp.setHeader("Refresh","3"); //在网页上创建一张图片 BufferedImage bufferedImage = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB); //在图片上绘制数字 Graphics2D g = (Graphics2D) bufferedImage.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(makeNumber(),0,20); //设置返回页面加载的页面格式 resp.setContentType("image/jpeg"); resp.setDateHeader("expires",-1); resp.setHeader("Cache-Control","no-cache"); resp.setHeader("Pragma","no-cahe"); //将图片写到 浏览器上 ImageIO.write(bufferedImage,"jpg",resp.getOutputStream());    }    //生成随机数private String makeNumber(){    Random random = new Random();   String num= random.nextInt(9999999)+ " ";    StringBuffer stringBuffer = new StringBuffer();    for (int i = 0; i <7-num.length() ; i++) { stringBuffer.append("0");    }    return num+stringBuffer.toString();}    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp);    }}