# 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
AsyncContext: Provides the context for asynchronous request handling
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
AsyncEvent: Used to pass data to the methods of `AsyncListener`.
GenericFilter: Provides a base class that implements the Filter and FilterConfig interfaces to reduce boilerplate when writing new filters.
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
DispatcherType: Enumeration of dispatcher types.
SessionTrackingMode: Defines the permitted options for configuring the session tracking mode.

Exception Summary
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.