## Interactuar con los Clientes

Un Servlet HTTP maneja peticiones del cliente a través de su método service. Este método soporta peticiones estándard de cliente HTTP despachando cada petición a un método designado para manejar esa petición. Por ejemplo, el método service llama al método doGet mostrado anteriormente en el ejemplo del servlet sencillo.

#### Peticiones y Respuestas

> Esta página explica la utilización de los objetos que representan peticiones de clientes (un objeto HttpServletRequest) y las respuestas del servlet (un objeto HttpServletResponse). Estos objetos se proporcionan al método service y a los métodos que service llama para menejar peticiones HTTP.

#### Manejar Peticiones GET y POST

> Los métodos en los que delega el método service las peticiones HTTP, incluyen
> - doGet, para manejar GET, GET condicional, y peticiones de HEAD

> - doPost, para menajar peticiones POST

> - doPut, para manejar peticiones PUT

> - doDelete, para manejar peticiones DELETE

> Por defecto, estos métodos devuelven un error BAD_REQUEST (400). Nuestro servlet debería sobrescribir el método o métodos diseñados para manejar las interacciones HTTP que soporta. Esta sección muestra cómo implementar método para manejar las peticiones HTTP más comunes: GET y POST.

> El método service de HttpServlet también llama al método doOptions cuando el servlet recibe una petición OPTIONS, y a doTrace cuando recibe una petición TRACE. La implementación por defecto de doOptions determina automáticamente que opciones HTTP son soportadas y devuelve esa información. La implementación por defecto de doTrace realiza una respuesta con un mensaje que contiene todas las cabeceras enviadas en la petición trace. Estos métodos no se sobreescriben normalmente.

#### Problemas con los Threads

> Los Servlets HTTP normalmente pueden servir a múltiples clientes concurrentes. Si los métodos de nuestro Servlet no funcionan con clientes que acceden a recursos compartidos, deberemos:
> - Sincronizar el acceso a estos recursos, o

> - Crear un servlet que maneje sólo una petición de cliente a la vez.

> Esta lección te muestra cómo implementar la segunda opción. (la primera está cubierta en la página Threads de Control.)

#### Descripciones de Servlets

> Además de manejar peticiones de cliente HTTP, los servlets también son llamados para suministrar descripción de ellos mismos. Esta página muestra como proporcionar una descripción sobreescribiendo el método getServletInfo, que suministra una descripción del servlet.

Ozito