繁体   English   中英

用JAX-RS覆盖HTTP方法

[英]Overwrite HTTP method with JAX-RS

当今的浏览器(或HTML <5)仅支持HTTP GET和POST,但要进行RESTful通信,也需要PUT和DELETE。 如果解决方法不是使用Ajax,则需要使用诸如隐藏表单字段之类的内容来覆盖实际的HTTP方法。

Rails使用以下技巧:

<input name="_method" type="hidden" value="put" />

有可能用JAX-RS做类似的事情吗?

严格HiddenHttpMethodFilter ,这不是严格的JAX-RS解决方案,但Spring 3.0附带了一个HiddenHttpMethodFilter ,它完全实现了rails的技巧,默认为相同的_method参数。

请注意,您无需使用spring即可使用此过滤器,只需在web.xml对其进行配置即可,而忽略spring的其余部分。

泽西岛(Jersey)也有类似的内容,不过会过滤标头字段。 文档可以在这里找到

引用罗伊·菲尔丁的话:

无论如何,有很多RESTful服务只执行GET和POST 关键是如何使用这些方法,而不是使用什么方法。 举一个具体的例子,使Wiki或多或少具有RESTful的能力几乎总是由它(滥用)使用GET和会话的方式决定的-相比之下,它是使用PUT还是POST编辑页面。

重点是我的,摘自本文http://tech.groups.yahoo.com/group/rest-discuss/message/10746

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM