HttpServlet.service()方法实现是一种方便的方法 控制对代码中servlet的访问。例如,servlet 应始终使用。来访问从数据库中删除数据 DELETE方法,但因为浏览器只支持GET和POST 操作时,应该使用POST方法。
似乎大多数浏览器仅支持2种HTTP方法,GET
和POST
。
如果是这样,为什么?
答案 0 :(得分:2)
在表单中,唯一可能的方法是GET和POST。进行AJAX调用时,支持其他方法。
方法=获取|发布 [CI]
此属性指定将使用哪种HTTP方法提交表单数据集。可能的(不区分大小写)值是" get" (该 默认)和"发布"。
方式强>
要使用的HTTP方法,例如" GET"," POST"," PUT"," DELETE"等。忽略非HTTP(S)URL。
答案 1 :(得分:1)
现代浏览器允许使用XMLHttpRequest进行GET,POST,PUT和DELETE。您可以浏览此bug 10671
执行PUT和DELETE以修改源服务器上的资源 直接使用XmlHttpRequest的现代Web浏览器 宾语。对于没有脚本的浏览器交互,这并不是那么简单。 通常,开发人员和框架最终会创建模仿的解决方案 使用“POST FORM”耦合的HTTP PUT / DELETE + Etag交互 使用专门的服务器端代码来整理特殊情况并采取行动 好像在请求中使用了正确的HTTP方法
其他考虑因素:
使用POST作为隧道而不是使用PUT / DELETE可以导致 缓存不匹配(例如,POST响应是cachable5,PUT响应 不是[6],DELETE的回答不是[7])
使用非幂等方法(POST)执行幂等元素 操作(PUT / DELETE)使网络故障导致的恢复变得复杂 (例如“重复此行动是否安全?”)。
您也可以参考此主题:Are the PUT, DELETE, HEAD, etc methods available in most web browsers?