Foro de elhacker.net

Programación => Java => Mensaje iniciado por: NightZpy en 18 Octubre 2007, 07:11 am



Título: Problema con requestdispatcher (servlet to jsp)
Publicado por: NightZpy en 18 Octubre 2007, 07:11 am
Amigos una preguntica, tengo una pagina principal.html que es no mas la que se divide en 3 marcos izquierdo que es el menu.jsp, derecho que es el fondo.jsp y cabecera.jsp (arriba  ;D).

al ingresar la página inicial es principal.html que, en menu.jsp esta para loguearse contra una base de datos, envio por post usuario y clave, a InicioSesion (servlet),
este servlet se encarga de ver si el usuario esta logueado y si lo esta lanzarme de nuevo contra principal.html pero aqui el cabecera.jsp recojera los datos de una session y verificara el tipo de usuario y el nombre del usuario para dar una bienvenida apropiada, la cuestion es que cuando logueo un usuario correcto parece que me reenviara a la misma principal.html en la que no se habia logueado nadie, asi que no me ejecuta las decisiones de cabecera.jsp para que de la bienvenida apropiada....he pensado que pudiese ser el cache del navegador, pero no estoy seguro.

voy a poner los fuentes por aqui haber si alguien me ayuda:

InicioSesion.java
Código:
package firtsbank.servlets;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import firtsbank.principal.*;

public class IniciarSesion extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
doPost(req, resp);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
ServletContext sc = getServletContext();
Usuario usuario = new Usuario(), usuarioSesion = new Usuario();
PrintWriter out = resp.getWriter();
HttpSession sesion = req.getSession(true);
ManejadorDB conector = new ManejadorDB();
String user = null, clave = null;

if((usuarioSesion=(Usuario)sesion.getAttribute("usuario"))==null)
{
sesion.setAttribute("usuario", new Usuario());
}

user = req.getParameter("usuario");
clave = req.getParameter("clave");

usuario.setusuario(user);
usuario.setclave(clave);

boolean valido = conector.validarUsuario(usuario);

if(valido)
{
usuario=conector.obtenerUsuario(usuario);
req.setAttribute("usuario", usuario);
sesion.setAttribute("usuario", usuario);
//out.println("<HTML><HEAD><H1>Bienvenido " + usuario.getusuario() + "!</H1><br></HEAD></HTML>");
String estado = usuario.getestado();

if(estado.equals("Activo"))
{
String tipo = usuario.gettipo();

if(tipo.equals("Cliente"))
{
out.println("<HTML><BODY><script>  alert('Tipo= " + tipo + "');" +
"</script></BODY></HTML>");
RequestDispatcher rd = req.getRequestDispatcher("/principalCliente.jsp");
rd.forward(req, resp);
}
else
if(tipo.equals("Cajero"))
{
out.println("<HTML><BODY><script>  alert('Tipo= " + tipo + "');" +
"</script></BODY></HTML>");
RequestDispatcher rd = req.getRequestDispatcher("/principalCajero.jsp");
rd.forward(req, resp);
}
else
if(tipo.equals("Ejecutivo"))
{
out.println("<HTML><BODY><script>  alert('Tipo= " + tipo + "');" +
"</script></BODY></HTML>");
RequestDispatcher rd = sc.getRequestDispatcher("/principal.html");
out.println("<HTML><BODY><script>  alert('Url= " + getServletContext().toString() + "');" +
"</script></BODY></HTML>");
rd.forward(req, resp);
}
}
else
{
out.println("<HTML><BODY><script>  alert('Estado= " + estado + "');" +
"</script></BODY></HTML>");
}
}
else
{
out.println("<HTML><BODY><script>  alert('Usuario= " + usuario.getusuario() + " invalido!');" +
"history.back();</script></BODY></HTML>");
}


}

}

cabecera.jsp
Código:
<!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>
<%@ page
language="java"
session="true"
import="java.lang.*, firtsbank.principal.*"
session="true"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
%>

<%!
private String bienvenida=null, titulo=null;
private int id=0, idPersona=0;
private String respuesta=null, tipo=null, estado=null, user=null, clave=null, pregunta=null;
private Usuario usuario=null;
%>

<%usuario=(Usuario)request.getAttribute("usuario");%>

<%
if(usuario!=null)
{
id=usuario.getId();
user=usuario.getusuario();
clave=usuario.getclave();
pregunta=usuario.getpregunta();
respuesta=usuario.getrespuesta();
tipo=usuario.gettipo();
idPersona=usuario.getIdPersona();
estado=usuario.getestado();
session.setAttribute("usuario", usuario);
bienvenida="Bienvenido a Firts Bank Project " + user + "!";

if(tipo.equals("Cliente"))
{
titulo="Pagina Inicial de Cliente!";
}
else
if(tipo.equals("Cajero"))
{
titulo="Pagina Inicial de Cajero!";
}
else
if(tipo.equals("Ejecutivo"))
{
titulo="Pagina Inicial de Ejecutivo!";
}
}
else
{
titulo="Pagina Inicial!";
bienvenida="Bienvenido a Firts Bank Project!";
}
%>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><%=titulo%></title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 36px;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
}
body,td,th {
color: #FFFFFF;
}
body {
background-color: #000000;
}
-->
</style>
</head>

<body>
<div align="center" class="Estilo1"><%=bienvenida%></div>
</body>

</html>

Salu2s, haber si me hechan la mano...