¿Cómo se ejecuta JSP?
Cuando se solicita un archivo JSP por primera vez, el motor JSP convierte el archivo JSP en un servlet. El motor en sí también es un servlet. El proceso de ejecución de JSP es el siguiente:
(1) El motor JSP primero convierte el archivo JSP en un archivo fuente Java (Servlet). Si se encuentra algún error gramatical en el archivo JSP durante la conversión. el proceso de conversión se interrumpirá y enviará información de error al servidor y al cliente.
(2) Si la conversión se realiza correctamente, el motor JSP utiliza javac para compilar el archivo fuente Java en el archivo de clase correspondiente.
(3) Cree una instancia del Servlet (el resultado de la conversión de la página JSP). El método jspInit() del Servlet se ejecuta solo una vez en la vida del Servlet. ciclo.
(4) Se llama al método jspService() para manejar la solicitud del cliente. Para cada solicitud, el motor JSP crea un nuevo hilo para manejar la solicitud. Si varios clientes solicitan el archivo JSP al mismo tiempo, el motor JSP creará varios subprocesos. Hay un hilo para cada solicitud de cliente. La ejecución de múltiples subprocesos puede reducir en gran medida los requisitos de recursos del sistema y mejorar la concurrencia y el tiempo de respuesta del sistema. Sin embargo, también debes prestar atención a las limitaciones de programación del subproceso múltiple. Dado que el servlet siempre reside en la memoria, la respuesta es muy rápida.
(5) Si se modifica el archivo .jsp, el servidor decidirá si recompilar el archivo de acuerdo con la configuración. Si se requiere la recompilación, el resultado de la compilación reemplazará el servlet en la memoria y continuará con la compilación. proceso anterior.
(6) Aunque JSP es muy eficiente, hay un ligero retraso debido a la necesidad de conversión y compilación durante la primera llamada. Además, si en algún momento se debe a recursos insuficientes del sistema, el motor JSP eliminará el servlet de la memoria de alguna manera incierta. Cuando esto sucede, primero se llama al método jspDestroy().
(7) Luego, la instancia de Servlet se marca para el procesamiento de "recolección de basura". Puede realizar algunos trabajos de inicialización en jspInit (), como establecer una conexión con la base de datos o establecer una conexión de red, tomar algunos parámetros del archivo de configuración, etc., y liberar los recursos correspondientes en jspDestory ().