Class HttpServletBean

All Implemented Interfaces:
Servlet, ServletConfig, Serializable, org.springframework.beans.factory.Aware, org.springframework.context.EnvironmentAware, org.springframework.core.env.EnvironmentCapable
Direct Known Subclasses:
FrameworkServlet

public abstract class HttpServletBean extends HttpServlet implements org.springframework.core.env.EnvironmentCapable, org.springframework.context.EnvironmentAware
Simple extension of HttpServlet which treats its config parameters (init-param entries within the servlet tag in web.xml) as bean properties.

A handy superclass for any type of servlet. Type conversion of config parameters is automatic, with the corresponding setter method getting invoked with the converted value. It is also possible for subclasses to specify required properties. Parameters without matching bean property setter will simply be ignored.

This servlet leaves request handling to subclasses, inheriting the default behavior of HttpServlet (doGet, doPost, etc).

This generic servlet base class has no dependency on the Spring ApplicationContext concept. Simple servlets usually don't load their own context but rather access service beans from the Spring root application context, accessible via the filter's ServletContext (see WebApplicationContextUtils).

The FrameworkServlet class is a more specific servlet base class which loads its own application context. FrameworkServlet serves as direct base class of Spring's full-fledged DispatcherServlet.

Author:
Rod Johnson, Juergen Hoeller
See Also:
  • Field Details

    • logger

      protected final org.apache.commons.logging.Log logger
      Logger available to subclasses.
  • Constructor Details

    • HttpServletBean

      public HttpServletBean()
  • Method Details

    • addRequiredProperty

      protected final void addRequiredProperty(String property)
      Subclasses can invoke this method to specify that this property (which must match a JavaBean property they expose) is mandatory, and must be supplied as a config parameter. This should be called from the constructor of a subclass.

      This method is only relevant in case of traditional initialization driven by a ServletConfig instance.

      Parameters:
      property - name of the required property
    • setEnvironment

      public void setEnvironment(org.springframework.core.env.Environment environment)
      Set the Environment that this servlet runs in.

      Any environment set here overrides the StandardServletEnvironment provided by default.

      Specified by:
      setEnvironment in interface org.springframework.context.EnvironmentAware
      Throws:
      IllegalArgumentException - if environment is not assignable to ConfigurableEnvironment
    • getEnvironment

      public org.springframework.core.env.ConfigurableEnvironment getEnvironment()
      Return the Environment associated with this servlet.

      If none specified, a default environment will be initialized via createEnvironment().

      Specified by:
      getEnvironment in interface org.springframework.core.env.EnvironmentCapable
    • createEnvironment

      protected org.springframework.core.env.ConfigurableEnvironment createEnvironment()
      Create and return a new StandardServletEnvironment.

      Subclasses may override this in order to configure the environment or specialize the environment type returned.

    • init

      public final void init() throws ServletException
      Map config parameters onto bean properties of this servlet, and invoke subclass initialization.
      Overrides:
      init in class GenericServlet
      Throws:
      ServletException - if bean properties are invalid (or required properties are missing), or if subclass initialization fails.
    • initBeanWrapper

      protected void initBeanWrapper(org.springframework.beans.BeanWrapper bw) throws org.springframework.beans.BeansException
      Initialize the BeanWrapper for this HttpServletBean, possibly with custom editors.

      This default implementation is empty.

      Parameters:
      bw - the BeanWrapper to initialize
      Throws:
      org.springframework.beans.BeansException - if thrown by BeanWrapper methods
      See Also:
      • PropertyEditorRegistry.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
    • initServletBean

      protected void initServletBean() throws ServletException
      Subclasses may override this to perform custom initialization. All bean properties of this servlet will have been set before this method is invoked.

      This default implementation is empty.

      Throws:
      ServletException - if subclass initialization fails
    • getServletName

      @Nullable public String getServletName()
      Overridden method that simply returns null when no ServletConfig set yet.
      Specified by:
      getServletName in interface ServletConfig
      Overrides:
      getServletName in class GenericServlet
      See Also: