java如何判断getOutputStream或getwriter是在servlet过滤器中调用的
有没有办法判断是调用了getOutputStream
还是getWriter
我正在实现一个servlet过滤器,以使用HttpServletResponseWrapper
包装和存储原始响应数据来修改响应数据。在处理数据之后,我需要将其写回原始响应
我发现,根据请求,使用ethergetOutputStream
或getWriter
会出现错误
过滤器本身没有在我的应用程序上使用,因此我无法控制用于编写原始响应的代码
我也不能确保我的过滤器是链中第一个被调用的,所以我不能实现一个HttpServletResponseWrapper
来跟踪是否调用了getWriter或getOutputStream
现在我所做的是
try {
response.getOutputStream().write(newData);
} catch (IllegalStateException e) {
response.getWriter().write(new String(newData,charset));
}
它可以工作,但我从来都不习惯将异常用于“正常”代码流
共 (0) 个答案