首先,需要在javaweb的项目当中新建一个Servlet文件,然后再web.xml中配置一下:

这样运行的时候就可以通过“http://localhost:8080/Response/Response02”的地址访问到我们的Servlet。

开始代码的编写吧:

首先,我们需要写一个生成随即数字的方法,我们这次实现随即生成七位数的数字:

   private String makeNum() {
Random random = new Random();
String num = random.nextInt(9999999) + "";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 7 - num.length(); i++) {
sb.append("0");
}
num = sb.toString() + num;
return num;
}

  这个方法有点繁琐,而且效率低下,还有个简单的写法:

  private String getNum() {
Random ran = new Random();
String num = (ran.nextInt(8999999) + 1000000) + "";
return num;
}

  这个方法非常的简单,但是BUG是无法生成9999999;我用的是第二种;

接下来是在页面当中写画图的代码,使随即数字以图片的形式展现在页面当中:

 response.setHeader("refresh", "3"); //设置响应头控制浏览器每隔3S刷新页面
//1.在内存中创建一张图片
BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_3BYTE_BGR); //2.得到图片
Graphics2D g = (Graphics2D) image.getGraphics();
g.setColor(Color.WHITE); //设置图片的背景色
g.fillRect(0, 0, 80, 20);//填充背景色
//3.向图片上写数据
g.setColor(Color.BLUE);//设置图片上字体的颜色
g.setFont(new Font(null, Font.BOLD, 20));
g.drawString(getNum(), 0, 20);
//4.设置响应头控制浏览器以图片的方式打开
response.setContentType("image/jpeg");
//5.设置响应头控制浏览器不缓存图片的数据
response.setDateHeader("expires", -1);
response.setHeader("Cache-Control", "no-cache");//Http1.1中控制浏览器缓存
response.setHeader("Pragma", "no-cache");//Http1.0中控制浏览器缓存 //6.将图片写进浏览器
ImageIO.write(image, "jpg", response.getOutputStream());

  点击运行:

每过3S,页面刷新一次。完整代码如下:

package Response;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random; @WebServlet(name = "Response02", urlPatterns = {"/Response/Response02"})
public class Response02 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("refresh", "3"); //设置响应头控制浏览器每隔3S刷新页面
//1.在内存中创建一张图片
BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_3BYTE_BGR); //2.得到图片
Graphics2D g = (Graphics2D) image.getGraphics();
g.setColor(Color.WHITE); //设置图片的背景色
g.fillRect(0, 0, 80, 20);//填充背景色
//3.向图片上写数据
g.setColor(Color.BLUE);//设置图片上字体的颜色
g.setFont(new Font(null, Font.BOLD, 20));
g.drawString(getNum(), 0, 20);
//4.设置响应头控制浏览器以图片的方式打开
response.setContentType("image/jpeg");
//5.设置响应头控制浏览器不缓存图片的数据
response.setDateHeader("expires", -1);
response.setHeader("Cache-Control", "no-cache");//Http1.1中控制浏览器缓存
response.setHeader("Pragma", "no-cache");//Http1.0中控制浏览器缓存 //6.将图片写进浏览器
ImageIO.write(image, "jpg", response.getOutputStream());
} /***
* 生成随即数字
* **/
private String makeNum() {
Random random = new Random();
String num = random.nextInt(9999999) + "";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 7 - num.length(); i++) {
sb.append("0");
}
num = sb.toString() + num;
return num;
} //简单,但是无法获取9999999
private String getNum() {
Random ran = new Random();
String num = (ran.nextInt(8999999) + 1000000) + "";
return num;
}
}

  

