Comunicação entre Serlets

Oi! Estou fazendo um sistema web e tenho um servlet… quero que ele chame uma página JSP que eu fiz. Como eu faço isso? Obrigado!! :smiley:

ninguem tem idéia de como faz? :cry:

Assim:

request.getRequestDispatcher("/pagina.jsp").forward(request, response);

Onde a String lá em cima é qualquer caminho mapeado por um Servlet (e JSP também é Servlet).

obrigado, vou tentar aki. então, nessa string eu coloco o que eu digito no navegador pra acessa o servlet?eu puis:
request.getRequestDispatcher(“http://localhost:8085/Bone/?usuario="+usu+"&frase=”+frase).forward(request, response);

mas não funciona, ele não acha as variaveis request e response

O que eu to errando?

import java.sql.;
import java.io.
;
import java.util.Date;
import javax.servlet.;
import javax.servlet.http.
;
import java.net.*;

public class login extends HttpServlet
{
boolean status;
String asenha,ip="",ip2="",codcli, frase;
Connection con,con2;
Statement stmt,stmt2;
ResultSet rs,rs2;

public void doGet (HttpServletRequest req, HttpServletResponse res)
{
String usu= req.getParameter(“T1”);
String senhas = req.getParameter(“T2”);

if (!usu.equals("") && !senhas.equals(""))
 {
String url = "jdbc:odbc:BD";
try
   {
   Class.forName ( "sun.jdbc.odbc.JdbcOdbcDriver" );
   con = DriverManager.getConnection(url,"","");
   con2 = DriverManager.getConnection(url,"","");
   stmt = con.createStatement();
   stmt2 = con2.createStatement();

   }
catch(ClassNotFoundException ex)
   {
   System.out.println("Driver JDBC-ODBC não encontrado!");
   return;
   }
catch(SQLException ex)
   {
   System.out.println("Problemas na conexao com a fonte de dados");
   return;
   }

try
   {

rs = stmt.executeQuery(“SELECT senha,cod_cli FROM cliente where usuario = '”+ usu +"’ ");

// aqui tá pegando só o 1 ip de todos rs = stmt.executeQuery(“SELECT senha,ip FROM cliente,propriedade where usuario = '”+ usu +"’ ");
rs.next();
asenha = rs.getString(“senha”);
codcli = rs.getString(“cod_cli”);

       // selecionou a senha e o código do cliente. Agora, com estes em mãos, pega o IP na tabela propriedade

//rs = stmt.executeQuery(“SELECT ip FROM proprieade where cod_cli = '”+ codcli +"’ ");
rs = stmt.executeQuery(“0”);
// rs.next();
// ip = rs.getString(“ip”);

 // NÃO PODE SOBREPOR, FIZEMOS OUTRO EXECUTE QUERY EM UM RESULT SET 2. GAMBIARRA :
 // OBRIGAMOS A CAIR EM ERRO (sobrepomos de proposito) e no erro ele consegue casta o IP.

//
}
catch(SQLException ex)
{

	//try{
	//	PrintStream tela = new PrintStream(res.getOutputStream());
		// tela.println("Erro interno(sql).");
	// }catch(IOException e){}

try{
rs2 = stmt2.executeQuery(“SELECT ip FROM propriedade where usuario = '”+ usu +"’ ");
rs2.next();
ip2 = rs2.getString(“ip”);
frase = " o ip da sua residência é " + ip2 + " e ";

  if(ip2.equals("0")){rs2 = stmt2.executeQuery("0");}           } // SE O IP EsTIVER 0, FORÇA ERRO SQL.

catch(SQLException semIP){try{
PrintStream tela = new PrintStream(res.getOutputStream());
tela.println("<HTML><BODY>Ip não encontrado. Certifique-se que:
o registrador de IP está instalado na máquina localizada em sua propriedade;
- Seu computador está ligado;
- Sua conexão com internet está ativa;
- o FireWall está corretamente configurado;
Maiores informações ligue para (11)0000-0000
</BODY> </HTML>");
frase="";
}catch(IOException e){}}

}

try
   {
   if (senhas.equals(asenha))
     {

	 PrintStream tela = new PrintStream(res.getOutputStream());

	 /*tela.println("&lt;HTML&gt;&lt;BODY&gt;");

	 tela.println("Acesso permitido, Bem vindo " + usu + frase +" o seu código de usuário é : " + codcli);
	 tela.println("&lt;APPLET CODE='" +usu+".class'  codebase='C:/'&gt; &lt;PARAM NAME =usuario VALUE ="+usu+"&gt;&lt;PARAM NAME =ip VALUE ="+ip2+"&gt; &lt;PARAM NAME =senha  VALUE ="+asenha+"&gt;&lt;/APPLET&gt;");
	tela.println("<BR><P>");
	tela.println("&lt;/BODY&gt;&lt;/HTML&gt;");

	OBS, passar parametros usuario,frase

*/
//req.getRequestDispatcher(“http://localhost:8085/Bone/?usuario="+usu+"&frase=”+frase).forward(req, res);

RequestDispatcher rd = req.getRequestDispatcher(“http://localhost:8085/Bone/?usuario="+usu+"&frase=”+frase);
rd.forward(req, res);
return;
}
else
{
PrintStream tela= new PrintStream(res.getOutputStream());
tela.println("<HTML><BODY>");
tela.println(“Acesso negado”);
tela.println("

");
tela.println("</BODY></HTML>");
return;
}
}
catch (IOException e)
{
System.out.println(“Problemas no retorno dos dados”);
}
}

else
{

try
   {
   PrintStream tela = new PrintStream(res.getOutputStream());
   tela.println("&lt;HTML&gt;&lt;BODY&gt;");
   tela.println("Dados incompletos, algum campo não foi preenchido");
   tela.println("<BR><P>");
   tela.println("&lt;/BODY&gt;&lt;/HTML&gt;");
   }
catch (IOException e)
   {
	return;
   }

}

}
}

ainda não consegui :cry:

Você poderia indicar qual o erro que está ocorrendo agora?

HAEEE, consegui. Ficava tudo branco, parecia que a servlet não rodava oO. Obrigado, eu arrumei algumas gambiarras , puis no netbeans, tirei alguns métodos inúteis e funcionou. É… é melhor fazer um código limpo desde o começo para evitar problemas. :smiley:

Pode ser assim

RequestDispatcher rd = request.getRequestDispatcher("/resultado.jsp");
rd.forward(request, response);

aqui tem o doc RequestDispatcher

[]s

[quote=Leonardo3001]Assim:

request.getRequestDispatcher("/pagina.jsp").forward(request, response);

Onde a String lá em cima é qualquer caminho mapeado por um Servlet (e JSP também é Servlet).

[/quote]

Ué… e não foi o que disse?