org.springframework.web.servlet
Class HttpServletBean

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.springframework.web.servlet.HttpServletBean
All Implemented Interfaces:
Serializable, Servlet, ServletConfig, Aware, EnvironmentAware
Direct Known Subclasses:
FrameworkServlet, ResourceServlet

public abstract class HttpServletBean
extends HttpServlet
implements 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:
addRequiredProperty(java.lang.String), initServletBean(), HttpServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse), HttpServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse), Serialized Form

Field Summary
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
HttpServletBean()
           
 
Method Summary
protected  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.
 ServletContext getServletContext()
          Overridden method that simply returns null when no ServletConfig set yet.
 String getServletName()
          Overridden method that simply returns null when no ServletConfig set yet.
 void init()
          Map config parameters onto bean properties of this servlet, and invoke subclass initialization.
protected  void initBeanWrapper(BeanWrapper bw)
          Initialize the BeanWrapper for this HttpServletBean, possibly with custom editors.
protected  void initServletBean()
          Subclasses may override this to perform custom initialization.
 void setEnvironment(Environment environment)
          Set the Environment that this object runs in.
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletInfo, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Logger available to subclasses

Constructor Detail

HttpServletBean

public HttpServletBean()
Method Detail

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

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(BeanWrapper bw)
                        throws BeansException
Initialize the BeanWrapper for this HttpServletBean, possibly with custom editors.

This default implementation is empty.

Parameters:
bw - the BeanWrapper to initialize
Throws:
BeansException - if thrown by BeanWrapper methods
See Also:
PropertyEditorRegistry.registerCustomEditor(java.lang.Class, java.beans.PropertyEditor)

getServletName

public final 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:
GenericServlet.getServletConfig()

getServletContext

public final ServletContext getServletContext()
Overridden method that simply returns null when no ServletConfig set yet.

Specified by:
getServletContext in interface ServletConfig
Overrides:
getServletContext in class GenericServlet
See Also:
GenericServlet.getServletConfig()

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

setEnvironment

public void setEnvironment(Environment environment)
Set the Environment that this object runs in.

Any environment set here overrides the StandardServletEnvironment provided by default.

Specified by:
setEnvironment in interface EnvironmentAware