有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何判断getOutputStream或getwriter是在servlet过滤器中调用的

有没有办法判断是调用了getOutputStream还是getWriter

我正在实现一个servlet过滤器,以使用HttpServletResponseWrapper包装和存储原始响应数据来修改响应数据。在处理数据之后,我需要将其写回原始响应

我发现,根据请求,使用ethergetOutputStreamgetWriter会出现错误
过滤器本身没有在我的应用程序上使用,因此我无法控制用于编写原始响应的代码

我也不能确保我的过滤器是链中第一个被调用的,所以我不能实现一个HttpServletResponseWrapper来跟踪是否调用了getWriter或getOutputStream

现在我所做的是

        try {
            response.getOutputStream().write(newData);
        } catch (IllegalStateException e) {
            response.getWriter().write(new String(newData,charset));
        }

它可以工作,但我从来都不习惯将异常用于“正常”代码流


共 (0) 个答案