Servlet学习之生成随机数

令页面生成一个每五秒产生一个数字的动态图

package com.servlet.demo

import javax.imageio.ImageIO;
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 DrawDemo extends HttpServlet{
          
   
	protected void doGet(HttpServletResquest req,HttpServletResponse resp) throws ServletException, IOException{
          
   
		//设置刷新时间,单位为秒
		resp.setHeader("refresh","5");
		//在内存中创建一个图片
		BufferImage image=new BuffferImage(200,80,BufferImage.TYPE_INT_RGB);
		//获得图片
		Graphics2D gd=(Graphics2D)image.getGraphics();//相当于画笔
		//设置图片背景色
		gd.setColor(Color.BLUE);
		gd.setFont(null,Font.BLOD,50);
		gd.drawString(makeNum(),0,40);//这里40,是makenum()数字底部到图片背景顶部的距离
		//告诉浏览器,这个请求用图片方式打开
		resp.setContentType("image/jpeg");
		//网站存在缓存,不让浏览器缓存
		resp.setDateHeader("expires",-1);
		resp.setHeader("Cache-Control","no-cache");
		resp.setHeader("Pragma","no-cache");
		//把图片写给浏览器
		ImageIO.write(image,"jpg",resp.getOutputStream());
	}
	//生成随机数,不够七位的在前面补0
	private String makeNum(){
          
   
		Random random=new Random();
		String num= random.nextInt(9999)+"";//随机数范围是[0,9999)包括0,但不包括9999
		StringBuffer sb=new StringBuffer();
		for(int i=0;i<7-num.length();i++){
          
   
			sb.append("0");
		}
		num=sb.toString()+num;
		return num;
	}
}

在web.xml中注册此类;

<servlet>
    <servlet-name>draw</servlet-name>
    <servlet-class>com.servlet.DrawDemo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>draw</servlet-name>
    <url-pattern>/draw</url-pattern>
  </servlet-mapping>
经验分享 程序员 微信小程序 职场和发展