zoukankan      html  css  js  c++  java
  • 终极解决方案:org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response

    一、项目

    我的项目采用Spring MVC +JSP+EasyUI 做的老项目。

    在做图片验证码方法时,向网页输出验证码图片的方法如下:

        @Override
        public void showCodeImg(HttpServletRequest request, HttpServletResponse response)  throws IOException {
            response.setHeader("Expires","-1");//控制缓存的失效日期
            response.setHeader("Cache-Control","no-cache");//必须先与服务器确认返回的响应是否被更改,然后才能使用该响应来满足后续对同一个网址的请求
            response.setHeader("Pragma","-1");
            CaptchaUtil util=CaptchaUtil.Instance();
            // 将验证码输入到session中,用来验证
            String code=util.getString();
            request.setCharacterEncoding("UTF-8");
            request.getSession().setAttribute(SecurityCodeConstant.CODE_NUM,code);
            // 输出到web页面
            ImageIO.write(util.getImage(), "jpg", response.getOutputStream());
        }
    

      

    二、出现错误:

    org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response

    找了网上资料:无非是说

    https://blog.csdn.net/zeb_perfect/article/details/45641355

    https://blog.csdn.net/xyajia/article/details/78730751

    之类没用的废话。

    三、最终原因:

    Win10的操作系统,Tomcat 放在了C盘,权限有问题!!!!,虽然报错完全看不出跟文件权限有半毛钱关系!!

    四、解决方案

    把Tomcat 拿出来放D盘,再次发布项目,TMD一切正常!!!

    五、经验:

    别用Windows了,改用Linux吧,浪费时间和生命

  • 相关阅读:
    2822 爱在心中
    P1707 刷题比赛
    1269 匈牙利游戏
    1482 路线统计
    Codevs 1287 矩阵乘法&&Noi.cn 09:矩阵乘法(矩阵乘法练手题)
    P2022 有趣的数
    1087 麦森数
    P1111 修复公路
    python为在线漫画站点自制非官方API(未完待续)
    逻辑运算0==x和x==0具体解释
  • 原文地址:https://www.cnblogs.com/pangguoming/p/9830635.html
Copyright © 2011-2022 走看看