Diferença entre <%@ , <% <%=

2 respostas
programadormaia

Olá pessoal!!!
Uma dúvida que surgiu aqui!!! SOu iniciante!!! rs
Estava a desenvolver um exemplo…
Eu criava uma página de erro em JSP.
Sendo que na página de erro coloquei o seguinte código:

porém não apareceu nadaaaa!!!

No entando se eu colocar:

funciona!!!

Esse é só um exemplo!

Gostaria de saber as diferenças entre iniciar um bloco com:
<%@
<%=
<%
e outros se existir…

Abs
Victor MAia

2 Respostas

rubinelli

Oi Victor, como você percebeu, essas tags, apesar de parecidas, tem resultados bem distintos. Cada uma delas é transformada em algo diferente na hora que o seu container cria um servlet a partir do JSP. Em alguns containers, você consegue até encontrar a classe que ele gera. Vale a pena dar uma olhada para ver como funciona, mas basicamente, essa classe vai ter um método com vários prints para montar o HTML que está fora daquelas tags. Além disso:
[list] o que estiver entre <% e %> é inserido nesse método, exatamente na posição em que está, sem nenhuma mudança [/list]
[list] o que estiver entre <%= e %> vai para dentro de um print (é por isso, por exemplo, que você não usa ponto e vírgula)[/list]
[list] o que estiver entre <%! e %> é inserido fora do método que eu comentei; com isso você consegue criar variáveis de instância ou métodos dentro do seu JSP[/list]
[list] <%@ é usado para configurações, e não é diretamente traduzido[/list]

Só pra dar um exemplo mais concreto do que eu falei, isso:

<%for(int i=0;i<5;i++){%>
<p><%=i%></p>
<%}%>

seria traduzido em código Java mais ou menos assim:

for(int i=0;i<5;i++){
  out.print("\n<p>");
  out.print(i);
  out.print("</p>\n");
}
programadormaia

Muito Boa a Explicação!!!
Obrigadão mesmo!!!
Agora como faria para ver esse arquivo java que vc mencionou?
O arquivo que seria a tradução de uma pagina jsp para um servlet

Criado 14 de janeiro de 2009
Ultima resposta 14 de jan. de 2009
Respostas 2
Participantes 2