在javaweb的项目当中实现随机数字的生成的更多相关文章

  1. [实例]JAVA生成字母+随机数字并生成文件

    package com.ishow.control.code; import java.io.*; import java.text.SimpleDateFormat; import java.uti ...

  2. 利用JavaScript生成随机数字!

    <!DOCTYPE html> <html> <head> <title>1-99的随机数字</title> <script type ...

  3. 关于随机数字K线极值的统计结果

    如果有组随机数字,如数字彩票.我们对号码进行平均二分后,统计期出现的结果分布,对结果分布进行K线累加,得到一条折线. 这条折线的顶点和底点的统计上服从以下规则: 令总期数为N,统计区间为M,则在N期内 ...

  4. 将外部准备好的sqlite导入到项目当中

    首先,将sqlite数据库文件放在Resource文件夹下,并且允许其编译到项目当中. 之后在AppDelegate当中执行一些代码,这里将代码封装了一个Helper: #import "R ...

  5. 算法战斗:给定一个号码与通配符问号W,问号代表一个随机数字。 给定的整数,得到X,和W它具有相同的长度。 问:多少整数协议W的形式和的比率X大?

    如果说: 给定一个号码与通配符问号W,问号代表一个随机数字. 给定的整数,得到X,和W它具有相同的长度. 问:多少整数协议W的形式和的比率X大? 进格公式 数据的多组,两排各数据的,W,第二行是X.它 ...

  6. 利用maven install jar到项目当中

    接着上面利用maven打好的jar包.把刚刚打好的包放入其他项目当中怎么办? 只需要在相同的目录下执行mvn install,maven会自动把jar放到本地仓库中. 这样,原先maven项目中缺少依 ...

  7. 【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第二节)

    说明 本教程是,原文章发布系统教程的精编重制版,会包含每一节的源码,以及修正之前的一些错误.因为之前的教程只做到了评论模块,很多地方还不完美,因此重制版会修复之前的一些谬误和阐述不清的地方,而且,后期 ...

  8. 随机总数字里面选取随机数字进行随机排序案例(JAVA实现)

    随机总数字里面选取随机数字进行随机排序案例,案例如下: 代码code: package com.sec; import java.util.Arrays; import java.util.Scann ...

  9. Java随机字符串:随机数字字符串,工具类

    Java中生成随机数,字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串+数字等 ......... 2. 总共8种类型,具体看工具类 ...

随机推荐

  1. e792. 建立一个包括所有数据的SpinnerListModel

    By default, if the user is browsing the values in a SpinnerListModel, the iteration stops when eithe ...

  2. CI框架 -- 核心文件 之 Input.php(输入数据处理文件)

    class CI_Input { //用户ip地址 protected $ip_address = FALSE; //用户浏览器地址 protected $user_agent = FALSE; // ...

  3. 监听输入框值变化的最佳方案 oninput 和 onpropertychange (实时监控文本框改变的最佳方案)

    公司有个文本框,当输入文字/粘贴/复制 或者是键盘猛按的时候,都希望这个文本框能统计出 输入了多少字   这种用 onchange   onkeyup  onkepress  都不怎么好使   最后在 ...

  4. Linux 用户与用户组管理

    Linux 是一个多用户多任务的分是操作系统,用户是实现操作系统资源分配,同时也是安全权限模型的核 心要素之一:用户组是一个容纳很多用户的容器,可以分配权限组,进一步优化了权限分配. 一.用户管理 用 ...

  5. 文本处理三剑客之 sed详解

    1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  6. C# 之HTTP请求get,post带重试参数

    public class WebHttp { /// <summary> /// get请求带重试 /// </summary> /// <param name=&quo ...

  7. sublime3 docblocker插件定制自己的注释,配置步骤

    DocBlockr很好用,不仅仅可以自动生成注释,还可以手动编辑注释的格式. 安装方法:   Cmd+Shift+P -> Install Package -> docblockr  wi ...

  8. 7 切片slice

    include 切片 切片的日常用法 切片slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或者 为引用类型. 可以直接创建或从底层数组获取生成. 使用le ...

  9. Phpcms V9手机门户设置教程:怎么用PC V9做手机网站

    一.在PHPcms V9管理后台设置手机门户 1.1.开启手机网站.位置:模块 >手机门户 > 添加手机站点,具体设置可参照截图: 填写站点名和LOGO文件相对位置,绑定用于手机网站的二级 ...

  10. Go语言图形界面开发:Go版GTK

    https://www.cnblogs.com/tennysonsky/p/8433888.html package main import ( "os" "github ...