2

给定代码

@POST
public void doSomething() {}

我怎样才能让它同时接受@PUT 请求?我目前唯一想到的是

@POST
public void doSomething() {}

@PUT
public void doSomethingPut() {
  doSomething();
}

但我真的不喜欢这种方法。

4

1 回答 1

0

是的,您可以使用PostReplaceFilter( com.sun.jersey.api.container.filter) 并将其配置为将该 PUT 更改为 POST。

正如文档所述,它是一个过滤器,支持 HTTP 方法将 POST 请求替换为使用另一种 HTTP 方法的请求,以防代理或 HTTP 服务器以其他方式阻止该 HTTP 方法。

此过滤器可用于将 POST 请求替换为 PUT 或 DELETE 请求。

如果请求方法是 POST 并且存在具有非空值的请求标头“X-HTTP-Method-Override”,则会发生替换。该值将是替换 POST 方法的 HTTP 方法。

当应用程序部署为 Servlet 或过滤器时,可以使用以下初始化参数注册此 Jersey 过滤器:

<init-param>
     <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
     <param-value>com.sun.jersey.api.container.filter.PostReplaceFilter</param-value>
 </init-param>

检查您的泽西版本,但这里有一个示例链接。 https://jersey.java.net/apidocs/1.9/jersey/com/sun/jersey/api/container/filter/PostReplaceFilter.html

于 2015-12-06T19:43:54.053 回答