## Arquitectura del Paquete Servlet

El paquete javax.servlet proporciona clases e interfaces para escribir servlets. La arquitectura de este paquete se describe a continuación:

### El Interface Servlet

La abstración central en el API Servlet es el interface Servlet. Todos los servlets implementan este interface, bien directamente o, más comunmente, extendiendo una clase que lo implemente como HttpServlet

El interface Servlet declara, pero no implementa, métodos que manejan el Servlet y su comunicación con los clientes. Los escritores de Servlets proporcionan algunos de esos métodos cuando desarrollan un servlet.

### Interación con el Cliente

Cuando un servlet acepta una llamada de un cliente, recibe dos objetos:

- Un ServletRequest, que encapsula la comunicación desde el cliente al servidor.

- Un ServletResponse, que encapsula la comunicación de vuelta desde el servlet hacia el cliente.

ServletRequest y ServletResponse son interfaces definidos en el paquete javax.servlet.

#### El Interface ServletRequest

El Interface ServletRequest permite al servlet aceder a :

- Información como los nombres de los parámetros pasados por el cliente, el protocolo (esquema) que está siendo utilizado por el cliente, y los nombres del host remote que ha realizado la petición y la del server que la ha recibido.

- El stream de entrada, ServletInputStream. Los Servlets utilizan este stream para obtener los datos desde los clientes que utilizan protocolos como los métodos POST y PUT del HTTP.

Los interfaces que extienden el interface ServletRequest permiten al servlet recibir más datos específicos del protocolo. Por ejemplo, el interface HttpServletRequest contiene métodos para acceder a información de cabecera específica HTTP.

#### El Interface ServletResponse

El Interface ServletResponse le da al servlet los métodos para responder al cliente.

- Permite al servlet seleccionar la longitud del contenido y el tipo MIME de la respuesta.

- Proporciona un stream de salida, ServletOutputStream, y un Writer a través del cual el servlet puede responder datos.

Los interfaces que extienden el interface ServletResponse le dan a los servlets más capacidades específicas del protocolo. Por ejemplo, el interface HttpServletResponse contiene métodos que permiten al servlet manipular información de cabecera específica HTTP.

### Capacidades Adicionales de los Servlets HTTP

Las clases e interfaces descritos anteriormente construyen un servlet básico. Los servlets HTTP tienen algunos objetos adicionales que proporcionan capacidades de seguimiento de sesión. El escritor se servlets pueden utilizar esos APIs para mantener el estado entre el servlet y el cliente persiste a través de múltiples conexiones durante un periodo de tiempo. Los servlets HTTP también tienen objetos que proporcionan cookies. El API cookie se utiliza para guardar datos dentro del cliente y recuperar esos datos.

Ozito