【发布时间】:2011-10-14 12:24:02
【问题描述】:
我试图将正文从request.getReader() 中拉出来,但它已经被读取了。
我怎样才能在拦截器中获得请求体?
【问题讨论】:
标签: java servlets spring-mvc
我试图将正文从request.getReader() 中拉出来,但它已经被读取了。
我怎样才能在拦截器中获得请求体?
【问题讨论】:
标签: java servlets spring-mvc
如您所说,请求正文只能从Reader 读取一次。这不是特定于拦截器的,而是针对 Servlet API 的所有用户的。
如果您需要第二次访问正文,则需要将数据存储在某处,例如在请求属性中(使用request.setAttribute() 和request.getAttribute())。
您执行此操作的方式和位置取决于您的拦截器,并且您没有告诉我们您的具体情况。
【讨论】:
HandlerInterceptorAdapter”这样的东西。这是一个没有任何行为的空基类。您需要对其进行子类化以使其有用,并且有 3 种不同的方法可以实现,在请求生命周期的 3 个不同点调用。答案完全取决于你是如何做到的。