• 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下做一个映射

    即可运行

     

  • 相关阅读:
    delphi内存管理
    Dbgrid导出为word
    indy传输文件
    TMethod
    http状态码详解
    如何严格设置php中session过期时间
    http和https的优缺点,区别与工作原理
    session的生命周期
    Mysql分库分表方案,如何分,怎样分?
    【观点】程序员应知——循序渐进 狼人:
  • 原文地址:https://www.cnblogs.com/nuliyao123/p/14416859.html
Copyright © 2020-2023  润新知