Cannot forward after response has been committed

@Clear
    public void changeImage() {
        // 获取验证码和图片
        Object[] objs = ImageUtil.createImage();
        // 获取验证码 存入session
        String code = (String) objs[0];
        getRequest().getSession().setAttribute("code", code);
        // 禁止图像缓存�?
        getResponse().setHeader("Pragma", "no-cache");
        getResponse().setHeader("Cache-Control", "no-cache");
        getResponse().setDateHeader("Expires", 0);

        getResponse().setContentType("image/jpeg");

        // 获取图片 输出给浏览器
        BufferedImage image = (BufferedImage) objs[1];
        // 获取一个输出流
        try {
            OutputStream os = getResponse().getOutputStream();
            // 图片流 图片 图片格式 输出流
            ImageIO.write(image, "jpeg", os);
            os.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

public void intercept(Invocation inv) {
        try {
            if (inv.getController().getSessionAttr("adminInfo") != null) {
                inv.invoke();
            } else {
                inv.getController().redirect("/");
                inv.getController().renderNull();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

-->
                                                         <img id="code_img" style="width: 80px;height: 35px; alt="验证码" src="${ctx}/sys/user/changeImage" title="点击切换" onclick="changeImage();" >
                                                         <input type="text" style="width: 80px;height: 35px; margin-left: 10px;" name="code" placeholder="验证码"/>

function changeImage() {
        var that = document.getElementById('code_img');
        that.src = that.src + '?' + Math.random();
    }

评论区

zempty

2017-01-20 11:40

看提示是你的response已经响应了。不能再次响应,只能根据你具体的情况自己去分析了。

九块腹肌进先生

2017-01-20 11:45

@zempty 我找不出来 想不明白 我把代码发给你 帮我看看行吗?

九块腹肌进先生

2017-01-20 11:46

@zempty 我QQ2506760403

Dreamlu

2017-01-20 12:40

加一行 renderNull();

Dreamlu

2017-01-20 13:48

建议用jfinal自带的验证码

xiesisi3

2017-01-20 14:55

@Dreamlu 这个就是正解

九块腹肌进先生

2017-01-20 16:27

@Dreamlu 在哪个地方加renderNull(); 我先在网上找了相似问题 也是说加那个代码 但不知道在哪里加

Dreamlu

2017-01-20 17:44

九块腹肌进先生

2017-01-20 17:49

@Dreamlu 关流前还是关流后?还是不懂为什么会出现那样的问题

热门反馈

扫码入社