配置tomcat支持http delete和put的方法

2013-4-14 王健宇 应用

WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。这个协议的出现极大地增加了 Web 作为一种创作媒体对于我们的价值。基于 WebDAV 可以实现一个功能强大的内容管理系统或者配置管理系统。

方法:

PUT,向指定的目录上传附加文件;

DELETE,删除指定的资源;

COPY,将指定的资源复制到Destination消息头指定的位置;

MOVE,将指定的资源移动到Destination消息头指定的位置;

SEARCH,在一个目录路径中搜索资源。

PROPFIND,获取与指定资源有关的信息,如作者、大小与内容类型。

TRACE,在响应中返回服务器收到的原始请求。可以使用这种方法避开阻止跨站点脚本的防御。

在tomcat5.5支持http delete和put的方法:

在tomcat web.xml文件中配置org.apache.catalina.servlets.DefaultServlet的 

        <init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
        </init-param>

readonly参数默认是true,即不允许delete和put操作,所以通过XMLHttpRequest对象的put或者delete方法访问就会报告http 403错误。为REST服务起见,应该设置该属性为false。

如下:

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>readonly</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
apache2.2设置禁止使用http delete和put
<Location />
<LimitExcept GET HEAD POST>
  Order Allow,Deny
  Deny from all
</LimitExcept>
</Location>
 
附上tomcat测试成功的截图:
点击查看原图
测试数据库包格式为:
PUT /test.txt HTTP/1.1
Host: 192.168.137.170:8080
Content-Length: 4
1111

标签: tomcat支持put

发表评论:

Powered by emlog sitemap