Java 是否可以转发更改请求方法的请求?
我正在研究一个网关,它只允许GET请求,而它后面的REST端点能够接受广泛的方法(POST、PUT、DELETE、OPTIONS)。因此,我尝试将request方法作为参数传递,并使用一个过滤器,该过滤器使用正确的方法转发请求。从我在规范中看到的情况来看,只允许转发请求而不进行任何修改:Java 是否可以转发更改请求方法的请求?,java,rest,servlets,Java,Rest,Servlets,我正在研究一个网关,它只允许GET请求,而它后面的REST端点能够接受广泛的方法(POST、PUT、DELETE、OPTIONS)。因此,我尝试将request方法作为参数传递,并使用一个过滤器,该过滤器使用正确的方法转发请求。从我在规范中看到的情况来看,只允许转发请求而不进行任何修改: request.getRequestDispatcher(route).forward(request, response) 有什么解决办法吗 注意:重定向对我来说不是一个选项。如果您有一个Rest serv
request.getRequestDispatcher(route).forward(request, response)
有什么解决办法吗
注意:重定向对我来说不是一个选项。如果您有一个Rest servlet来处理restful服务(通常是这种情况),那么您可以扩展它并覆盖
服务
方法。根据需要的参数,您可以在那里调用doPost(..)
,doPut(..)
等。HttpServlet
的默认实现使用request.getMethod()
您可以做的另一件事(不太可取)是让过滤器使用URL.openConnection
(或apache commons http组件)向端点发出新请求,并将该内部请求的结果流式传输回客户端。您可以在那里指定请求方法
无论如何,我认为你应该努力克服你的网关的局限性,因为它会让你陷入非常尴尬的境地