• Viernes 15 de Noviembre de 2024, 14:08

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - frantic

Páginas: [1]
1
JSP/Servlets / Problema Con Requestdispatcher.forward()
« en: Jueves 31 de Marzo de 2005, 13:04 »
Saludos a todos,

Tengo un inconveniente con un servlet, cuando hago un forward para ir a otra página me lanza una NullPointerException y la verdad le he dado vueltas y nada de nada no ubico el problema.
Este servlet lo que hace es utilizar un bean para verificar si un usuario existe y dar error si no existe o por el contrario crearle una sesión en caso de existir, el problema es que al realizar el forward a un jsp ubicado en un directorio llamado jso dentro de la aplicación me lanza una excepcion, les dejo el código del servlet e indico con comentarios donde se produce el error para que lo vean con mayor facilidad:

package registro.servlets;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import registro.beans.ConnectionHelper;
import registro.beans.UsuariosHelper;
import registro.clases.Usuarios;

public class VerificacionUsuario extends HttpServlet {

public void doPost(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {

Usuarios user = new Usuarios();

user.setIdUsuario(request.getParameter("idUsuario"));
user.setPassword(request.getParameter("password"));

try{
UsuariosHelper userHelp = new UsuariosHelper();
userHelp.setUser(user); //Seteamos el objeto usuario de la clase Helper

user = userHelp.buscarUsuario(); //Buscamos el usuario en la base de datos
if(user != null){
//El usuario existe ahora debemos comprobar si tiene o no acceso a la aplicación
/* Esto esta comentado ya que aun no conozco el parametro a comprobar
habria que verificar si el usuario está activo y ademas si tiene acceso a la
aplicacion Registro de Ordenes*/

//Si al final de las comprobaciones el usuario es correcto le creamos una sesión
HttpSession session = request.getSession(true); //Creamos la nueva session
/*Le colocamos el objeto user a la session asi nos aseguramos de que tendremos disponible
los datos que necesitemos de el mismo en cualquier momento*/
session.setAttribute("user", user);




//realizamos un forward a la pagina de seleccion de centro directivo



ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/jsp/selecCentro.jsp");

System.out.println(context.getRealPath("/jsp/selecCentro.jsp"));
System.out.println(context.toString());

//rd.include(request, response);



rd.forward(request, response);

}
else{
//en el caso de que el usuario o el password sean incorrectos
throw new Exception("El usuario y/o el password son incorrectos");
}
}catch(Exception ex){
//Si ocurre alguna excepcion debemos enviar el mensaje a una pagina de error adecuada

RequestDispatcher rd = request.getRequestDispatcher("/jsp/error.jsp");


//Seteamos el mensaje de error
String title = "Error de búsqueda de usuario";
String msg = "Imposible encontrar el usuario";

//Agregamos el mensaje que proviene de la Exception que se disparo
String exMsg = ex.getMessage();

//Establecemos una url de vuelta a la página anterior para el usuario
String backUrl = "login.jsp";
String urlName = "Login";

this.log(ex.toString()); //Generamos log en el servidor

ex.printStackTrace(); //para visualizar la traza de la excepción en consola

//Seteamos los atributos
request.setAttribute("title", title);
request.setAttribute("msg", msg);
request.setAttribute("exMsg", exMsg);
request.setAttribute("backUrl", backUrl);
request.setAttribute("urlName", urlName);
rd.forward(request, response); //Justo en esta linea es disparado el error

}
}

public void doGet(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
}

}



Hice pruebas de imprimir la ruta a ver si era eso pero al parecer esta perfecta la ruta que me arroja por consola es...
C:\Archivos de programa\Apache Tomcat 4.0\webapps\RegistroOrdenes\jsp\selecCentro.jsp

Si alguien me puede dar una luz con esto le estare muy agradecido....
Saludos.-

Páginas: [1]