## org.apache.catalina.servlets
Class DefaultServlet

    java.lang.Object
      javax.servlet.GenericServlet
          javax.servlet.http.HttpServlet
              org.apache.catalina.servlets.DefaultServlet

All Implemented Interfaces:
  java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

Direct Known Subclasses:
  WebdavServlet

public class DefaultServlet
extends javax.servlet.http.HttpServlet

The default resource-serving servlet for most web applications, used to serve static resources such as HTML pages and images.

Version:
  $Revision: 1.23 $ $Date: 2004/05/26 16:03:06 $
Author:
  Craig R. McClanahan, Remy Maucherat
See Also:
  Serialized Form

Nested Class Summary
`protected class` `DefaultServlet.ResourceInfo`

Field Summary
`protected int` `debug` The debugging detail level for this servlet.
`protected java.lang.String` `globalXsltFile` Allow customized directory listing per instance.
`protected int` `input` The input buffer size to use when serving resources.
`protected boolean` `listings` Should we generate directory listings?
`protected java.lang.String` `localXsltFile` Allow customized directory listing per directory.
`protected static MD5Encoder` `md5Encoder` The MD5 helper object for this class.
`protected static java.security.MessageDigest` `md5Helper` MD5 message digest provider.
`protected static java.lang.String` `mimeSeparation` MIME multipart separation string
`protected int` `output` The output buffer size to use when serving resources.
`protected java.lang.String` `readmeFile` Allow a readme file to be included.
`protected boolean` `readOnly` Read only flag.
`protected static java.lang.String` `RESOURCES_JNDI_NAME` JNDI resources name.
`protected static StringManager` `sm` The string manager for this package.
`protected static URLEncoder` `urlEncoder` Array containing the safe characters set.

Constructor Summary
`DefaultServlet()`

