Tomcat的WebDAV搭建

编者注

决定要编写WebDAV,可是首先要确认当前的Windows 十、Mac 10.十二、linux系统可以支持访问webDAV。也就是说须要可以正确访问的应用用与服务测试java

WebdavServlet.java位置

WebdavServlet.java的位置是在apache-tomcat-x.0.xx-src/java/org/apache/catalina/servlets/WebdavServlet.java。注意:该代码是在tomcat-src当中,而通常下载的tomcat为二进制版,须要进行引用。linux

使用

123

Servlet已经添加了WebDAV 2的支持。这些全部的HTTP请求是基于DefaultServlet。WebDAVServlet不该当被用做默认的servlet(例如:映射到/)在当前配置是不能工做的。web

映射路径(例如/webdav/*)这个servlet效果进入web应用从新挂载sub-path目录,以WebDAV的接入方式展现全部资源。在从新挂在的资源树种,会保护WEB-INFMETA-INF目录。apache

若想容许WebDAV则须要在web.xml中添加内容:windows

<servlet>
    <servlet-name>webdav</servlet-name>
    <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>

    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>webdav</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

上面的配置访问是只读。想要开启读写模式须要添加:浏览器

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

想要编辑内容经过不一样的URL,使用下列映射:tomcat

<servlet-mapping>
    <servlet-name>webdav</servlet-name>
    <url-pattern>webdavedit/*</url-pattern>
</servlet-mapping>

默认的接入方式/WEB-INFMETA-INF 经过WebDAV是不能够通的。想要容许访问这个URLs须要添加:安全

<init-param>
    <param-name>allowSpecialPaths</param-name>
    <param-value>true</param-value>
</init-param>

不要忘记安全访问须要适当的编辑URLs,尤为是若是allowSpecialPaths使用。使用上面的配置,内容须要确认普通用户可以访问。用户须要经过验证才能容许编辑内容网络

启动与访问测试

第一次没法访问

在webapp中建立webdav目录,目录树以下:app

├── WEB-INF
│   └── web.xml
└── test.txt

按照第一个配置编辑web.xml运行tomcat,经过浏览器http://localhost:8080/webdav并不能访问,windows也没法配置网络配置

第二次能够只读访问

修改配置文件

<init-param>
        <!-- listing must set true -->
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>

测试,浏览器能够访问内容

Filename	Size	Last Modified
   .DS_Store	6.0 kb	Fri, 04 Nov 2016 05:55:02 GMT
   test.txt	0.1 kb	Fri, 04 Nov 2016 06:09:32 GMT

测试windows 10添加网络位置也可使用

第三次能够读写访问

修改配置

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

在Windows下访问建立文件,成功

第四次访问读取WEB-INF

添加配置

<init-param>
    <param-name>allowSpecialPaths</param-name>
    <param-value>true</param-value>
</init-param>

经过Chrome浏览器观看,并无看到WEB-INF

可是在Windows里面,能够看到WEB-INF,可是进不去报错
其余文件能够进行读写

问题

在Windows系统中,建立中文文件夹,报错,可是刷新能够正常显示

可是在进入中文目录时发生异常

相关文章
相关标签/搜索