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!!
ninguem tem idéia de como faz?
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("<HTML><BODY>");
tela.println("Acesso permitido, Bem vindo " + usu + frase +" o seu código de usuário é : " + codcli);
tela.println("<APPLET CODE='" +usu+".class' codebase='C:/'> <PARAM NAME =usuario VALUE ="+usu+"><PARAM NAME =ip VALUE ="+ip2+"> <PARAM NAME =senha VALUE ="+asenha+"></APPLET>");
tela.println("<BR><P>");
tela.println("</BODY></HTML>");
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("<HTML><BODY>");
tela.println("Dados incompletos, algum campo não foi preenchido");
tela.println("<BR><P>");
tela.println("</BODY></HTML>");
}
catch (IOException e)
{
return;
}
}
}
}
ainda não consegui
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.
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?