# Package javax.servlet

The javax.servlet package contains a number of classes and interfaces that describe and define the contracts between a servlet class and the runtime environment provided for an instance of such a class by a conforming servlet container.

- Interface Summary
  Interface | Description
  --- | ---
  AsyncContext | TODO SERVLET3 - Add comments
  AsyncListener | Listener for events associated with an `AsyncContext`.
  Filter | A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both.
  FilterChain | A FilterChain is an object provided by the servlet container to the developer giving a view into the invocation chain of a filtered request for a resource.
  FilterConfig | A filter configuration object used by a servlet container to pass information to a filter during initialization.
  FilterRegistration | Interface through which a Filter may be further configured.
  FilterRegistration.Dynamic | Interface through which a Filter registered via one of the addFilter methods on ServletContext may be further configured.
  ReadListener | Receives notification of read events when using non-blocking IO.
  Registration | Common interface for the registration of Filters and Servlets.
  Registration.Dynamic | Interface through which a Servlet or Filter registered via one of the addServlet or addFilter methods, respectively, on ServletContext may be further configured.
  RequestDispatcher | Defines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server.
  Servlet | Defines methods that all servlets must implement.
  ServletConfig | A servlet configuration object used by a servlet container to pass information to a servlet during initialization.
  ServletContainerInitializer | ServletContainerInitializers (SCIs) are registered via an entry in the file META-INF/services/javax.servlet.ServletContainerInitializer that must be included in the JAR file that contains the SCI implementation.
  ServletContext | Defines a set of methods that a servlet uses to communicate with its servlet container, for example, to get the MIME type of a file, dispatch requests, or write to a log file.
  ServletContextAttributeListener | Implementations of this interface receive notifications of changes to the attribute list on the servlet context of a web application.
  ServletContextListener | Implementations of this interface receive notifications about changes to the servlet context of the web application they are part of.
  ServletRegistration | Interface through which a Servlet may be further configured.
  ServletRegistration.Dynamic | Interface through which a Servlet registered via one of the addServlet methods on ServletContext may be further configured.
  ServletRequest | Defines an object to provide client request information to a servlet.
  ServletRequestAttributeListener | A ServletRequestAttributeListener can be implemented by the developer interested in being notified of request attribute changes.
  ServletRequestListener | A ServletRequestListener can be implemented by the developer interested in being notified of requests coming in and out of scope in a web component.
  ServletResponse | Defines an object to assist a servlet in sending a response to the client.
  SessionCookieConfig | Configures the session cookies used by the web application associated with the ServletContext from which this SessionCookieConfig was obtained.
  SingleThreadModel | Deprecated. As of Java Servlet API 2.4, with no direct replacement.
  WriteListener | Receives notification of write events when using non-blocking IO.

- Class Summary
  Class | Description
  --- | ---
  AsyncEvent | Used to pass data to the methods of `AsyncListener`.
  GenericServlet | Defines a generic, protocol-independent servlet.
  HttpConstraintElement | Equivalent of `HttpConstraint` for programmatic configuration of security constraints.
  HttpMethodConstraintElement | Programmatic equivalent of a security constraint defined for a single HTTP method.
  MultipartConfigElement | The programmatic equivalent of `MultipartConfig` used to configure multi-part handling for a Servlet when registering a Servlet via code.
  ServletContextAttributeEvent | This is the event class for notifications about changes to the attributes of the servlet context of a web application.
  ServletContextEvent | This is the event class for notifications about changes to the servlet context of a web application.
  ServletInputStream | Provides an input stream for reading binary data from a client request, including an efficient `readLine` method for reading data one line at a time.
  ServletOutputStream | Provides an output stream for sending binary data to the client.
  ServletRequestAttributeEvent | This is the event class for notifications of changes to the attributes of the servlet request in an application.
  ServletRequestEvent | Events of this kind indicate lifecycle events for a ServletRequest.
  ServletRequestWrapper | Provides a convenient implementation of the ServletRequest interface that can be subclassed by developers wishing to adapt the request to a Servlet.
  ServletResponseWrapper | Provides a convenient implementation of the ServletResponse interface that can be subclassed by developers wishing to adapt the response from a Servlet.
  ServletSecurityElement | The programmatic equivalent of `ServletSecurity` used to configre security constraints for a Servlet.

- Enum Summary
  Enum | Description
  --- | ---
  DispatcherType | Enumeration of dispatcher types.
  SessionTrackingMode | Defines the permitted options for configuring the session tracking mode.

- Exception Summary
  Exception | Description
  --- | ---
  ServletException | Defines a general exception a servlet can throw when it encounters difficulty.
  UnavailableException | Defines an exception that a servlet or filter throws to indicate that it is permanently or temporarily unavailable.