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

时间:2014-10-01 07:14:36

标签: java java-ee servlets filter

有没有办法判断是否调用了getOutputStreamgetWriter

我实现了一个servlet过滤器来修改响应数据,使用HttpServletResponseWrapper来包装和存储原始响应数据。操作数据后,我需要将其写回原始响应。

根据请求,我发现使用以太getOutputStreamgetWriter时收到错误 我的应用程序不使用过滤器本身,因此我无法控制用于编写原始响应的代码。

我也无法确保我的过滤器是第一个在链中调用的过滤器,因此我无法实现HttpServletResponseWrapper来跟踪是否已调用getWriter或getOutputStream。 / p>

现在我做的是

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

它有效但我从不觉得使用异常来正常"正常"代码流。

0 个答案:

没有答案