Enviar varial pelo servlet

7 respostas
A

Boa tarde

Pessoal tenho um servlet que preciso enviar dados para um jsp via post, o servlet esta funcionando e com as variáveis ok, mas não sei como mandar essas variáveis para o jsp e não sei também como receber no jsp para exibir na tela, sei que no servlet para encaminar para um jsp faço isso:

RequestDispatcher rd = req.getRequestDispatcher("jsp/resultado_pesquisa.jsp"); rd.forward(req, res);

Dessa forma já testei e direcionou para o jps, o preciso saber agora é como enviar variáveis do servlet e recuperar no jsp via post.

7 Respostas

R

Atributos da requisição.

Na classe:

request.setAttribute("teste","testando");

na JSP:

<%=request.getAttribute("teste")%>
A

Cara valeu pela força , mas esta dando um erro, esse:

cannot find symbol variable request line 30

A linha 30 é essa:
request.setAttribute("x","testando");
Meu código é esse:
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class FRMPesquisa extends HttpServlet {

	String rg,nome,endereco,nasc,curso,email;
	;
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		cadastrar(req, res);

    }

    private void cadastrar(HttpServletRequest req, HttpServletResponse res)  throws ServletException, IOException {

	    rg = req.getParameter("rgm");
	    nome = req.getParameter("nome");
		endereco = req.getParameter("endereco");
		nasc = req.getParameter("nasc");
		curso = req.getParameter("curso");
		email = req.getParameter("email");
		//dados = new String[10][6];
		String[][] dados = {{"111111", "Aluno 1", "Endereço 1", "03/10/1980", "TADS","[email removido]"},
							{"222222", "Aluno 2", "Endereço 2", "03/10/1980", "TADS","[email removido]"},
							{"333333", "Aluno 3", "Endereço 3", "03/10/1980", "TADS","[email removido]"}
						   };


		request.setAttribute("x","testando");

	    RequestDispatcher rd = req.getRequestDispatcher("jsp/resultado_pesquisa.jsp");
      	rd.forward(req, res);

	   }

}

Porque esta dando esse erro?

A
Opa vacilei feio já corrigi variável com nome errado srsrsr era req e não request Mas estou com erro no jsp, esse é o jsp:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>

<body>

<%

	
		String nome = request.getAttribute("x");
		out.println("aaa<br>");
			out.println(nome);	
	
%>
</body>
</html>

Esse é o erro:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 14 in the jsp file: /jsp/resultado_pesquisa.jsp
Type mismatch: cannot convert from Object to String
11: <%
12:
13:
14: String nome = request.getAttribute("x");
15: out.println("aaa
");
16: out.println(nome);
17:

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:341)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
FRMPesquisa.cadastrar(FRMPesquisa.java:33)
FRMPesquisa.doPost(FRMPesquisa.java:11)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.5 logs.

Não entendi o porque desse erro

nel

Oi!

Na assinatura tu chama o objeto HttpServletRequest de req e usa no método como request.
Ai realmente não vai funcionar.

nel

Muda para object.

Object nome = request.getAttribute("x");

ou tente:

String nome = (String) request.getAttribute("x");
A

Valeu galera funcionou

nel

Muito bom.
Só poste a solução caso alguém passe pelo mesmo problema que o seu e adicione [Resolvido] ao fim do tópico.

Abraços!

Criado 13 de setembro de 2011
Ultima resposta 13 de set. de 2011
Respostas 7
Participantes 3