java - spring mvc 过滤器异常说response.getWriter已经被调用了

 开卷_汤娅造_673 发布于 2022-10-25 17:08

一个简单根据session过滤结果的过滤器,代码如下:

@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
  private String deniy="{denied:需要登陆}";
  public void addInterceptors(InterceptorRegistry registry) {
      registry.addInterceptor(new HandlerInterceptorAdapter() {

          @Override
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                                   Object handler) throws Exception {              
            
              if(request.getSession().getAttribute("user")==null)
                  {
                
                  OutputStream write=response.getOutputStream();
                  write.write(deniy.getBytes("UTF-8"));
                  write.flush();               
                  write.close();  
                  return false;
                  }
       
              return true;
          }
      }).addPathPatterns("/add/*").addPathPatterns("/update/*").addPathPatterns("/del/*");
  }
}


可spring框架说输出流已经被获取过了,可我就这么一个过滤器啊,而且return false后应该不会进一步进入控制器处理吧?
1 个回答
  • 不要直接使用OutputStream,使用PrinterWriter

    PrintWriter printWriter = response.getWriter();
    printWriter.write("DENY");
    printWriter.flush();
    return false;
    2022-10-26 23:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有