-
设置网页刷新时间 resp.setHeader("Refresh","3");
- 在内存中创建一张图片 BufferedImage bufferedImage = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
- 通过生成的图片类获取画笔 在图片上绘制随机数
- 设置response返回的页面格式
- 使用ImageIO流将图片绘制到浏览器上
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); }}