Na minha Servlet eu coloquei assim:
String teste = "teste";
request.setAttribute("teste", teste);
Na minha JSP eu coloquei assim:
<%= request.getParameter("teste")%>
<%= request.getAttribute("teste")%>
Obs: Como eu não sabia qual dos 2 usar eu coloquei os 2.
O resultado que aparece é esse:
null null
A ordem das páginas está assim: Index.jsp -> Servlet -> Index.jsp
Alguém pode me explicar o que eu estou fazendo de errado?
O problema pode estar na forma como está redirecionando.
Está utilizando que tipo de redirecionamento?
response.sendRedirect("Index.jsp");
ou
request.getRequestDispatcher("Index.jsp").forward(request, response);
[quote=drsmachado]O problema pode estar na forma como está redirecionando.
Está utilizando que tipo de redirecionamento?
response.sendRedirect("Index.jsp");
ou
request.getRequestDispatcher("Index.jsp").forward(request, response);
[/quote]
Opa, obrigado pela resposta rápida.
Eu estou usando o primeiro. Vou testar aqui o segundo.
[quote=drsmachado]O problema pode estar na forma como está redirecionando.
Está utilizando que tipo de redirecionamento?
response.sendRedirect("Index.jsp");
ou
request.getRequestDispatcher("Index.jsp").forward(request, response);
[/quote]
Ae, funcionou, aparentemente também vou ter que usar o getAttribute().
Obrigado pela ajuda, isso solucionou um grande problema meu.
Bom, primeiramente, vamos explicar
O
response.sendRedirect("index.jsp");
“mata” tudo o que existe no escopo request. Se for utilizá-lo, recomendo trabalhar com sessão.
Já o getRequestDispatcher apenas “avança” com tudo o que está no request, sem destruí-lo.
Agora, sobre usar getAttribute ou Parameter, por favor… Se na servlet você faz
request.setAttribute("att", objeto);
Por que raios quer utilizar
request.getParameter("att");
???
É extremamente simples, o getParameter só será utilizado caso você esteja lendo informações que são provenientes de um formulário submetido, afinal, não há como fazer, manualmente, o request.setParameter…