Package org.apache.catalina.servlets
Class WebdavServlet
- java.lang.Object
- 
- javax.servlet.GenericServlet
- 
- javax.servlet.http.HttpServlet
- 
- org.apache.catalina.servlets.DefaultServlet
- 
- org.apache.catalina.servlets.WebdavServlet
 
 
 
 
- 
- All Implemented Interfaces:
- java.io.Serializable,- Servlet,- ServletConfig
 
 public class WebdavServlet extends DefaultServlet Servlet which adds support for WebDAV level 2. All the basic HTTP requests are handled by the DefaultServlet. The WebDAVServlet must not be used as the default servlet (ie mapped to '/') as it will not work in this configuration.Mapping a subpath (e.g. /webdav/*to this servlet has the effect of re-mounting the entire web application under that sub-path, with WebDAV access to all the resources. TheWEB-INFandMETA-INFdirectories are protected in this re-mounted resource tree.To enable WebDAV for a context add the following to web.xml: <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>This will enable read only access. To enable read-write access add:<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param>To make the content editable via a different URL, use the following mapping:<servlet-mapping> <servlet-name>webdav</servlet-name> <url-pattern>/webdavedit/*</url-pattern> </servlet-mapping>By default access to /WEB-INF and META-INF are not available via WebDAV. To enable access to these URLs, use add:<init-param> <param-name>allowSpecialPaths</param-name> <param-value>true</param-value> </init-param>Don't forget to secure access appropriately to the editing URLs, especially if allowSpecialPaths is used. With the mapping configuration above, the context will be accessible to normal users as before. Those users with the necessary access will be able to edit content available via http://host:port/context/content using http://host:port/context/webdavedit/content- Author:
- Remy Maucherat
- See Also:
- RFC 4918, Serialized Form
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.apache.catalina.servlets.DefaultServletDefaultServlet.CompressionFormat, DefaultServlet.Range
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected static ConcurrentDateFormatcreationDateFormatSimple date format for the creation date ISO representation (partial).protected static java.lang.StringDEFAULT_NAMESPACEDefault namespace.- 
Fields inherited from class org.apache.catalina.servlets.DefaultServletBUFFER_SIZE, compressionFormats, contextXsltFile, debug, fileEncoding, FULL, globalXsltFile, input, listings, localXsltFile, mimeSeparation, output, readmeFile, readOnly, resources, RESOURCES_JNDI_NAME, sendfileSize, showServerInfo, sm, sortListings, sortManager, useAcceptRanges
 
- 
 - 
Constructor SummaryConstructors Constructor Description WebdavServlet()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckIfHeaders(HttpServletRequest request, HttpServletResponse response, WebResource resource)Check if the conditions specified in the optional If headers are satisfied.protected java.lang.StringdetermineMethodsAllowed(HttpServletRequest req)Determines the methods normally allowed for the resource.protected voiddoCopy(HttpServletRequest req, HttpServletResponse resp)COPY Method.protected voiddoDelete(HttpServletRequest req, HttpServletResponse resp)DELETE Method.protected voiddoLock(HttpServletRequest req, HttpServletResponse resp)LOCK Method.protected voiddoMkcol(HttpServletRequest req, HttpServletResponse resp)MKCOL Method.protected voiddoMove(HttpServletRequest req, HttpServletResponse resp)MOVE Method.protected voiddoOptions(HttpServletRequest req, HttpServletResponse resp)OPTIONS Method.protected voiddoPropfind(HttpServletRequest req, HttpServletResponse resp)PROPFIND Method.protected voiddoProppatch(HttpServletRequest req, HttpServletResponse resp)PROPPATCH Method.protected voiddoPut(HttpServletRequest req, HttpServletResponse resp)Process a PUT request for the specified resource.protected voiddoUnlock(HttpServletRequest req, HttpServletResponse resp)UNLOCK Method.protected javax.xml.parsers.DocumentBuildergetDocumentBuilder()Return JAXP document builder instance.protected java.lang.StringgetPathPrefix(HttpServletRequest request)Determines the prefix for standard directory GET listings.protected java.lang.StringgetRelativePath(HttpServletRequest request)Override the DefaultServlet implementation and only use the PathInfo.protected java.lang.StringgetRelativePath(HttpServletRequest request, boolean allowEmptyPath)voidinit()Initialize this servlet.protected java.lang.StringrewriteUrl(java.lang.String path)URL rewriter.protected voidservice(HttpServletRequest req, HttpServletResponse resp)Handles the special WebDAV methods.- 
Methods inherited from class org.apache.catalina.servlets.DefaultServletcheckIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkSendfile, copy, copy, copy, copy, copy, copy, copyRange, copyRange, copyRange, destroy, doGet, doHead, doPost, executePartialPut, findXsltSource, generateETag, getReadme, getReadme, parseContentRange, parseRange, render, render, render, renderHtml, renderHtml, renderHtml, renderSize, renderXml, renderXml, renderXml, sendNotAllowed, serveResource
 - 
Methods inherited from class javax.servlet.http.HttpServletdoTrace, getLastModified, service
 - 
Methods inherited from class javax.servlet.GenericServletgetInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
- 
 
- 
- 
- 
Field Detail- 
DEFAULT_NAMESPACEprotected static final java.lang.String DEFAULT_NAMESPACE Default namespace.- See Also:
- Constant Field Values
 
 - 
creationDateFormatprotected static final ConcurrentDateFormat creationDateFormat Simple date format for the creation date ISO representation (partial).
 
- 
 - 
Method Detail- 
initpublic void init() throws ServletExceptionInitialize this servlet.- Overrides:
- initin class- DefaultServlet
- Throws:
- ServletException- if an exception occurs that interrupts the servlet's normal operation
 
 - 
getDocumentBuilderprotected javax.xml.parsers.DocumentBuilder getDocumentBuilder() throws ServletExceptionReturn JAXP document builder instance.- Returns:
- the document builder
- Throws:
- ServletException- document builder creation failed (wrapped- ParserConfigurationExceptionexception)
 
 - 
serviceprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException Handles the special WebDAV methods.- Overrides:
- servicein class- DefaultServlet
- Parameters:
- req- the- HttpServletRequestobject that contains the request the client made of the servlet
- resp- the- HttpServletResponseobject that contains the response the servlet returns to the client
- Throws:
- ServletException- if the HTTP request cannot be handled
- java.io.IOException- if an input or output error occurs while the servlet is handling the HTTP request
- See Also:
- Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
 
 - 
checkIfHeadersprotected boolean checkIfHeaders(HttpServletRequest request, HttpServletResponse response, WebResource resource) throws java.io.IOException Description copied from class:DefaultServletCheck if the conditions specified in the optional If headers are satisfied.- Overrides:
- checkIfHeadersin class- DefaultServlet
- Parameters:
- request- The servlet request we are processing
- response- The servlet response we are creating
- resource- The resource
- Returns:
- trueif the resource meets all the specified conditions, and- falseif any of the conditions is not satisfied, in which case request processing is stopped
- Throws:
- java.io.IOException- an IO error occurred
 
 - 
rewriteUrlprotected java.lang.String rewriteUrl(java.lang.String path) URL rewriter.- Overrides:
- rewriteUrlin class- DefaultServlet
- Parameters:
- path- Path which has to be rewritten
- Returns:
- the rewritten path
 
 - 
getRelativePathprotected java.lang.String getRelativePath(HttpServletRequest request) Override the DefaultServlet implementation and only use the PathInfo. If the ServletPath is non-null, it will be because the WebDAV servlet has been mapped to a url other than /* to configure editing at different url than normal viewing.- Overrides:
- getRelativePathin class- DefaultServlet
- Parameters:
- request- The servlet request we are processing
- Returns:
- the relative path
 
 - 
getRelativePathprotected java.lang.String getRelativePath(HttpServletRequest request, boolean allowEmptyPath) - Overrides:
- getRelativePathin class- DefaultServlet
 
 - 
getPathPrefixprotected java.lang.String getPathPrefix(HttpServletRequest request) Determines the prefix for standard directory GET listings.- Overrides:
- getPathPrefixin class- DefaultServlet
- Parameters:
- request- the request to determine the path for
- Returns:
- the prefix to apply to all resources in the listing.
 
 - 
doOptionsprotected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException OPTIONS Method.- Overrides:
- doOptionsin class- DefaultServlet
- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- ServletException- If an error occurs
- java.io.IOException- If an IO error occurs
 
 - 
doPropfindprotected void doPropfind(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException PROPFIND Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- ServletException- If an error occurs
- java.io.IOException- If an IO error occurs
 
 - 
doProppatchprotected void doProppatch(HttpServletRequest req, HttpServletResponse resp) throws java.io.IOException PROPPATCH Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- java.io.IOException- If an IO error occurs
 
 - 
doMkcolprotected void doMkcol(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException MKCOL Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- ServletException- If an error occurs
- java.io.IOException- If an IO error occurs
 
 - 
doDeleteprotected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException DELETE Method.- Overrides:
- doDeletein class- DefaultServlet
- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- ServletException- If an error occurs
- java.io.IOException- If an IO error occurs
 
 - 
doPutprotected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException Process a PUT request for the specified resource.- Overrides:
- doPutin class- DefaultServlet
- Parameters:
- req- The servlet request we are processing
- resp- The servlet response we are creating
- Throws:
- java.io.IOException- if an input/output error occurs
- ServletException- if a servlet-specified error occurs
 
 - 
doCopyprotected void doCopy(HttpServletRequest req, HttpServletResponse resp) throws java.io.IOException COPY Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- java.io.IOException- If an IO error occurs
 
 - 
doMoveprotected void doMove(HttpServletRequest req, HttpServletResponse resp) throws java.io.IOException MOVE Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- java.io.IOException- If an IO error occurs
 
 - 
doLockprotected void doLock(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException LOCK Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- ServletException- If an error occurs
- java.io.IOException- If an IO error occurs
 
 - 
doUnlockprotected void doUnlock(HttpServletRequest req, HttpServletResponse resp) throws java.io.IOException UNLOCK Method.- Parameters:
- req- The Servlet request
- resp- The Servlet response
- Throws:
- java.io.IOException- If an IO error occurs
 
 - 
determineMethodsAllowedprotected java.lang.String determineMethodsAllowed(HttpServletRequest req) Determines the methods normally allowed for the resource.- Overrides:
- determineMethodsAllowedin class- DefaultServlet
- Parameters:
- req- The Servlet request
- Returns:
- The allowed HTTP methods
 
 
- 
 
-