Package org.springframework.web.servlet

# Class HttpServletBean

java.lang.Object
jakarta.servlet.GenericServlet
jakarta.servlet.http.HttpServlet
org.springframework.web.servlet.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:
  - `addRequiredProperty(java.lang.String)`
  - `initServletBean()`
  - `HttpServlet.doGet(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)`
  - `HttpServlet.doPost(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)`
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`
Logger available to subclasses.

### Fields inherited from class jakarta.servlet.http.HttpServlet

`LEGACY_DO_HEAD`

## Constructor Summary

Constructors
Constructor
Description
`HttpServletBean()`

## Method Summary

Modifier and Type
Method
Description
`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.
`protected org.springframework.core.env.ConfigurableEnvironment`
`createEnvironment()`
Create and return a new `StandardServletEnvironment`.
`org.springframework.core.env.ConfigurableEnvironment`
`getEnvironment()`
Return the `Environment` associated with this servlet.
`String`
`getServletName()`
Overridden method that simply returns `null` when no ServletConfig set yet.
`final void`
`init()`
Map config parameters onto bean properties of this servlet, and invoke subclass initialization.
`protected void`
`initBeanWrapper(org.springframework.beans.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(org.springframework.core.env.Environment environment)`
Set the `Environment` that this servlet runs in.

### Methods inherited from class jakarta.servlet.http.HttpServlet

`doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, init, service, service`

### Methods inherited from class jakarta.servlet.GenericServlet

`destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, log, log`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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:
  - `GenericServlet.getServletConfig()`