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>
