javax.servlet

## Class GenericServlet

- java.lang.Object
- - javax.servlet.GenericServlet

All Implemented Interfaces:
  java.io.Serializable, Servlet, ServletConfig

Direct Known Subclasses:
  HttpServlet

    public abstract class GenericServlet
    extends java.lang.Object
    implements Servlet, ServletConfig, java.io.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 and Description
`GenericServlet()` Does nothing.

### Method Summary

Methods
`void` `destroy()` Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.
`java.lang.String` `getInitParameter(java.lang.String name)` Returns a `String` containing the value of the named initialization parameter, or `null` if the parameter does not exist.
`java.util.Enumeration<java.lang.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.
`java.lang.String` `getServletInfo()` Returns information about the servlet, such as author, version, and copyright.
`java.lang.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(java.lang.String msg)` Writes the specified message to a servlet log file, prepended by the servlet's name.
`void` `log(java.lang.String message, java.lang.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 Detail

#### GenericServlet

    public GenericServlet()

Does nothing. All of the servlet initialization is done by one of the `init` methods.

### Method Detail

#### 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 java.lang.String getInitParameter(java.lang.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 java.util.Enumeration<java.lang.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 java.lang.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(java.lang.String msg)

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

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

#### log

    public void log(java.lang.String message,
           java.lang.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,
                                 java.io.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
  `java.io.IOException` - if an input or output exception occurs

#### getServletName

    public java.lang.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