Base servlet for servlets within the web framework. Allows integration
with an application context, in a JavaBean-based overall solution.
This class offers the following functionality:
Uses a WebApplicationContext to access a BeanFactory. The servlet's
configuration is determined by beans in the servlet's namespace.
Publishes events on request processing, whether or not a request is
successfully handled.
Subclasses must implement doService() to handle requests. Because this extends
HttpServletBean rather than HttpServlet directly, bean properties are mapped
onto it. Subclasses can override initFrameworkServlet() for custom initialization.
Regards a "contextClass" parameter at the servlet init-param level,
falling back to the default context class (XmlWebApplicationContext) if not found.
With the default FrameworkServlet, a context class needs to implement
ConfigurableWebApplicationContext.
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 one of
Spring's default ApplicationContext implementations. 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.
This class offers the following functionality:
Subclasses must implement doService() to handle requests. Because this extends HttpServletBean rather than HttpServlet directly, bean properties are mapped onto it. Subclasses can override initFrameworkServlet() for custom initialization.
Regards a "contextClass" parameter at the servlet init-param level, falling back to the default context class (XmlWebApplicationContext) if not found. With the default FrameworkServlet, a context class needs to implement ConfigurableWebApplicationContext.
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 one of Spring's default ApplicationContext implementations. 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.