Portada » Informática » Servlets y JSP: Preguntas Frecuentes
Un servlet es una clase Java que amplía los servidores orientados a petición-respuesta con el fin de generar contenido dinámico. Los servlets deben cumplir un contrato con el servidor para obtener servicios, este contrato son interfaces Java, como Servlet
.
Sí, ya que es donde se obtienen objetos relevantes como la petición del cliente ya procesada por el contenedor.
Se pueden recibir varias peticiones HTTP simultáneamente de distintos clientes, lo que provoca que la aplicación deba poder ejecutarse en varios hilos.
Se carga el servlet en memoria, se realizan los servicios pertinentes y es destruido.
Es una interfaz que ofrece un canal de entrada con información enviada por el usuario y procesada por el contenedor, es decir, es la petición HTTP del cliente procesada por el contenedor. Se obtiene mediante los métodos doGet
, etc. desde sus parámetros. Contiene los parámetros obtenidos en la query string o en el formulario enviado por el usuario.
Es el canal de salida del servlet hacia el usuario, es decir, contiene la respuesta. Se obtiene de la misma forma que el request
.
Es un archivo XML que describe cómo se debe desplegar un servidor web. Además, también puede describir cómo desplegar un servlet en concreto.
Son los valores iniciales que debe tener la aplicación web y serán recuperados desde distintas partes de la aplicación a través de los servlets.
La aplicación lee la configuración del descriptor de despliegue y la transforma en pares clave-valor que se pasan a ServletContext
.
Es el contexto de la aplicación web, existe un solo objeto el cual usan los servlets para consultar cierta información sobre el contenedor, pueden almacenar información como atributos clave-valor.
Que un usuario puede modificar el valor de un atributo a la vez que otro lo está consultando y puede dar lugar a un resultado incorrecto.
Permite solucionar el problema de sesión por culpa de que HTTP es un protocolo sin estado.
El contenedor decide si usar cookies o reescritura de URLs y crea un ID nuevo por cada petición NUEVA de un cliente. Es decir, muchas en la web.
Existe un HttpSession
por CADA sesión del cliente.
Porque la petición del cliente pasa por el servlet correspondiente para llegar al objeto HttpSession
.
Un servlet puede decidir que la petición del cliente debe continuar su procesamiento en otro servlet. Para ello guarda los atributos ya procesados en el objeto HttpServletRequest
en forma de atributos para que los recupere el próximo servlet.
Desde el punto de vista del encadenamiento sí, ya que se trata de una secuencia.
Desde el punto de vista de la concurrencia no pasaría nada tampoco ya que la petición es la actual del cliente, no de otro.