Como passar dados do servlet para jsp?

18 respostas
M

Estou com uma duvida…

como faço para passar informações de neu servlet para minha JSP?
Por exemplo, tenho uma variável “nome” no servlet, e desejo passa-la para meu JSP, como devo fazer?

Desde já agradeço a atenção.
Marcelo Madeira

18 Respostas

M

binde a variável na requisição, ou na sessão… ex:

no servlet:

request.setParameter( "var", nome );
// ou
// session.setParameter( "var", nome );

no jsp:

String nome = (String) request.getParameter( "var" );
// ou
// String nome = (String) session.getParameter( "var" );
M

Valeu Matheus…

vou tentar colocar isto em pratica agora.
qq coisa posto aqui novamente.

Obrigado.
Marcelo

C

Se não me engano não existe setParameter no request. Use setAttribute:

No servlet:

Object o = .....;
request.setAttribute("nomeAtributo", o);

No jsp:

Object o = request.getAttribute("nomeAtributo");

[]'s
carisio

M

“carisio”:
Se não me engano não existe setParameter no request. Use setAttribute:

No servlet:

Object o = .....;
request.setAttribute("nomeAtributo", o);

No jsp:

Object o = request.getAttribute("nomeAtributo");

[]'s
carisio

isso isso isso… eu havia acabado de acordar qnd postei isso aqui… falha grave minha :doh: , to pirando

M

ta dandu um erro no objeto req.

Veja o codigo do servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;



public class Busca extends HttpServlet{
	public void doPost(HttpServletRequest req, HttpServletResponse res)
				throws ServletException, IOException
	{
		String nome = req.getParameter("txtNome");
		String cidade = req.getParameter("txtCidade");
		String telefone = req.getParameter("txtTelefone");

		req.setParameter("t1", nome);
		req.setParameter("t2", cidade);
		req.setParameter("t3", telefone);
		res.sendRedirect("teste.jsp");

	}


}

o erro esta aqui:

req.setParameter("t1", nome);
		req.setParameter("t2", cidade);
		req.setParameter("t3", telefone);

Alguem pode me ajudar?

M

esqueçam o meu post

kkk

valeu

M

O q seria este “object o”

Se eu fizer assim funciona?

no servlet:

req.setAttribute("nome", nome);

na JSP:

nome: <%=req.getAttribute("nome")%>
M

sim, funciona. Ele vai chamar toString() no Object qnd passar pro println pelo <%= %>

M

Veja como eu estou fazendo…

no servlet:

req.setAttribute&#40;"nome", nome&#41;;
req.getRequestDispatcher&#40;"/teste.jsp"&#41;. forward &#40;req, res&#41;;

No JSP:

&lt;%@page import="javax.servlet.*"%&gt;
&lt;%@page import="javax.servlet.http.*"%&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;teste&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;


nome&#58; &lt;%req.getAttribute&#40;"nome"&#41;;%&gt;


&lt;/body&gt;

&lt;/html&gt;

Mas esta dando este erro no JSP:

C&#58;\tomcat\work\Standalone\localhost\testes\teste_jsp.java&#58;55&#58; cannot find symbol
symbol  &#58; variable req
location&#58; class org.apache.jsp.teste_jsp
req.getAttribute&#40;"t1"&#41;;
^

O q pode estar acontecendo?

M

no jsp não é req, o objeto implícito é request

M

Valeu de novo Matheus…

agora naum esta dando mais nenhum erro, mas naum esta aparecendo o nome (parametro).

na pagina teste.jsp, deveria aparecer assim:

nome&#58; Marcelo Madeira

e está aparecendo assim:

nome&#58;
M

então confira o valor do atributo q vc esta bindando no request… :roll:

M

Ola Matheus,

fiz algumas alterações
agora no teste.jsp esta aparecendo assim:

nome&#58; null

o q pode ser?

M

ele não ta achando um valor no request com o nome q vc esta usando pra recuperar…

M

Agora deu certo…

o q esta dando errado era o objeto HttpServletRequest, foi so eu mudar ele de req para request que deu certo.

Valeu pelas dicas.
E até a próxima

C

No seu jsp vc vai usar:

nome&#58; &lt;%request.getAttribute&#40;"nome"&#41;;%&gt;

Todo jsp é na verdade um servlet. Tudo que vc põe entre <%%> vai para o método _jspService(request, response) do seu servlet. O nome do objeto que vc recebe é request, e não req.

Troca o req por request que deve funcionar.

[]'s
carisio

C

Desconsiderem meu último post, não vi que tinha 2 páginas no fórum… Só olhei a primeira…

[]'s
carisio

D

nao eh req

o certo eh request

nome&#58; &lt;%request.getAttribute&#40;"nome"&#41;;%&gt;[/code]
Criado 9 de maio de 2005
Ultima resposta 9 de mai. de 2005
Respostas 18
Participantes 4