如何保存HttpServletRequest以便重新发送它?

时间:2015-09-19 05:11:46

标签: java-ee servlets

我想开发一个身份验证系统,如果身份验证令牌已过期,它将允许您继续在请求身份验证之前存储您的请求,例如查询参数或键入查询参数的会话对象。

对于GET操作,很容易将查询参数捕获为查询字符串的一部分,并在以后将其传回。但是,POST可能不一定是x-www-encodedPUTDELETEOPTION,操作并不像我能说的那样容易处理

我正在考虑使用getServletInputStream()捕获内容并将其放入随请求存储的bytearray中。然后使用请求调度程序等操作对其执行回放。但是,这可能会导致getParameter()方法出现问题。

这很接近但不一定是我想要的,因为它没有解决getParameter()方法。

How should I record `HttpServletRequest`s that are sent to `doPost` in an `HttpServlet` for later playback?

1 个答案:

答案 0 :(得分:0)

您可以编写自己的HttpServletRequest,它从原始请求(参数,标题等)中获取所有内容,并将其存储在本地变量中。然后在会话中存储您自己的请求对象,稍后将其与请求调度程序一起使用。

如果您的请求非常大(文件上载等),您可以在OutOfMemoryError中运行。因此,您可能希望在文件中缓存大型参数/部件/标题。

相关问题