zoukankan      html  css  js  c++  java
  • Response验证码

    java中BufferedImage

      @Override
        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 g = (Graphics2D) image.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(makeNum(),0,20);//画一个字符串
            //告诉浏览器,这个请求用图片的方式打开
            resp.setContentType("image/jpg");//设置响应他的类型
            //网站存在缓存,不让浏览器缓存
            resp.setDateHeader("expires",-1);//把expires设置成-1网站就不会缓存了
            resp.setHeader("Cache-Control","no-cache");//Cache-Control缓存控制  不缓存
            resp.setHeader("Pragme","no-cache");
            //把图片写给浏览器
            ImageIO.write(image,"jpg",resp.getOutputStream());
    
        }
        //生成随机数
        private  String makeNum(){
            Random random = new Random();//Random创建随机类
            String num = random.nextInt(999999)+"";
            StringBuffer sb = new StringBuffer();//Stringbuffer是动态字符串数组
            for (int i = 0; i < 4-num.length() ; i++) {
                sb.append("0");//append()是往动态字符串数组添加
            }
            num = sb.toString() + num;
            return num;
        }

    去webapp下做一个映射

    即可运行

     

  • 相关阅读:
    使用AChartEngine画图,项目总结
    Windows系统安装实验报告
    Linux系统安装实验报告
    vm虚拟机详细安装步骤
    L3-010. 是否完全二叉搜索树
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
    L2-021. 点赞狂魔
    L2-020. 功夫传人
    L2-019. 悄悄关注
    L2-017. 人以群分
  • 原文地址:https://www.cnblogs.com/nuliyao123/p/14416859.html
Copyright © 2011-2022 走看看