是否可以转发更改请求方法的请求?

时间:2010-12-28 09:33:14

标签: java rest servlets

我正在通过一个网关,它只允许GET请求,而它后面的REST端点能够接受各种方法(POST,PUT,DELETE,OPTIONS)。因此,我试图将请求方法作为参数传递,具有过滤器,该过滤器使用正确的方法转发请求。从我在规范中看到的情况来看,它只允许转发请求而不进行任何修改:

request.getRequestDispatcher(route).forward(request, response)

有任何变通方法吗?

注意:重定向不适合我。

1 个答案:

答案 0 :(得分:1)

如果您有一个Rest servlet来处理restful服务(通常就是这种情况),您可以扩展它并覆盖service方法。在那里,您可以根据所需的参数调用doPost(..)doPut(..)等。 HttpServlet的默认实施使用request.getMethod()

您可以做的另一件事(不太可取)是让您的过滤器使用URL.openConnection(或apache commons http组件)向端点发出新请求,并将该内部请求的结果传回给客户。在那里,您可以指定请求方法。

无论如何,我认为你应该尝试克服网关的限制,因为它会让你处于一种非常尴尬的境地。