public class DefaultServletHttpRequestHandler extends java.lang.Object implements HttpRequestHandler, ServletContextAware
HttpRequestHandler
for serving static files using the Servlet container's "default" Servlet.
This handler is intended to be used with a "/*" mapping when the
DispatcherServlet
is mapped to "/", thus overriding the Servlet container's default handling of static resources.
The mapping to this handler should generally be ordered as the last in the chain so that it will
only execute when no other more specific mappings (i.e., to controllers) can be matched.
Requests are handled by forwarding through the RequestDispatcher
obtained via the
name specified through the "defaultServletName" property
.
In most cases, the defaultServletName
does not need to be set explicitly, as the
handler checks at initialization time for the presence of the default Servlet of well-known
containers such as Tomcat, Jetty, Resin, WebLogic and WebSphere. However, when running in a
container where the default Servlet's name is not known, or where it has been customized
via server configuration, the defaultServletName
will need to be set explicitly.
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
COMMON_DEFAULT_SERVLET_NAME
Default Servlet name used by Tomcat, Jetty, JBoss, and GlassFish
|
private java.lang.String |
defaultServletName |
private static java.lang.String |
GAE_DEFAULT_SERVLET_NAME
Default Servlet name used by Google App Engine
|
private static java.lang.String |
RESIN_DEFAULT_SERVLET_NAME
Default Servlet name used by Resin
|
private ServletContext |
servletContext |
private static java.lang.String |
WEBLOGIC_DEFAULT_SERVLET_NAME
Default Servlet name used by WebLogic
|
private static java.lang.String |
WEBSPHERE_DEFAULT_SERVLET_NAME
Default Servlet name used by WebSphere
|
Constructor and Description |
---|
DefaultServletHttpRequestHandler() |
Modifier and Type | Method and Description |
---|---|
void |
handleRequest(HttpServletRequest request,
HttpServletResponse response)
Process the given request, generating a response.
|
void |
setDefaultServletName(java.lang.String defaultServletName)
Set the name of the default Servlet to be forwarded to for static resource requests.
|
void |
setServletContext(ServletContext servletContext)
If the
defaultServletName property has not been explicitly set,
attempts to locate the default Servlet using the known common
container-specific names. |
private static final java.lang.String COMMON_DEFAULT_SERVLET_NAME
private static final java.lang.String GAE_DEFAULT_SERVLET_NAME
private static final java.lang.String RESIN_DEFAULT_SERVLET_NAME
private static final java.lang.String WEBLOGIC_DEFAULT_SERVLET_NAME
private static final java.lang.String WEBSPHERE_DEFAULT_SERVLET_NAME
private java.lang.String defaultServletName
private ServletContext servletContext
public void setDefaultServletName(java.lang.String defaultServletName)
public void setServletContext(ServletContext servletContext)
defaultServletName
property has not been explicitly set,
attempts to locate the default Servlet using the known common
container-specific names.setServletContext
in interface ServletContextAware
servletContext
- ServletContext object to be used by this objectInitializingBean.afterPropertiesSet()
,
ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)
public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException
HttpRequestHandler
handleRequest
in interface HttpRequestHandler
request
- current HTTP requestresponse
- current HTTP responseServletException
- in case of general errorsjava.io.IOException
- in case of I/O errors