Method Summary
`protected java.lang.String` `appendParameters(javax.servlet.http.HttpServletRequest request, java.lang.String redirectPath)` Append the request parameters to the redirection string before calling sendRedirect.
`protected boolean` `checkIfHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, DefaultServlet.ResourceInfo resourceInfo)` Check if the conditions specified in the optional If headers are satisfied.
`void` `destroy()` Finalize this servlet.
`protected void` `displaySize(java.lang.StringBuffer buf, int filesize)` Display the size of a file.
`protected void` `doDelete(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)` Process a POST request for the specified resource.
`protected void` `doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Process a GET request for the specified resource.
`protected void` `doHead(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Process a HEAD request for the specified resource.
`protected void` `doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Process a POST request for the specified resource.
`protected void` `doPut(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)` Process a POST request for the specified resource.
`protected java.io.File` `executePartialPut(javax.servlet.http.HttpServletRequest req, org.apache.catalina.servlets.DefaultServlet.Range range, java.lang.String path)` Handle a partial PUT.
`protected java.io.InputStream` `findXsltInputStream(javax.naming.directory.DirContext directory)` Return the xsl template inputstream (if possible)
`protected java.lang.String` `getETag(DefaultServlet.ResourceInfo resourceInfo)` Get the ETag associated with a file.
`protected java.lang.String` `getReadme(javax.naming.directory.DirContext directory)` Get the readme file as a string.
`protected java.lang.String` `getRelativePath(javax.servlet.http.HttpServletRequest request)` Return the relative path associated with this servlet.
`protected javax.naming.directory.DirContext` `getResources()` Get resources.
`void` `init()` Initialize this servlet.
`protected java.lang.String` `normalize(java.lang.String path)` Return a context-relative path, beginning with a "/", that represents the canonical version of the specified path after ".." and "." elements are resolved out.
`protected org.apache.catalina.servlets.DefaultServlet.Range` `parseContentRange(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Parse the content-range header.
`protected java.util.Vector` `parseRange(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, DefaultServlet.ResourceInfo resourceInfo)` Parse the range header.
`protected java.io.InputStream` `render(java.lang.String contextPath, DefaultServlet.ResourceInfo resourceInfo)` Decide which way to render.
`protected java.io.InputStream` `renderHtml(java.lang.String contextPath, DefaultServlet.ResourceInfo resourceInfo)` Return an InputStream to an HTML representation of the contents of this directory.
`protected java.lang.String` `renderSize(long size)` Render the specified file size (in bytes).
`protected java.io.InputStream` `renderXml(java.lang.String contextPath, DefaultServlet.ResourceInfo resourceInfo, java.io.InputStream xsltInputStream)` Return an InputStream to an HTML representation of the contents of this directory.
`protected java.lang.String` `rewriteUrl(java.lang.String path)` URL rewriter.
`protected void` `serveResource(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, boolean content)` Serve the specified resource, optionally including the data content.
`protected void` `showRequestInfo(javax.servlet.http.HttpServletRequest req)` Show HTTP header information.

Methods inherited from class javax.servlet.http.HttpServlet
`doOptions, doTrace, getLastModified, service, service`

Methods inherited from class javax.servlet.GenericServlet
`getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### debug

    protected int debug

  The debugging detail level for this servlet.

### input

    protected int input

  The input buffer size to use when serving resources.

### listings

    protected boolean listings

  Should we generate directory listings?

### readOnly

    protected boolean readOnly

  Read only flag. By default, it's set to true.

### output

    protected int output

  The output buffer size to use when serving resources.

### md5Helper

    protected static java.security.MessageDigest md5Helper

  MD5 message digest provider.

### md5Encoder

    protected static final MD5Encoder md5Encoder

  The MD5 helper object for this class.

### urlEncoder

    protected static URLEncoder urlEncoder

  Array containing the safe characters set.

### localXsltFile

    protected java.lang.String localXsltFile

  Allow customized directory listing per directory.

### globalXsltFile

    protected java.lang.String globalXsltFile

  Allow customized directory listing per instance.

### readmeFile

    protected java.lang.String readmeFile

  Allow a readme file to be included.

### mimeSeparation

    protected static final java.lang.String mimeSeparation

  MIME multipart separation string

  See Also:
    Constant Field Values

### RESOURCES_JNDI_NAME

    protected static final java.lang.String RESOURCES_JNDI_NAME

  JNDI resources name.

  See Also:
    Constant Field Values

### sm

    protected static StringManager sm

  The string manager for this package.

Constructor Detail

### DefaultServlet

    public DefaultServlet()

Method Detail

### destroy

    public void destroy()

  Finalize this servlet.

### init

    public void init()
              throws javax.servlet.ServletException

  Initialize this servlet.

  Throws:
    `javax.servlet.ServletException`

### getResources

    protected javax.naming.directory.DirContext getResources()

  Get resources. This method will try to retrieve the resources through JNDI first, then in the servlet context if JNDI has failed (it could be disabled). It will return null.

  Returns:
    A JNDI DirContext, or null.

### showRequestInfo

    protected void showRequestInfo(javax.servlet.http.HttpServletRequest req)

  Show HTTP header information.

### getRelativePath

    protected java.lang.String getRelativePath(javax.servlet.http.HttpServletRequest request)

  Return the relative path associated with this servlet.

  Parameters:
    `request` - The servlet request we are processing

### doGet

    protected void doGet(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response)
                  throws java.io.IOException,
                         javax.servlet.ServletException

  Process a GET request for the specified resource.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### doHead

    protected void doHead(javax.servlet.http.HttpServletRequest request,
                          javax.servlet.http.HttpServletResponse response)
                   throws java.io.IOException,
                          javax.servlet.ServletException

  Process a HEAD request for the specified resource.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### doPost

    protected void doPost(javax.servlet.http.HttpServletRequest request,
                          javax.servlet.http.HttpServletResponse response)
                   throws java.io.IOException,
                          javax.servlet.ServletException

  Process a POST request for the specified resource.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### doPut

    protected void doPut(javax.servlet.http.HttpServletRequest req,
                         javax.servlet.http.HttpServletResponse resp)
                  throws javax.servlet.ServletException,
                         java.io.IOException

  Process a POST request for the specified resource.

  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
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### executePartialPut

    protected java.io.File executePartialPut(javax.servlet.http.HttpServletRequest req,
                                             org.apache.catalina.servlets.DefaultServlet.Range range,
                                             java.lang.String path)
                                      throws java.io.IOException

  Handle a partial PUT. New content specified in request is appended to existing content in oldRevisionContent (if present). This code does not support simultaneous partial updates to the same resource.

  Throws:
    `java.io.IOException`

### doDelete

    protected void doDelete(javax.servlet.http.HttpServletRequest req,
                            javax.servlet.http.HttpServletResponse resp)
                     throws javax.servlet.ServletException,
                            java.io.IOException

  Process a POST request for the specified resource.

  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### checkIfHeaders

    protected boolean checkIfHeaders(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response,
                                     DefaultServlet.ResourceInfo resourceInfo)
                              throws java.io.IOException

  Check if the conditions specified in the optional If headers are satisfied.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `resourceInfo` - File object
  Returns:
    boolean true if the resource meets all the specified conditions, and false if any of the conditions is not satisfied, in which case request processing is stopped
  Throws:
    `java.io.IOException`

### getETag

    protected java.lang.String getETag(DefaultServlet.ResourceInfo resourceInfo)

  Get the ETag associated with a file.

  Parameters:
    `resourceInfo` - File object

### normalize

    protected java.lang.String normalize(java.lang.String path)

  Return a context-relative path, beginning with a "/", that represents the canonical version of the specified path after ".." and "." elements are resolved out. If the specified path attempts to go outside the boundaries of the current context (i.e. too many ".." path elements are present), return `null` instead.

  Parameters:
    `path` - Path to be normalized

### rewriteUrl

    protected java.lang.String rewriteUrl(java.lang.String path)

  URL rewriter.

  Parameters:
    `path` - Path which has to be rewiten

### displaySize

    protected void displaySize(java.lang.StringBuffer buf,
                               int filesize)

  Display the size of a file.

### serveResource

    protected void serveResource(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 boolean content)
                          throws java.io.IOException,
                                 javax.servlet.ServletException

  Serve the specified resource, optionally including the data content.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `content` - Should the content be included?
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet-specified error occurs

### parseContentRange

    protected org.apache.catalina.servlets.DefaultServlet.Range parseContentRange(javax.servlet.http.HttpServletRequest request,
                                                                                  javax.servlet.http.HttpServletResponse response)
                                                                           throws java.io.IOException

  Parse the content-range header.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Returns:
    Range
  Throws:
    `java.io.IOException`

### parseRange

    protected java.util.Vector parseRange(javax.servlet.http.HttpServletRequest request,
                                          javax.servlet.http.HttpServletResponse response,
                                          DefaultServlet.ResourceInfo resourceInfo)
                                   throws java.io.IOException

  Parse the range header.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Returns:
    Vector of ranges
  Throws:
    `java.io.IOException`

### appendParameters

    protected java.lang.String appendParameters(javax.servlet.http.HttpServletRequest request,
                                                java.lang.String redirectPath)

  Append the request parameters to the redirection string before calling sendRedirect.

### render

    protected java.io.InputStream render(java.lang.String contextPath,
                                         DefaultServlet.ResourceInfo resourceInfo)

  Decide which way to render. HTML or XML.

### renderXml

    protected java.io.InputStream renderXml(java.lang.String contextPath,
                                            DefaultServlet.ResourceInfo resourceInfo,
                                            java.io.InputStream xsltInputStream)

  Return an InputStream to an HTML representation of the contents of this directory.

  Parameters:
    `contextPath` - Context path to which our internal paths are relative

### renderHtml

    protected java.io.InputStream renderHtml(java.lang.String contextPath,
                                             DefaultServlet.ResourceInfo resourceInfo)

  Return an InputStream to an HTML representation of the contents of this directory.

  Parameters:
    `contextPath` - Context path to which our internal paths are relative

### renderSize

    protected java.lang.String renderSize(long size)

  Render the specified file size (in bytes).

  Parameters:
    `size` - File size (in bytes)

### getReadme

    protected java.lang.String getReadme(javax.naming.directory.DirContext directory)

  Get the readme file as a string.

### findXsltInputStream

    protected java.io.InputStream findXsltInputStream(javax.naming.directory.DirContext directory)

  Return the xsl template inputstream (if possible)

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.