Package javax.servlet

# Class GenericServlet

java.lang.Object
javax.servlet.GenericServlet

All Implemented Interfaces:
  `Serializable`, `Servlet`, `ServletConfig`

Direct Known Subclasses:
  `HttpServlet`

public abstract class GenericServlet extends Object implements Servlet, ServletConfig, Serializable
Defines a generic, protocol-independent servlet. To write an HTTP servlet for use on the Web, extend `HttpServlet` instead.

`GenericServlet` implements the `Servlet` and `ServletConfig` interfaces. `GenericServlet` may be directly extended by a servlet, although it's more common to extend a protocol-specific subclass such as `HttpServlet`.

`GenericServlet` makes writing servlets easier. It provides simple versions of the lifecycle methods `init` and `destroy` and of the methods in the `ServletConfig` interface. `GenericServlet` also implements the `log` method, declared in the `ServletContext` interface.

To write a generic servlet, you need only override the abstract `service` method.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`GenericServlet()`
Does nothing.

## Method Summary

Modifier and Type
Method
Description
`void`
`destroy()`
Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.
`String`
`getInitParameter(String name)`
Returns a `String` containing the value of the named initialization parameter, or `null` if the parameter does not exist.
`Enumeration<String>`
`getInitParameterNames()`
Returns the names of the servlet's initialization parameters as an `Enumeration` of `String` objects, or an empty `Enumeration` if the servlet has no initialization parameters.
`ServletConfig`
`getServletConfig()`
Returns this servlet's `ServletConfig` object.
`ServletContext`
`getServletContext()`
Returns a reference to the `ServletContext` in which this servlet is running.
`String`
`getServletInfo()`
Returns information about the servlet, such as author, version, and copyright.
`String`
`getServletName()`
Returns the name of this servlet instance.
`void`
`init()`
A convenience method which can be overridden so that there's no need to call `super.init(config)`.
`void`
`init(ServletConfig config)`
Called by the servlet container to indicate to a servlet that the servlet is being placed into service.
`void`
`log(String message)`
Writes the specified message to a servlet log file, prepended by the servlet's name.
`void`
`log(String message, Throwable t)`
Writes an explanatory message and a stack trace for a given `Throwable` exception to the servlet log file, prepended by the servlet's name.
`abstract void`
`service(ServletRequest req, ServletResponse res)`
Called by the servlet container to allow the servlet to respond to a request.

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

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

## Constructor Details

### GenericServlet

public GenericServlet()
Does nothing. All of the servlet initialization is done by one of the `init` methods.

## Method Details

### destroy

public void destroy()
Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. See `Servlet.destroy()`.

Specified by:
  `destroy` in interface `Servlet`

### getInitParameter

public String getInitParameter(String name)
Returns a `String` containing the value of the named initialization parameter, or `null` if the parameter does not exist. See `ServletConfig.getInitParameter(java.lang.String)`.

This method is supplied for convenience. It gets the value of the named parameter from the servlet's `ServletConfig` object.

Specified by:
  `getInitParameter` in interface `ServletConfig`
Parameters:
  `name` - a `String` specifying the name of the initialization parameter
Returns:
  String a `String` containing the value of the initialization parameter

### getInitParameterNames

public Enumeration<String> getInitParameterNames()
Returns the names of the servlet's initialization parameters as an `Enumeration` of `String` objects, or an empty `Enumeration` if the servlet has no initialization parameters. See `ServletConfig.getInitParameterNames()`.

This method is supplied for convenience. It gets the parameter names from the servlet's `ServletConfig` object.

Specified by:
  `getInitParameterNames` in interface `ServletConfig`
Returns:
  Enumeration an enumeration of `String` objects containing the names of the servlet's initialization parameters

### getServletConfig

public ServletConfig getServletConfig()
Returns this servlet's `ServletConfig` object.

Specified by:
  `getServletConfig` in interface `Servlet`
Returns:
  ServletConfig the `ServletConfig` object that initialized this servlet
See Also:
  - `Servlet.init(javax.servlet.ServletConfig)`

### getServletContext

public ServletContext getServletContext()
Returns a reference to the `ServletContext` in which this servlet is running. See `ServletConfig.getServletContext()`.

This method is supplied for convenience. It gets the context from the servlet's `ServletConfig` object.

Specified by:
  `getServletContext` in interface `ServletConfig`
Returns:
  ServletContext the `ServletContext` object passed to this servlet by the `init` method
See Also:
  - `ServletContext`

### getServletInfo

public String getServletInfo()
Returns information about the servlet, such as author, version, and copyright. By default, this method returns an empty string. Override this method to have it return a meaningful value. See `Servlet.getServletInfo()`.

Specified by:
  `getServletInfo` in interface `Servlet`
Returns:
  String information about this servlet, by default an empty string

### init

public void init(ServletConfig config) throws ServletException
Called by the servlet container to indicate to a servlet that the servlet is being placed into service. See `Servlet.init(javax.servlet.ServletConfig)`.

This implementation stores the `ServletConfig` object it receives from the servlet container for later use. When overriding this form of the method, call `super.init(config)`.

Specified by:
  `init` in interface `Servlet`
Parameters:
  `config` - the `ServletConfig` object that contains configuration information for this servlet
Throws:
  `ServletException` - if an exception occurs that interrupts the servlet's normal operation
See Also:
  - `UnavailableException`

### init

public void init() throws ServletException
A convenience method which can be overridden so that there's no need to call `super.init(config)`.

Instead of overriding `init(ServletConfig)`, simply override this method and it will be called by `GenericServlet.init(ServletConfig config)`. The `ServletConfig` object can still be retrieved via `getServletConfig()`.

Throws:
  `ServletException` - if an exception occurs that interrupts the servlet's normal operation

### log

public void log(String message)
Writes the specified message to a servlet log file, prepended by the servlet's name. See `ServletContext.log(String)`.

Parameters:
  `message` - a `String` specifying the message to be written to the log file

### log

public void log(String message, Throwable t)
Writes an explanatory message and a stack trace for a given `Throwable` exception to the servlet log file, prepended by the servlet's name. See `ServletContext.log(String, Throwable)`.

Parameters:
  `message` - a `String` that describes the error or exception
  `t` - the `java.lang.Throwable` error or exception

### service

public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
Called by the servlet container to allow the servlet to respond to a request. See `Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)`.

This method is declared abstract so subclasses, such as `HttpServlet`, must override it.

Specified by:
  `service` in interface `Servlet`
Parameters:
  `req` - the `ServletRequest` object that contains the client's request
  `res` - the `ServletResponse` object that will contain the servlet's response
Throws:
  `ServletException` - if an exception occurs that interferes with the servlet's normal operation occurred
  `IOException` - if an input or output exception occurs

### getServletName

public String getServletName()
Returns the name of this servlet instance. See `ServletConfig.getServletName()`.

Specified by:
  `getServletName` in interface `ServletConfig`
Returns:
  the name of this servlet instance