Ciclo de vida do JSP - Aprenda as etapas do ciclo de vida do JSP com exemplos

Índice:

Anonim

Introdução ao Ciclo de Vida JSP

Neste artigo, discutiremos o ciclo de vida do JSP. Páginas do servidor Java, uma tecnologia do lado do servidor que assume a responsabilidade de processar no servidor.

1. Onde precisamos do JSP?

  • Bem, se você gosta de desenvolvimento baseado na Web e o que vemos é a criação de sites dinâmicos, as JSPs desempenham um papel vital, pois a renderização é feita dinamicamente.
  • As JSPs funcionam apenas em HTML subjacente, o corpo de uma página é constituído apenas por marcações básicas em HTML, mas existem determinados espaços reservados, parâmetros, valores de lista, iteradores que são viáveis ​​apenas com JSPs; o HTML fornece exibição estática apenas enquanto as resoluções devem ser feitas em tempo de execução precisa de um tratamento dinâmico, para que as JSPs apareçam como uma solução.
  • JSP permite a separação de geração e apresentação de conteúdo

Vamos pegar aqui um exemplo básico que lhe dará uma idéia dessa renderização dinâmica.



O conteúdo ou a lógica interna é renderizada dinamicamente e é transmitida apenas pelo backend.

Agora vamos seguir em frente e entender o ciclo de vida das JSPs e como elas realmente são renderizadas no front-end para fornecer ao cliente uma experiência pronta ou pronta para leitura.

2. Ciclo de vida do JSP:

Existem certas fases nas quais esse ciclo é dividido, definido da seguinte maneira:

  1. Fase de conversão - onde o arquivo JSP é convertido no arquivo do servlet.
  2. Fase de compilação - onde o arquivo do servlet é convertido em classe de servlet.
  3. Carregamento de classe
  4. Instanciação do objeto servlet
  5. O contêiner do servlet chama o método jspInit () para inicialização
  6. O contêiner de servlet chama o _jspService () para processar a solicitação
  7. Limpeza do JSP, aqui o contêiner do servlet chamará o método jspDestroy ().

Agora vamos elaborar as etapas acima mencionadas para ter uma imagem mais clara -

Passo 1

Na fase de conversão, o contêiner de servlet converte o JSP em um servlet para que a codificação baseada em tag obtenha um formato equivalente em java, para que a Java Virtual Machine (JVM) possa entender isso (pois não entenderá o idioma das tags) . Essa conversão é feita pelo servidor no momento da implementação do aplicativo da Web ou quando o JSP obtém sua primeira solicitação de execução.

Passo 2

Agora chega a hora de compilar o código fonte, ou seja, converter o código do servlet em código java byte (código java byte é um conjunto de instruções para a máquina virtual java).

etapa 3

A classe de servlet que foi carregada da origem JSP agora será carregada no contêiner.

Passo 4

Depois de carregar um arquivo de classe pelo contêiner da web, o contêiner JSP agora usa um construtor sem argumento para criar uma instância da classe de servlet. Agora, uma vez que o contêiner inicialize os objetos por uma invocação do método jsplnit ().

Public void jsplnit()
(
// servlet initialization related snipped to be placed here
)

Etapa 5

Agora chega a hora do processamento de pedidos, aqui os objetos servlet equivalentes ao JSP inicializados são usados ​​para processar os pedidos do cliente. O método _jspService () é chamado pelo contêiner da web. Essa chamada é feita no objeto servlet que passa o objeto HTTPServletRequest e o objeto HTTPServletResponse para os respectivos pedidos e respostas. Observe que não há nenhuma disposição para substituir o método _jspService ().

Public void _jspService( HttpServletRequest request, HttpServletResponse response)
(
//snipped is placed here
)

Etapa 6

A última etapa é chamada de limpeza JSP, a JSP precisa ser removida do contêiner e o método jspDestroy () é usado para o mesmo, esse método deve ser chamado apenas uma vez. Existe uma disposição para substituir esse método e isso pode ser feito para instâncias em que desejamos executar nossa ação personalizada, como liberação de conexão para banco de dados etc.

public void jspDestory()
(
// snippet is placed here
)

Exemplo:

Vamos criar um formulário de login para nosso aplicativo de amostra e usaremos JSP para determinadas renderizações de conteúdo aqui.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


No exemplo acima, o código inserido dentro é renderizado dinamicamente, como mencionamos anteriormente, agora que, quando essa solicitação for enviada, ela será recebida pelo controlador de ação, que é basicamente uma classe Java que contém os parâmetros correspondentes aos nomes mencionados no Arquivo JSP.

Um contêiner de servlet cria um objeto modal e o conteúdo pode ser referido em outras JSPs consultando esse controlador em particular.

Atualmente, esse tipo de abordagem baseada em MVC encontra um lugar com tecnologias como:

  1. Spring MVC
  2. Struts 2
  3. Servlets

O Spring MVC e o Struts 2 introduziram seu URI específico para usar JSPs de maneira personalizada e também introduziram diferentes variedades de tags, como preenchimento automático, iterador, lista etc.

Portanto, o JSP encontra um lugar ideal em muitas estruturas devido à sua flexibilidade.

Conclusão

  • Por isso, aprendemos que sites dinâmicos têm sua interface renderizada por meio de JSPs, enquanto páginas estáticas podem ser diretamente colocadas em HTML apenas porque não precisam de nenhuma manipulação de dados / conteúdo a partir de então.
  • As tecnologias modernas são compatíveis com JSPs e são usadas por estruturas de suporte e mola, que encontram um lugar em grandes aplicativos relacionados a bancos, SCM, lojas de varejo, etc.
  • Compatível com chamadas AJAX para renderização dinâmica.
  • Um aplicativo não pode ser do tipo página única, pois toda vez que é necessário carregar a página no back-end.
  • Os ladrilhos podem ser usados ​​para formatos de layout base em suportes e molas e o que precisamos renderizar repetidamente é apenas corpo.
  • Por fim, os códigos são convertidos em HTML equivalente no front-end.
  • Os JSPs diferenciam o conceito de apresentação e geração de conteúdo.
  • Os interceptores são fornecidos por várias estruturas que facilitam a vida dos desenvolvedores, como utilitários no struts, para processos de upload de arquivos etc.

Artigos recomendados

Este foi um guia para o JSP Life Cycle. Aqui discutimos a introdução, etapas e exemplo do ciclo de vida do JSP. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. JSP vs ASP
  2. Perguntas da entrevista do AJAX
  3. O que é MVC?
  4. JSP vs Servlet
  5. Iteradores em C #