Apache Tomcat 6.0.41

org.apache.catalina.servlets
Class DefaultServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by 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.

This servlet is intended to be mapped to / e.g.:

   <servlet-mapping>
       <servlet-name>default</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
 

It can be mapped to sub-paths, however in all cases resources are served from the web appplication resource root using the full path from the root of the web application context.
e.g. given a web application structure:

 /context
   /images
     tomcat2.jpg
   /static
     /images
       tomcat.jpg
 

... and a servlet mapping that maps only /static/* to the default servlet:

   <servlet-mapping>
       <servlet-name>default</servlet-name>
       <url-pattern>/static/*</url-pattern>
   </servlet-mapping>
 

Then a request to /context/static/images/tomcat.jpg will succeed while a request to /context/images/tomcat2.jpg will fail.

Author:
Craig R. McClanahan, Remy Maucherat
See Also:
Serialized Form

Nested Class Summary
protected  class DefaultServlet.Range
           
 
Field Summary
protected static int BUFFER_SIZE
          Size of file transfer buffer in bytes.
protected  java.lang.String contextXsltFile
          Allow customized directory listing per context.
protected  int debug
          The debugging detail level for this servlet.
protected  java.lang.String fileEncoding
          File encoding to be used when reading static files.
protected static java.util.ArrayList FULL
          Full range marker.
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 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  ProxyDirContext resources
          Proxy directory context.
protected static java.lang.String RESOURCES_JNDI_NAME
          JNDI resources name.
protected  int sendfileSize
          Minimum size for sendfile usage in bytes.
protected static StringManager sm
          The string manager for this package.
protected static URLEncoder urlEncoder
          Array containing the safe characters set.
protected  boolean useAcceptRanges
          Should the Accept-Ranges: bytes header be send with static resources?
 
Constructor Summary
DefaultServlet()
           
 
Method Summary
protected  boolean checkIfHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Check if the conditions specified in the optional If headers are satisfied.
protected  boolean checkIfMatch(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Check if the if-match condition is satisfied.
protected  boolean checkIfModifiedSince(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Check if the if-modified-since condition is satisfied.
protected  boolean checkIfNoneMatch(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Check if the if-none-match condition is satisfied.
protected  boolean checkIfUnmodifiedSince(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Check if the if-unmodified-since condition is satisfied.
protected  boolean checkSendfile(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, CacheEntry entry, long length, DefaultServlet.Range range)
          Check if sendfile can be used.
protected  void copy(CacheEntry cacheEntry, java.io.InputStream is, java.io.PrintWriter writer)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  void copy(CacheEntry cacheEntry, java.io.InputStream is, javax.servlet.ServletOutputStream ostream)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  void copy(CacheEntry cacheEntry, java.io.PrintWriter writer, DefaultServlet.Range range)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  void copy(CacheEntry cacheEntry, java.io.PrintWriter writer, java.util.Iterator ranges, java.lang.String contentType)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  void copy(CacheEntry cacheEntry, javax.servlet.ServletOutputStream ostream, DefaultServlet.Range range)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  void copy(CacheEntry cacheEntry, javax.servlet.ServletOutputStream ostream, java.util.Iterator ranges, java.lang.String contentType)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  java.io.IOException copyRange(java.io.InputStream istream, javax.servlet.ServletOutputStream ostream)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  java.io.IOException copyRange(java.io.InputStream istream, javax.servlet.ServletOutputStream ostream, long start, long end)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  java.io.IOException copyRange(java.io.Reader reader, java.io.PrintWriter writer)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
protected  java.io.IOException copyRange(java.io.Reader reader, java.io.PrintWriter writer, long start, long end)
          Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).
 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 doOptions(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
          Override default implementation to ensure that TRACE is correctly handled.
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, DefaultServlet.Range range, java.lang.String path)
          Handle a partial PUT.
protected  javax.xml.transform.Source findXsltInputStream(javax.naming.directory.DirContext directory)
          Return a Source for the xsl template (if possible)
protected  java.lang.String getPathPrefix(javax.servlet.http.HttpServletRequest request)
          Determines the appropriate path to prepend resources with when generating directory listings.
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.
 void init()
          Initialize this servlet.
protected  DefaultServlet.Range parseContentRange(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Parse the content-range header.
protected  java.util.ArrayList parseRange(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ResourceAttributes resourceAttributes)
          Parse the range header.
protected  java.io.InputStream render(java.lang.String contextPath, CacheEntry cacheEntry)
          Decide which way to render.
protected  java.io.InputStream renderHtml(java.lang.String contextPath, CacheEntry cacheEntry)
          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, CacheEntry cacheEntry, javax.xml.transform.Source xsltSource)
          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.
 
Methods inherited from class javax.servlet.http.HttpServlet
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.


urlEncoder

protected static URLEncoder urlEncoder
Array containing the safe characters set.


localXsltFile

protected java.lang.String localXsltFile
Allow customized directory listing per directory.


contextXsltFile

protected java.lang.String contextXsltFile
Allow customized directory listing per context.


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.


resources

protected ProxyDirContext resources
Proxy directory context.


fileEncoding

protected java.lang.String fileEncoding
File encoding to be used when reading static files. If none is specified the platform default is used.


sendfileSize

protected int sendfileSize
Minimum size for sendfile usage in bytes.


useAcceptRanges

protected boolean useAcceptRanges
Should the Accept-Ranges: bytes header be send with static resources?


FULL

protected static java.util.ArrayList FULL
Full range marker.


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.


BUFFER_SIZE

protected static final int BUFFER_SIZE
Size of file transfer buffer in bytes.

See Also:
Constant Field Values
Constructor Detail

DefaultServlet

public DefaultServlet()
Method Detail

destroy

public void destroy()
Finalize this servlet.

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

init

public void init()
          throws javax.servlet.ServletException
Initialize this servlet.

Overrides:
init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException - if an exception occurs that interrupts the servlet's normal operation

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

getPathPrefix

protected java.lang.String getPathPrefix(javax.servlet.http.HttpServletRequest request)
Determines the appropriate path to prepend resources with when generating directory listings. Depending on the behaviour of getRelativePath(HttpServletRequest) this will change.

Parameters:
request - the request to determine the path for
Returns:
the prefix to apply to all resources in the listing.

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.

Overrides:
doGet in class javax.servlet.http.HttpServlet
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
See Also:
ServletResponse.setContentType(java.lang.String)

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.

Overrides:
doHead in class javax.servlet.http.HttpServlet
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

doOptions

protected void doOptions(javax.servlet.http.HttpServletRequest req,
                         javax.servlet.http.HttpServletResponse resp)
                  throws javax.servlet.ServletException,
                         java.io.IOException
Override default implementation to ensure that TRACE is correctly handled.

Overrides:
doOptions in class javax.servlet.http.HttpServlet
Parameters:
req - the HttpServletRequest object that contains the request the client made of the servlet
resp - the HttpServletResponse object that contains the response the servlet returns to the client
Throws:
java.io.IOException - if an input or output error occurs while the servlet is handling the OPTIONS request
javax.servlet.ServletException - if the request for the OPTIONS cannot be handled

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.

Overrides:
doPost in class javax.servlet.http.HttpServlet
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
See Also:
ServletOutputStream, ServletResponse.setContentType(java.lang.String)

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.

Overrides:
doPut in class javax.servlet.http.HttpServlet
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,
                                         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.

Overrides:
doDelete in class javax.servlet.http.HttpServlet
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

checkIfHeaders

protected boolean checkIfHeaders(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 ResourceAttributes resourceAttributes)
                          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
resourceAttributes - The resource information
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

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 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.ArrayList parseRange(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         ResourceAttributes resourceAttributes)
                                  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

render

protected java.io.InputStream render(java.lang.String contextPath,
                                     CacheEntry cacheEntry)
                              throws java.io.IOException,
                                     javax.servlet.ServletException
Decide which way to render. HTML or XML.

Throws:
java.io.IOException
javax.servlet.ServletException

renderXml

protected java.io.InputStream renderXml(java.lang.String contextPath,
                                        CacheEntry cacheEntry,
                                        javax.xml.transform.Source xsltSource)
                                 throws java.io.IOException,
                                        javax.servlet.ServletException
Return an InputStream to an HTML representation of the contents of this directory.

Parameters:
contextPath - Context path to which our internal paths are relative
Throws:
java.io.IOException
javax.servlet.ServletException

renderHtml

protected java.io.InputStream renderHtml(java.lang.String contextPath,
                                         CacheEntry cacheEntry)
                                  throws java.io.IOException,
                                         javax.servlet.ServletException
Return an InputStream to an HTML representation of the contents of this directory.

Parameters:
contextPath - Context path to which our internal paths are relative
Throws:
java.io.IOException
javax.servlet.ServletException

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)
                              throws java.io.IOException,
                                     javax.servlet.ServletException
Get the readme file as a string.

Throws:
java.io.IOException
javax.servlet.ServletException

findXsltInputStream

protected javax.xml.transform.Source findXsltInputStream(javax.naming.directory.DirContext directory)
                                                  throws java.io.IOException,
                                                         javax.servlet.ServletException
Return a Source for the xsl template (if possible)

Throws:
java.io.IOException
javax.servlet.ServletException

checkSendfile

protected boolean checkSendfile(javax.servlet.http.HttpServletRequest request,
                                javax.servlet.http.HttpServletResponse response,
                                CacheEntry entry,
                                long length,
                                DefaultServlet.Range range)
Check if sendfile can be used.


checkIfMatch

protected boolean checkIfMatch(javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response,
                               ResourceAttributes resourceAttributes)
                        throws java.io.IOException
Check if the if-match condition is satisfied.

Parameters:
request - The servlet request we are processing
response - The servlet response we are creating
resourceAttributes - Attributes of requested resource
Returns:
boolean true if the resource meets the specified condition, and false if the condition is not satisfied, in which case request processing is stopped
Throws:
java.io.IOException

checkIfModifiedSince

protected boolean checkIfModifiedSince(javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response,
                                       ResourceAttributes resourceAttributes)
                                throws java.io.IOException
Check if the if-modified-since condition is satisfied.

Parameters:
request - The servlet request we are processing
response - The servlet response we are creating
resourceAttributes - Attributes of requested resource
Returns:
boolean true if the resource meets the specified condition, and false if the condition is not satisfied, in which case request processing is stopped
Throws:
java.io.IOException

checkIfNoneMatch

protected boolean checkIfNoneMatch(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response,
                                   ResourceAttributes resourceAttributes)
                            throws java.io.IOException
Check if the if-none-match condition is satisfied.

Parameters:
request - The servlet request we are processing
response - The servlet response we are creating
resourceAttributes - Attributes of requested resource
Returns:
boolean true if the resource meets the specified condition, and false if the condition is not satisfied, in which case request processing is stopped
Throws:
java.io.IOException

checkIfUnmodifiedSince

protected boolean checkIfUnmodifiedSince(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         ResourceAttributes resourceAttributes)
                                  throws java.io.IOException
Check if the if-unmodified-since condition is satisfied.

Parameters:
request - The servlet request we are processing
response - The servlet response we are creating
resourceAttributes - Attributes of requested resource
Returns:
boolean true if the resource meets the specified condition, and false if the condition is not satisfied, in which case request processing is stopped
Throws:
java.io.IOException

copy

protected void copy(CacheEntry cacheEntry,
                    java.io.InputStream is,
                    javax.servlet.ServletOutputStream ostream)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
ostream - The output stream to write to
Throws:
java.io.IOException - if an input/output error occurs

copy

protected void copy(CacheEntry cacheEntry,
                    java.io.InputStream is,
                    java.io.PrintWriter writer)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
writer - The writer to write to
Throws:
java.io.IOException - if an input/output error occurs

copy

protected void copy(CacheEntry cacheEntry,
                    javax.servlet.ServletOutputStream ostream,
                    DefaultServlet.Range range)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
ostream - The output stream to write to
range - Range the client wanted to retrieve
Throws:
java.io.IOException - if an input/output error occurs

copy

protected void copy(CacheEntry cacheEntry,
                    java.io.PrintWriter writer,
                    DefaultServlet.Range range)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
writer - The writer to write to
range - Range the client wanted to retrieve
Throws:
java.io.IOException - if an input/output error occurs

copy

protected void copy(CacheEntry cacheEntry,
                    javax.servlet.ServletOutputStream ostream,
                    java.util.Iterator ranges,
                    java.lang.String contentType)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
ostream - The output stream to write to
ranges - Enumeration of the ranges the client wanted to retrieve
contentType - Content type of the resource
Throws:
java.io.IOException - if an input/output error occurs

copy

protected void copy(CacheEntry cacheEntry,
                    java.io.PrintWriter writer,
                    java.util.Iterator ranges,
                    java.lang.String contentType)
             throws java.io.IOException
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
cacheEntry - Cached version of requested resource
writer - The writer to write to
ranges - Enumeration of the ranges the client wanted to retrieve
contentType - Content type of the resource
Throws:
java.io.IOException - if an input/output error occurs

copyRange

protected java.io.IOException copyRange(java.io.InputStream istream,
                                        javax.servlet.ServletOutputStream ostream)
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
istream - The input stream to read from
ostream - The output stream to write to
Returns:
Exception which occurred during processing

copyRange

protected java.io.IOException copyRange(java.io.Reader reader,
                                        java.io.PrintWriter writer)
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
reader - The reader to read from
writer - The writer to write to
Returns:
Exception which occurred during processing

copyRange

protected java.io.IOException copyRange(java.io.InputStream istream,
                                        javax.servlet.ServletOutputStream ostream,
                                        long start,
                                        long end)
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
istream - The input stream to read from
ostream - The output stream to write to
start - Start of the range which will be copied
end - End of the range which will be copied
Returns:
Exception which occurred during processing

copyRange

protected java.io.IOException copyRange(java.io.Reader reader,
                                        java.io.PrintWriter writer,
                                        long start,
                                        long end)
Copy the contents of the specified input stream to the specified output stream, and ensure that both streams are closed before returning (even in the face of an exception).

Parameters:
reader - The reader to read from
writer - The writer to write to
start - Start of the range which will be copied
end - End of the range which will be copied
Returns:
Exception which occurred during processing

Apache Tomcat 6.0.41

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