【问题标题】:Is it possible to forward a request changing the request method?是否可以转发更改请求方法的请求?
【发布时间】:2011-05-31 12:13:35
【问题描述】:

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

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

有什么解决方法吗?

注意:重定向对我来说不是一个选项。

【问题讨论】:

    标签: java rest servlets


    【解决方案1】:

    如果您有一个处理 RESTful 服务的 Rest servlet(通常是这种情况),您可以扩展它并覆盖 service 方法。您可以在那里调用doPost(..)doPut(..) 等,具体取决于您想要的参数。 HttpServlet 的默认实现使用request.getMethod()

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2012-10-04
      • 2011-02-05
      • 2012-06-28
      • 1970-01-01
      • 2013-05-15
      相关资源
      最近更新 更多