Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 05 - Introdução e Recursos JavaServer Pages

Ciclo de vida do JSP

Você já viu que páginas HTML possuem conteúdo estático e que Servlets podem ser responsáveis por gerar tanto conteúdo estático como dinâmico (gerar resposta de acordo com parâmetros da requisição). Uma página JSP, assim como os Servlets, pode conter tanto conteúdo estático quanto dinâmico. Apesar disso, seu código parece mais com páginas HTML puras do que com o código dos Servlets.

Para entender o funcionamento geral do JSP, é importante saber que essa tecnologia foi desenvolvida em cima da tecnologia dos Servlets. Você vai ver que, em Java, é muito comum que as novas tecnologias sejam desenvolvidas baseadas em tecnologias anteriores, já maduras e estabelecidas. No caso, para entender a relação entre Servlets e JSP, vamos estudar o chamado ciclo de vida das páginas JSP.

Uma página JSP é normalmente escrita pelo programador. Ela pode também ser editada diretamente pelo projetista web, já que seu conteúdo é muito parecido com o de páginas HTML (veja novamente a Listagem 1). Uma vez criada a página, ela deve ser disponibilizada em um servidor web, da mesma forma que ocorre com as páginas HTML. A página aleatorio.jsp, por exemplo, foi colocada na pasta WebContent do projeto de nome ProgramacaoWeb, garantindo assim seu acesso através do servidor Web. Dessa forma, seu conteúdo poderá ser acessado pela URL <http://localhost:8080/aula05/aleatorio.jsp>, considerando que o servidor está rodando localmente e na porta 8080.

Ao ser acessado pela primeira vez, o arquivo JSP será traduzido para um Servlet. É isso mesmo, o JSP será transformado pelo servidor web em um Servlet. Isso é feito de forma automática e transparente para o usuário e para o programador. Veja esse processo ilustrado na Figura 2.

Processo de transformação transparente do JSP em Servlet

Note na figura que o arquivo MyJSP.jsp gera um Servlet de nome MyJSP_jsp.java. Na verdade, o nome do Servlet gerado não importa para nós, já que esse processo é feito de forma automática e transparente. Por fim, o código gerado para esse Servlet é então compilado e carregado no servidor web.

Para podermos entender melhor, vamos considerar que o arquivo aleatorio.jsp seja traduzido para o Servlet mostrado na Listagem 2. Note que esse código, apesar de seu tamanho, está simplificado, sendo ainda maior na realidade.

Listagem 2 - Simplificação do código-fonte gerado para o Servlet que representa o arquivo aleatorio.jsp

Versão 5.3 - Todos os Direitos reservados