English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A chave para entender a funcionalidade subjacente do JSP é entender o ciclo de vida que eles seguem.
O ciclo de vida do JSP é todo o processo desde a criação até a destruição, semelhante ao ciclo de vida do servlet, a diferença é que o ciclo de vida do JSP inclui ainda a compilação do arquivo JSP em servlet.
A seguir estão algumas fases pelas quais o ciclo de vida do JSP passa:
Fase de compilação:
O contêiner servlet compila o arquivo-fonte servlet, gerando a classe servlet
Fase de inicialização:
Carrega a classe de servlet correspondente ao JSP, cria seu exemplo e chama seu método de inicialização
Fase de execução:
Chama o método de serviço do exemplo de servlet correspondente ao JSP
Fase de destruição:
Chama o método de destruição do exemplo de servlet correspondente ao JSP, e depois destrói o exemplo de servlet
Claramente, os quatro principais estágios do ciclo de vida do JSP são muito semelhantes ao ciclo de vida do servlet, e a seguir está a ilustração:
Quando o navegador solicita a página JSP, o motor JSP verifica primeiro se é necessário compilar esse arquivo. Se o arquivo não foi compilado ou foi alterado desde a última compilação, o arquivo JSP será compilado.
O processo de compilação inclui três etapas:
analisar o arquivo JSP.
converter o arquivo JSP para servlet.
compilar servlet.
Após o contêiner carregar o arquivo JSP, ele chama o método jspInit() antes de fornecer qualquer serviço para a solicitação. Se você precisar executar tarefas de inicialização personalizadas do JSP, substitua o método jspInit(), conforme mostrado a seguir:
public void jspInit(){ // Código de inicialização }
Normalmente, o programa é inicializado uma vez, assim como o servlet. Geralmente, você pode inicializar conexões de banco de dados, abrir arquivos e criar tabelas de consulta no método jspInit().
Esta fase descreve todas as interações relacionadas a solicitações no ciclo de vida do JSP, até que seja destruído.
Após a conclusão da inicialização da página JSP, o motor JSP chama o método _jspService().
_jspService() precisa de um objeto HttpServletRequest e um objeto HttpServletResponse como parâmetros, assim como no exemplo a seguir:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // código de processamento do servidor }
_jspService() é chamado uma vez em cada request e é responsável por gerar a response correspondente, e também é responsável por gerar todas7respostas de métodos HTTP, como GET, POST, DELETE, etc.
A fase de destruição do ciclo de vida do JSP descreve tudo o que acontece quando uma página JSP é removida do contêiner.
O método jspDestroy() é equivalente ao método de destruição do servlet no JSP. Quando você precisar executar qualquer trabalho de limpeza, substitua o método jspDestroy(), por exemplo, liberar conexões de banco de dados ou fechar pastas, etc.
O formato do método jspDestroy() é o seguinte:
public void jspDestroy() { // Código de limpeza }
Exemplo de código de ciclo de vida do JSP conforme mostrado a seguir:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>" <html> <head> <title>life.jsp</title> </head> <body> <%! private int initVar=0; private int serviceVar=0; private int destroyVar=0; %> <%! public void jspInit(){ initVar++; System.out.println("jspInit(): O JSP foi inicializado"+initVar+"requisições"); } public void jspDestroy(){ destroyVar++; System.out.println("jspDestroy(): O JSP foi destruído"+destroyVar+"requisições"); } %> <% serviceVar++; System.out.println("_jspService(): O JSP respondeu a "+serviceVar+"requisições"); String content1="Número de inicializações: "+initVar; String content2="Número de respostas ao cliente: "+serviceVar; String content3="Número de exclusões: "+destroyVar; %> <h1>Tutorial Básico(oldtoolbag.com) Teste de JSP</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
Abra esta página no navegador, e o resultado será: