JSP - Arquitetura
O servidor da web precisa de um mecanismo JSP, ou seja, um contêiner para processar páginas JSP. O contêiner JSP é responsável por interceptar solicitações de páginas JSP. Este tutorial usa o Apache, que possui um contêiner JSP integrado para suportar o desenvolvimento de páginas JSP.
Um contêiner JSP funciona com o servidor Web para fornecer o ambiente de tempo de execução e outros serviços de que um JSP precisa. Ele sabe como entender os elementos especiais que fazem parte dos JSPs.
O diagrama a seguir mostra a posição do contêiner JSP e dos arquivos JSP em um aplicativo da web.
Processamento JSP
As etapas a seguir explicam como o servidor da web cria a página da web usando JSP -
Como em uma página normal, seu navegador envia uma solicitação HTTP ao servidor da web.
O servidor da web reconhece que a solicitação HTTP é para uma página JSP e a encaminha para um mecanismo JSP. Isso é feito usando a página URL ou JSP que termina com.jsp ao invés de .html.
O mecanismo JSP carrega a página JSP do disco e a converte em um conteúdo de servlet. Essa conversão é muito simples, na qual todo o texto do modelo é convertido em instruções println () e todos os elementos JSP são convertidos em código Java. Este código implementa o comportamento dinâmico correspondente da página.
O mecanismo JSP compila o servlet em uma classe executável e encaminha a solicitação original para um mecanismo servlet.
Uma parte do servidor da web chamada mecanismo de servlet carrega a classe Servlet e a executa. Durante a execução, o servlet produz uma saída em formato HTML. A saída é passada para o servidor da web pelo mecanismo de servlet dentro de uma resposta HTTP.
O servidor da web encaminha a resposta HTTP para seu navegador em termos de conteúdo HTML estático.
Finalmente, o navegador da web lida com a página HTML gerada dinamicamente dentro da resposta HTTP exatamente como se fosse uma página estática.
Todas as etapas mencionadas acima podem ser vistas no diagrama a seguir -
Normalmente, o mecanismo JSP verifica se um servlet para um arquivo JSP já existe e se a data de modificação no JSP é mais antiga que o servlet. Se o JSP for mais antigo do que seu servlet gerado, o contêiner JSP assume que o JSP não mudou e que o servlet gerado ainda corresponde ao conteúdo do JSP. Isso torna o processo mais eficiente do que com outras linguagens de script (como PHP) e, portanto, mais rápido.
Portanto, de certa forma, uma página JSP é apenas outra maneira de escrever um servlet sem ter que ser um gênio da programação Java. Exceto para a fase de tradução, uma página JSP é tratada exatamente como um servlet regular.