| org.springframework.web.servlet.HttpServletBean org.springframework.web.servlet.FrameworkServlet
All known Subclasses: org.springframework.web.servlet.DispatcherServlet,
FrameworkServlet | abstract public class FrameworkServlet extends HttpServletBean implements ApplicationListener(Code) | | Base servlet for Spring's web framework. Provides integration with
a Spring application context, in a JavaBean-based overall solution.
This class offers the following functionality:
Subclasses must implement
FrameworkServlet.doService to handle requests. Because this extends
HttpServletBean rather than HttpServlet directly, bean properties are
automatically mapped onto it. Subclasses can override
FrameworkServlet.initFrameworkServlet() for custom initialization.
Detects a "contextClass" parameter at the servlet init-param level,
falling back to the default context class,
org.springframework.web.context.support.XmlWebApplicationContext ,
if not found. Note that, with the default FrameworkServlet,
a custom context class needs to implement the
org.springframework.web.context.ConfigurableWebApplicationContext SPI.
Passes a "contextConfigLocation" servlet init-param to the context instance,
parsing it into potentially multiple file paths which can be separated by any
number of commas and spaces, like "test-servlet.xml, myServlet.xml".
If not explicitly specified, the context implementation is supposed to build a
default location from the namespace of the servlet.
Note: In case of multiple config locations, later bean definitions will
override ones defined in earlier loaded files, at least when using Spring's
default ApplicationContext implementation. This can be leveraged to
deliberately override certain bean definitions via an extra XML file.
The default namespace is "'servlet-name'-servlet", e.g. "test-servlet" for a
servlet-name "test" (leading to a "/WEB-INF/test-servlet.xml" default location
with XmlWebApplicationContext). The namespace can also be set explicitly via
the "namespace" servlet init-param.
author: Rod Johnson author: Juergen Hoeller See Also: FrameworkServlet.doService See Also: FrameworkServlet.setContextClass See Also: FrameworkServlet.setContextConfigLocation See Also: FrameworkServlet.setNamespace |
Method Summary | |
protected WebApplicationContext | createWebApplicationContext(WebApplicationContext parent) Instantiate the WebApplicationContext for this servlet, either a default
org.springframework.web.context.support.XmlWebApplicationContext or a
FrameworkServlet.setContextClass custom context class , if set.
This implementation expects custom contexts to implement the
org.springframework.web.context.ConfigurableWebApplicationContext interface. | public void | destroy() Close the WebApplicationContext of this servlet. | final protected void | doDelete(HttpServletRequest request, HttpServletResponse response) Delegate DELETE requests to
FrameworkServlet.processRequest . | final protected void | doGet(HttpServletRequest request, HttpServletResponse response) Delegate GET requests to processRequest/doService. | final protected void | doPost(HttpServletRequest request, HttpServletResponse response) Delegate POST requests to
FrameworkServlet.processRequest . | final protected void | doPut(HttpServletRequest request, HttpServletResponse response) Delegate PUT requests to
FrameworkServlet.processRequest . | abstract protected void | doService(HttpServletRequest request, HttpServletResponse response) Subclasses must implement this method to do the work of request handling,
receiving a centralized callback for GET, POST, PUT and DELETE. | public Class | getContextClass() Return the custom context class. | public String | getContextConfigLocation() Return the explicit context config location, if any. | public String | getNamespace() Return the namespace for this servlet, falling back to default scheme if
no custom namespace was set: e.g. | public String | getServletContextAttributeName() Return the ServletContext attribute name for this servlet's WebApplicationContext. | protected String | getUsernameForRequest(HttpServletRequest request) Determine the username for the given request. | final public WebApplicationContext | getWebApplicationContext() Return this servlet's WebApplicationContext. | protected void | initFrameworkServlet() This method will be invoked after any bean properties have been set and
the WebApplicationContext has been loaded. | final protected void | initServletBean() Overridden method of
HttpServletBean , invoked after any bean properties
have been set. | protected WebApplicationContext | initWebApplicationContext() Initialize and publish the WebApplicationContext for this servlet.
Delegates to
FrameworkServlet.createWebApplicationContext for actual creation
of the context. | public boolean | isPublishContext() Return whether to publish this servlet's context as a ServletContext attribute. | public boolean | isPublishEvents() Return whether this servlet should publish a ServletRequestHandledEvent
at the end of each request. | public void | onApplicationEvent(ApplicationEvent event) ApplicationListener endpoint that receives events from this servlet's
WebApplicationContext. | protected void | onRefresh(ApplicationContext context) Template method which can be overridden to add servlet-specific refresh work. | protected void | postProcessWebApplicationContext(ConfigurableWebApplicationContext wac) Post-process the given WebApplicationContext before it is refreshed
and activated as context for this servlet.
The default implementation is empty. | final protected void | processRequest(HttpServletRequest request, HttpServletResponse response) Process this request, publishing an event regardless of the outcome. | public void | refresh() Refresh this servlet's application context, as well as the
dependent state of the servlet. | public void | setContextClass(Class contextClass) Set a custom context class. | public void | setContextConfigLocation(String contextConfigLocation) Set the context config location explicitly, instead of relying on the default
location built from the namespace. | public void | setNamespace(String namespace) Set a custom namespace for this servlet,
to be used for building a default context config location. | public void | setPublishContext(boolean publishContext) Set whether to publish this servlet's context as a ServletContext attribute,
available to all objects in the web container. | public void | setPublishEvents(boolean publishEvents) Set whether this servlet should publish a ServletRequestHandledEvent at the end
of each request. |
DEFAULT_NAMESPACE_SUFFIX | final public static String DEFAULT_NAMESPACE_SUFFIX(Code) | | Suffix for WebApplicationContext namespaces. If a servlet of this class is
given the name "test" in a context, the namespace used by the servlet will
resolve to "test-servlet".
|
SERVLET_CONTEXT_PREFIX | final public static String SERVLET_CONTEXT_PREFIX(Code) | | Prefix for the ServletContext attribute for the WebApplicationContext.
The completion is the servlet name.
|
doService | abstract protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception(Code) | | Subclasses must implement this method to do the work of request handling,
receiving a centralized callback for GET, POST, PUT and DELETE.
The contract is essentially the same as that for the commonly overridden
doGet or doPost methods of HttpServlet.
This class intercepts calls to ensure that exception handling and
event publication takes place.
Parameters: request - current HTTP request Parameters: response - current HTTP response throws: Exception - in case of any kind of processing failure See Also: javax.servlet.http.HttpServlet.doGet See Also: javax.servlet.http.HttpServlet.doPost |
getContextClass | public Class getContextClass()(Code) | | Return the custom context class.
|
getContextConfigLocation | public String getContextConfigLocation()(Code) | | Return the explicit context config location, if any.
|
getNamespace | public String getNamespace()(Code) | | Return the namespace for this servlet, falling back to default scheme if
no custom namespace was set: e.g. "test-servlet" for a servlet named "test".
|
getWebApplicationContext | final public WebApplicationContext getWebApplicationContext()(Code) | | Return this servlet's WebApplicationContext.
|
initFrameworkServlet | protected void initFrameworkServlet() throws ServletException, BeansException(Code) | | This method will be invoked after any bean properties have been set and
the WebApplicationContext has been loaded. The default implementation is empty;
subclasses may override this method to perform any initialization they require.
throws: ServletException - in case of an initialization exception throws: BeansException - if thrown by ApplicationContext methods |
isPublishContext | public boolean isPublishContext()(Code) | | Return whether to publish this servlet's context as a ServletContext attribute.
|
isPublishEvents | public boolean isPublishEvents()(Code) | | Return whether this servlet should publish a ServletRequestHandledEvent
at the end of each request.
|
setContextConfigLocation | public void setContextConfigLocation(String contextConfigLocation)(Code) | | Set the context config location explicitly, instead of relying on the default
location built from the namespace. This location string can consist of
multiple locations separated by any number of commas and spaces.
|
setNamespace | public void setNamespace(String namespace)(Code) | | Set a custom namespace for this servlet,
to be used for building a default context config location.
|
setPublishContext | public void setPublishContext(boolean publishContext)(Code) | | Set whether to publish this servlet's context as a ServletContext attribute,
available to all objects in the web container. Default is "true".
This is especially handy during testing, although it is debatable whether
it's good practice to let other application objects access the context this way.
|
setPublishEvents | public void setPublishEvents(boolean publishEvents)(Code) | | Set whether this servlet should publish a ServletRequestHandledEvent at the end
of each request. Default is "true"; can be turned off for a slight performance
improvement, provided that no ApplicationListeners rely on such events.
See Also: org.springframework.web.context.support.ServletRequestHandledEvent |
Fields inherited from org.springframework.web.servlet.HttpServletBean | final protected Log logger(Code)(Java Doc)
|
|
|