Li em um livro que eu posso definir métodos e variáveis, dentro de um arquivo jsp, da seguinte forma:
<%! String nome = "Julio" %>
mas qual é a diferença entre declarar uma variável desta forma, e declarar da seguinte forma:
<% String nome = "Julio" %>
há alguma diferença entre as duas formas?
grato
Julio Romano
Simples qundo vc usa o <%! boolean b = true; %>
vc est´declarando fora do metodo _jspService() e quando vc coloca apenas
<% boolean b = true; %> vc coloca dentro do _jspService().
Pois é, na primeira forma ela será um atributo do servlet, enquanto na segunda será uma variável local.
não entendi mto bem…
estou iniciando em jsp e isto não está mto claro pra mim…
poderiam me dar exemplos de o que usar e quando usar?
grato
Julio Romano
Vamos pelo principio que um JSP se torna um Servlet, entaum… no servlet:
public String nomeUsuario = "Shadow";
public void doGet(HttpServletRequest request, HttpServletResponse response)
{
String nomeUsuario = "Duke";
try
{
response.getWriter().println(nomeUsuario + "<br>");
response.getWriter().println(this.nomeUsuario + "<br>");
}
catch(Exception e)
{}}
Agora em um Jsp:
<%! public String nomeUsuario = "Shadow";%>
<% String nomeUsuario = "Duke";%>
<%= this.nomeUsuario %>
<br>
<%= nomeUsuario %>
creio q assim da pra entender mais!!
Você não deve usar essa primeira forma.
Servlets não devem ter atributos, pois eles não são instanciados mais de uma vez: são criadas threads.
E as threads compartilham os mesmos atributos. Se uma alterar aquela string, a mudança vai se refletir na outra também.
então, se eu definir:
<%! String nome = "Julio"; %>
A variável nome, terá o valor Julio, a todos os usuários que acessarem minha página jsp?