org.eclipse.jetty.servlet

## Class DefaultServlet

- java.lang.Object
- - javax.servlet.GenericServlet
  - - javax.servlet.http.HttpServlet
    - - org.eclipse.jetty.servlet.DefaultServlet

All Implemented Interfaces:
  Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, ResourceFactory

    public class DefaultServlet
    extends javax.servlet.http.HttpServlet
    implements ResourceFactory

The default servlet. This servlet, normally mapped to /, provides the handling for static content, OPTION and TRACE methods for the context. The following initParameters are supported, these can be set either on the servlet itself or as ServletContext initParameters with a prefix of org.eclipse.jetty.servlet.Default. :

      acceptRanges      If true, range requests and responses are
                        supported

      dirAllowed        If true, directory listings are returned if no
                        welcome file is found. Else 403 Forbidden.

      welcomeServlets   If true, attempt to dispatch to welcome files
                        that are servlets, but only after no matching static
                        resources could be found. If false, then a welcome
                        file must exist on disk. If "exact", then exact
                        servlet matches are supported without an existing file.
                        Default is true.

                        This must be false if you want directory listings,
                        but have index.jsp in your welcome file list.

      redirectWelcome   If true, welcome files are redirected rather than
                        forwarded to.

      gzip              If set to true, then static content will be served as
                        gzip content encoded if a matching resource is
                        found ending with ".gz"

      resourceBase      Set to replace the context resource base

      resourceCache     If set, this is a context attribute name, which the servlet
                        will use to look for a shared ResourceCache instance.

      relativeResourceBase
                        Set with a pathname relative to the base of the
                        servlet context root. Useful for only serving static content out
                        of only specific subdirectories.

      pathInfoOnly      If true, only the path info will be applied to the resourceBase

      stylesheet          Set with the location of an optional stylesheet that will be used
                        to decorate the directory listing html.

      aliases           If True, aliases of resources are allowed (eg. symbolic
                        links and caps variations). May bypass security constraints.

      maxCacheSize      The maximum total size of the cache or 0 for no cache.
      maxCachedFileSize The maximum size of a file to cache
      maxCachedFiles    The maximum number of files to cache

      useFileMappedBuffer
                        If set to true, it will use mapped file buffer to serve static content
                        when using NIO connector. Setting this value to false means that
                        a direct buffer will be used instead of a mapped file buffer.
                        By default, this is set to true.

      cacheControl      If set, all static content will have this value set as the cache-control
                        header.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`DefaultServlet()`

### Method Summary

Methods
`void` `destroy()`
`protected void` `doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)`
`protected void` `doOptions(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)`
`protected void` `doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)`
`protected void` `doTrace(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)`
`String` `getInitParameter(String name)`
`Resource` `getResource(String pathInContext)` get Resource to serve.
`void` `init()`
`protected ContextHandler` `initContextHandler(javax.servlet.ServletContext servletContext)` Compute the field _contextHandler. In the case where the DefaultServlet is deployed on the HttpService it is likely that this method needs to be overwritten to unwrap the ServletContext facade until we reach the original jetty's ContextHandler.
`protected boolean` `passConditionalHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Resource resource, HttpContent content)`
`protected void` `sendData(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, boolean include, Resource resource, HttpContent content, Enumeration reqRanges)`
`protected void` `sendDirectory(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Resource resource, String pathInContext)`
`protected void` `writeHeaders(javax.servlet.http.HttpServletResponse response, HttpContent content, long count)`
`protected void` `writeOptionHeaders(HttpFields fields)`
`protected void` `writeOptionHeaders(javax.servlet.http.HttpServletResponse response)`

### Methods inherited from class javax.servlet.http.HttpServlet

`doDelete, doHead, doPut, getLastModified, service, service`

### Methods inherited from class javax.servlet.GenericServlet

`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`

### Constructor Detail

#### DefaultServlet

    public DefaultServlet()

### Method Detail

#### init

    public void init()
              throws javax.servlet.UnavailableException

Overrides:
  `init` in class `javax.servlet.GenericServlet`
Throws:
  `javax.servlet.UnavailableException`

#### initContextHandler

    protected ContextHandler initContextHandler(javax.servlet.ServletContext servletContext)

Compute the field _contextHandler.
In the case where the DefaultServlet is deployed on the HttpService it is likely that this method needs to be overwritten to unwrap the ServletContext facade until we reach the original jetty's ContextHandler.

Parameters:
  `servletContext` - The servletContext of this servlet.
Returns:
  the jetty's ContextHandler for this servletContext.

#### getInitParameter

    public String getInitParameter(String name)

Specified by:
  `getInitParameter` in interface `javax.servlet.ServletConfig`
Overrides:
  `getInitParameter` in class `javax.servlet.GenericServlet`

#### getResource

    public Resource getResource(String pathInContext)

get Resource to serve. Map a path to a resource. The default implementation calls HttpContext.getResource but derived servlets may provide their own mapping.

Specified by:
  `getResource` in interface `ResourceFactory`
Parameters:
  `pathInContext` - The path to find a resource for.
Returns:
  The resource to serve.

#### doGet

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

Overrides:
  `doGet` in class `javax.servlet.http.HttpServlet`
Throws:
  `javax.servlet.ServletException`
  `IOException`

#### doPost

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

Overrides:
  `doPost` in class `javax.servlet.http.HttpServlet`
Throws:
  `javax.servlet.ServletException`
  `IOException`

#### doTrace

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

Overrides:
  `doTrace` in class `javax.servlet.http.HttpServlet`
Throws:
  `javax.servlet.ServletException`
  `IOException`

#### doOptions

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

Overrides:
  `doOptions` in class `javax.servlet.http.HttpServlet`
Throws:
  `javax.servlet.ServletException`
  `IOException`

#### passConditionalHeaders

    protected boolean passConditionalHeaders(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 Resource resource,
                                 HttpContent content)
                                      throws IOException

Throws:
  `IOException`

#### sendDirectory

    protected void sendDirectory(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response,
                     Resource resource,
                     String pathInContext)
                          throws IOException

Throws:
  `IOException`

#### sendData

    protected void sendData(javax.servlet.http.HttpServletRequest request,
                javax.servlet.http.HttpServletResponse response,
                boolean include,
                Resource resource,
                HttpContent content,
                Enumeration reqRanges)
                     throws IOException

Throws:
  `IOException`

#### writeHeaders

    protected void writeHeaders(javax.servlet.http.HttpServletResponse response,
                    HttpContent content,
                    long count)
                         throws IOException

Throws:
  `IOException`

#### writeOptionHeaders

    protected void writeOptionHeaders(HttpFields fields)
                               throws IOException

Throws:
  `IOException`

#### writeOptionHeaders

    protected void writeOptionHeaders(javax.servlet.http.HttpServletResponse response)
                               throws IOException

Throws:
  `IOException`

#### destroy

    public void destroy()

Specified by:
  `destroy` in interface `javax.servlet.Servlet`
Overrides:
  `destroy` in class `javax.servlet.GenericServlet`