给出代码
@POST
public void doSomething() {}
如何让它同时接受@PUT请求?我目前唯一出来的就是
@POST
public void doSomething() {}
@PUT
public void doSomethingPut() {
doSomething();
}
但我真的不喜欢这种做法。
答案 0 :(得分:0)
是的,您可以使用PostReplaceFilter
(com.sun.jersey.api.container.filter
)并将其配置为将该PUT更改为POST。
正如文档所说,它是一个过滤器,支持HTTP方法将POST请求替换为使用另一种HTTP方法的请求,以防止代理或HTTP服务器阻止该HTTP方法。
此过滤器可用于将PUT或DELETE请求替换为POST请求。
如果请求方法是POST并且存在具有非空值的请求标头“X-HTTP-Method-Override”,则会发生替换。该值将是替换POST方法的HTTP方法。
当应用程序部署为Servlet或Filter时,可以使用以下初始化参数注册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