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.
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.
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.
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.)
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.