zoukankan      html  css  js  c++  java
  • 小例子:servlet验证码图片的实现

    小例子:servlet验证码图片的实现


    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //如何让浏览器3秒自动刷新一次
    resp.setHeader("refresh","3");
    //在内存中创建一个图片
    BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
    //得到图片
    Graphics2D graphics = (Graphics2D) image.getGraphics();//笔
    //设置背景图片颜色
    graphics.setColor(Color.white);
    graphics.fillRect(0,0,80,20);
    //给图片写数据
    graphics.setColor(Color.blue);
    graphics.setFont(new Font(null,Font.BOLD,20));
    graphics.drawString(makeNum(),2,20);

    //告诉浏览器,这个请求用图片的方式打开
    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());




    }
    //生成随机数
    private String makeNum(){
    Random random = new Random();
    String s = random.nextInt(9999999)+"";
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i <7-s.length() ; i++) {
    sb.append("0");
    }
    String s1 = sb.toString() + s;
    return s1;
    }
  • 相关阅读:
    最大流之dinic
    HDU 2485
    最小费用最大流
    HDU 1533
    HDU 1402
    HDU 1498
    HDU 1281
    Codeforces 283E Cow Tennis Tournament 线段树 (看题解)
    Codeforces 983E NN country 思维 (看题解)
    Codeforces 494D Birthday 树形dp (看题解)
  • 原文地址:https://www.cnblogs.com/bxbo/p/13453258.html
Copyright © 2011-2022 走看看