El servidor web requiere un motor JSP, que es un contenedor para procesar páginas JSP. El contenedor es responsable de interceptar solicitudes de páginas JSP. Este tutorial utiliza Apache con un contenedor JSP integrado para admitir el desarrollo de JSP.
El contenedor JSP coopera con el servidor web para proporcionar el entorno operativo necesario y otros servicios para el funcionamiento normal de JSP, y puede identificar correctamente elementos especiales exclusivos de las páginas web JSP.
La siguiente figura muestra la ubicación del contenedor JSP y los archivos JSP en la aplicación web.
Los siguientes pasos muestran cómo un servidor web utiliza JSP para crear una página web:
Al igual que cualquier otra página web normal, su navegador envía una solicitud HTTP al servidor.
El servidor web reconoce que se trata de una solicitud para una página web JSP y pasa la solicitud al motor JSP. Esto se hace mediante una URL o un archivo .jsp.
El motor JSP carga archivos JSP desde el disco y los convierte en servlets. Esta transformación simplemente convierte todo el texto de la plantilla en declaraciones println() y convierte todos los elementos JSP en código Java.
El motor JSP compila el servlet en una clase ejecutable y pasa la solicitud original al motor de servlet.
Un componente del servidor web llamará al motor de servlet y luego cargará y ejecutará la clase de servlet. Durante la ejecución, el servlet genera resultados en formato HTML, los incrusta en la respuesta HTTP y los envía al servidor web.
El servidor web devuelve la respuesta HTTP a su navegador en forma de una página web HTML estática.
En última instancia, los navegadores web procesan las páginas HTML generadas dinámicamente en la respuesta HTTP como si fueran páginas web estáticas.
Los pasos mencionados anteriormente se pueden representar mediante la siguiente figura:
En circunstancias normales, el motor JSP verificará si el servlet correspondiente al archivo JSP ya existe y verificará si la fecha de modificación del archivo JSP es anterior a la del servlet. Si la fecha de modificación del archivo JSP es anterior a la del servlet correspondiente, entonces el contenedor puede estar seguro de que el archivo JSP no se ha modificado y que el servlet es válido. Esto hace que todo el proceso sea más eficiente y rápido que otros lenguajes de programación (como PHP).
En general, las páginas web JSP son otra forma de escribir servlets sin convertirse en un experto en programación Java. Excepto por la fase de interpretación, una página web JSP puede tratarse casi como un servlet normal.