【发布时间】:2011-06-12 14:24:58
【问题描述】:
有没有办法在HttpRequest 上调用getReader() 方法,然后“重置”请求,这样对getReader() 的其他调用就不会抛出java.lang.IllegalStateException?
【问题讨论】:
-
我对这个问题感到困惑。 API 不允许在同一请求上调用 getInputStream 和 getReader。你想避免这种情况吗?或者您是否试图在同一个请求对象上获得多个读者?
-
@Vineet 我正在尝试提取请求正文并记录它,然后将请求传递给下一个处理程序(在我的情况下为弹簧组件)并让它们照常工作。我想避免你描述的场景。
-
您是否尝试过使用 HttpServletRequestWrapper? AFAIK,很难(或不可能)在流或读取器对象中重置标记。您可以提取请求,填充包装器对象并将其传递到下游。这纯粹是一个理论概念;您实际上可能必须尝试一下,看看它是否有效。
-
不,它是 J2EE 对象吗?
-
是的,它是 Servlet API 的一部分。
标签: java jakarta-ee httprequest