org.apache.struts2.dispatcher
Class DefaultStaticContentLoader

java.lang.Object
  extended by org.apache.struts2.dispatcher.DefaultStaticContentLoader
All Implemented Interfaces:
StaticContentLoader

public class DefaultStaticContentLoader
extends Object
implements StaticContentLoader


Field Summary
protected  String encoding
          Store state of StrutsConstants.STRUTS_I18N_ENCODING setting.
protected  Calendar lastModifiedCal
          Provide a formatted date for setting heading information when caching static content.
protected  String[] pathPrefixes
          Store set of path prefixes to use with static resources.
protected  boolean serveStatic
          Store state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.
protected  boolean serveStaticBrowserCache
          Store state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.
 
Constructor Summary
DefaultStaticContentLoader()
           
 
Method Summary
protected  String buildPath(String name, String packagePrefix)
           
 boolean canHandle(String resourcePath)
           
protected  String cleanupPath(String path)
           
protected  void copy(InputStream input, OutputStream output)
          Copy bytes from the input stream to the output stream.
protected  URL findResource(String path)
          Look for a static resource in the classpath.
 void findStaticResource(String path, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Locate a static resource and copy directly to the response, setting the appropriate caching headers.
protected  String getAdditionalPackages()
           
protected  String getContentType(String name)
          Determine the content type for the resource name.
protected  String[] parse(String packages)
          Create a string array from a comma-delimited list of packages.
protected  void process(InputStream is, String path, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
 void setEncoding(String val)
          Modify state of StrutsConstants.STRUTS_I18N_ENCODING setting.
 void setHostConfig(HostConfig filterConfig)
           
 void setServeStaticBrowserCache(String val)
          Modify state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.
 void setServeStaticContent(String val)
          Modify state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pathPrefixes

protected String[] pathPrefixes
Store set of path prefixes to use with static resources.


serveStatic

protected boolean serveStatic
Store state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.


serveStaticBrowserCache

protected boolean serveStaticBrowserCache
Store state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.


lastModifiedCal

protected final Calendar lastModifiedCal
Provide a formatted date for setting heading information when caching static content.


encoding

protected String encoding
Store state of StrutsConstants.STRUTS_I18N_ENCODING setting.

Constructor Detail

DefaultStaticContentLoader

public DefaultStaticContentLoader()
Method Detail

setServeStaticContent

public void setServeStaticContent(String val)
Modify state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.

Parameters:
val - New setting

setServeStaticBrowserCache

public void setServeStaticBrowserCache(String val)
Modify state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.

Parameters:
val - New setting

setEncoding

public void setEncoding(String val)
Modify state of StrutsConstants.STRUTS_I18N_ENCODING setting.

Parameters:
val - New setting

setHostConfig

public void setHostConfig(HostConfig filterConfig)
Specified by:
setHostConfig in interface StaticContentLoader
Parameters:
filterConfig - The filter configuration

getAdditionalPackages

protected String getAdditionalPackages()

parse

protected String[] parse(String packages)
Create a string array from a comma-delimited list of packages.

Parameters:
packages - A comma-delimited String listing packages
Returns:
A string array of packages

findStaticResource

public void findStaticResource(String path,
                               javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response)
                        throws IOException
Description copied from interface: StaticContentLoader
Locate a static resource and copy directly to the response, setting the appropriate caching headers.

Specified by:
findStaticResource in interface StaticContentLoader
Parameters:
path - The resource name
request - The request
response - The response
Throws:
IOException - If anything goes wrong

process

protected void process(InputStream is,
                       String path,
                       javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response)
                throws IOException
Throws:
IOException

findResource

protected URL findResource(String path)
                    throws IOException
Look for a static resource in the classpath.

Parameters:
path - The resource path
Returns:
The inputstream of the resource
Throws:
IOException - If there is a problem locating the resource

buildPath

protected String buildPath(String name,
                           String packagePrefix)
                    throws UnsupportedEncodingException
Parameters:
name - resource name
packagePrefix - The package prefix to use to locate the resource
Returns:
full path
Throws:
UnsupportedEncodingException
IOException

getContentType

protected String getContentType(String name)
Determine the content type for the resource name.

Parameters:
name - The resource name
Returns:
The mime type

copy

protected void copy(InputStream input,
                    OutputStream output)
             throws IOException
Copy bytes from the input stream to the output stream.

Parameters:
input - The input stream
output - The output stream
Throws:
IOException - If anything goes wrong

canHandle

public boolean canHandle(String resourcePath)
Specified by:
canHandle in interface StaticContentLoader
Parameters:
resourcePath - Requested resource path
Returns:
true if this loader is able to load this type of resource, false otherwise

cleanupPath

protected String cleanupPath(String path)
Parameters:
path - requested path
Returns:
path without leading "/struts" or "/static"


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