当前位置: 首页 > 面试题库 >

调用request.getReader()后重置HttpRequest

班高明
2023-03-14
问题内容

有没有一种方法可以在getReader()上调用方法HttpRequest,然后“重置”请求,以便getReader()不会引发其他调用java.lang.IllegalStateException


问题答案:

简单回答是不”。

该流不可重置,并且没有API方法可让您重新打开它。(并且有充分的理由。这需要servlet基础结构保留输入的副本, 以防
servlet决定重新打开流。这将是不必要的开销。)

如果您想做这种事情,则需要编写代码以保留其自己的数据副本。如果要在过滤器(或Tomcat阀)中实现此功能,则可以创建一个HttpServletRequestWrapper以隐藏事实,如@Vineet所建议的那样,您已经读取数据了。



 类似资料:
  • 问题内容: 我正在使用带有过滤功能的infinite-ajax-scroll(https://github.com/webcreate/infinite-ajax- scroll )插件。我可以使用无限滚动的过滤器,但是我的问题是,每当滚动获得一个过滤器结果的结尾时,即使选择了另一个过滤器,它也将不再滚动。因此,当选择过滤器时,我需要重设无限滚动,但我在文档中找不到有关如何重设无限滚动的信息,并且

  • 问题内容: 我正在从域A到域B进行AJAX呼叫。 我的域B检查A是否在允许的域列表中,并将设置为域A。到目前为止,一切都很好。 域B通过使用标头向域C发送302重定向来响应请求。 AJAX调用遵循重定向到域C的操作,但具有标头: 。 在重定向之后,我希望将标头设置为域A。 谁能向我解释为什么将源设置为域A而不是域A? 例 从域A到B的请求 来自网域B的回应: AJAX调用将重定向到域C: 问题答案

  • 我正在执行从域 A 到域 B 的 AJAX 调用。 我的域 B 检查 A 是否在允许的域列表中,并将设置为域 A。目前为止,一切都好。 域 B 通过使用标头向域 C 发送 302 重定向来响应请求。 AJAX 调用遵循重定向到域 C,但具有标头:。 我希望在重定向后将标头设置为域 A。 有人能解释一下为什么原点设置为<code>null</code>而不是域A吗? 示例 > 从域 A 到 B 的请

  • 问题内容: 我正在执行以下ajax调用: 这是我的PHP: 创建销售后,我想重定向到addcust.php?New_sale = $ sale_id 我该怎么做? 问题答案: 您成功重定向: 无论您从PHP脚本回显什么,都将在中。因此,echo ,您将获得您的URL。

  • 我有后端应用程序写在java ee和泽西。当我使用JavaScript Fetch API将数据发送到restendpoint时,我看到过滤器被激发了两次。一旦它没有授权头,第二个它有。当我尝试从web浏览器打开我的网站时,这个过滤器只被调用一次。为什么会发生这种事。也许是因为CORS? 下面我的日志从单一的帖子,两个打印从同一个过滤器。 第二次通话

  • 问题内容: 假设我有以下情况: 和 然后首先访问,进入然后通知它并返回状态。调用在方法中的位置重要吗?即使将调用放置在方法内部的不同位置,我也没有注意到行为的变化。 拨打电话时,是否应立即通知? 问题答案: 该位置的内通话块并 不会 因为根据定义无所谓,如果你仍然在块,那么你仍然持有锁。 调用notify()时不应该立即通知线程吗? 是。调用将等待队列(等待条件)中的线程之一(如果有)放入阻塞队列