Foros del Web » Programación para mayores de 30 ;) » Java »

Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Estas en el tema de Como obtener lo datos de una sesion hecha con servlets a traves de un jsp en el foro de Java en Foros del Web. AYUDA POR FAVOR TENGO UN PROBLEMA CON LAS SESIONES AL MOMENTO DE QUERER RECUPERAR EL NOMBRE DE USUARIO DE LA SESION, LA SESION LA GENERO ...
  #1 (permalink)  
Antiguo 14/07/2011, 10:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 33
Antigüedad: 12 años
Puntos: 3
Exclamación Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

AYUDA POR FAVOR TENGO UN PROBLEMA CON LAS SESIONES AL MOMENTO DE QUERER RECUPERAR EL NOMBRE DE USUARIO DE LA SESION, LA SESION LA GENERO EN UN SERVLET Y EN DONDE TENGO EL PROBLEMA ES EN EL JSP, AL MOMENTO DE QUERER RECUPERARLA EN UN JSP ME MARCA NULL EN EL CAMPO DONDE DEBE DE IR EL NOMBRE DEL USUARIO, POR FAVOR ME PRODRIAN DECIR COMO PUEDO RECUPERAR EN UN JSP EL NOMBRE DE USUARIO

Aqui esta el codigo del servlet:


package CentroQuirurgicoController;

import CentroQuirurgicoDATA.Conexion;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
*
* @author Administrador
*/
public class LoginServlet extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String usuario = request.getParameter("txtUsuario");
String clave = request.getParameter("txtClave");

Connection cn = new Conexion().getConnection();
String query = "select * from usuario where nombre_usuario=?";
PreparedStatement pstmt = cn.prepareStatement(query);
pstmt.setString(1, usuario);
ResultSet rs = pstmt.executeQuery();

if ( rs.next() && clave.equals(rs.getString("Clave"))) {

HttpSession sesion = request.getSession();
sesion.setAttribute("NombreUsuario", getInitParameter("NombreUsuario"));
RequestDispatcher rd = getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);
} else {
request.setAttribute("validar", "1");
RequestDispatcher rd = getServletContext().getRequestDispatcher("/Login.jsp");
rd.forward(request, response);
}

pstmt.close();
cn.close();
System.out.println("Ok");

}
catch(Exception e){e.printStackTrace();}

finally {
out.close();
}
}}



Este es el jsp donde debe aparecer el nombre del usuario que h iniciado sesion:

<!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>MVC con Java - ::: Menu ::: -</title>
<style type="text/css">
<!--
.Estilo2 {font-size: 18px; }
-->
</style>
</head>

<body>
<div align="center">
<p>::: MENU :::</p>
<table width="240" border="0">
<tr>
<td><a href="vistas/web_nuevo_empleado.jsp"><img src="vistas/iconos/icono-formulario.png"/></a></td>
<td><div class="Estilo2">
<a href="vistas/web_agragar_empleado.html">SOLICITUD SALA DE OPERACIONES</a>
</div></td>
</tr>
<tr>
<td><a href="vistas/web_modificar_empleado.jsp"><img src="vistas/iconos/reportes.png"/></a></td>
<td><div class="Estilo2">
<a href="vistas/web_modificar_empleado.jsp">REPORTES</a>
</div></td>
</tr>
<tr>
<td><div class="Estilo2"><a href="Mantenimiento.jsp"><img src="vistas/iconos/database.png"/></a></div></td>
<td><div class="Estilo2"><a href="Mantenimiento.jsp">MANTENIMIENTO DE LA BASE DE DATOS</a></div></td>
</tr>
<tr>
<td><div class="Estilo2"><a href="vistas/web_consultar_empleado.jsp"><img src="vistas/iconos/salir.jpg"/></a></div></td>
<td><div class="Estilo2"><a href="vistas/web_consultar_empleado.jsp">SALIR</a></div></td>
</tr>

</table>



<p>&nbsp;</p>
</div>
</body>

</html>
  #2 (permalink)  
Antiguo 14/07/2011, 15:40
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 13 años, 10 meses
Puntos: 416
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

No veo en ninguna parte de tu JSP donde obtengas el valor de la variable de sesión.

Antes que nada, ¿estas seguro que getInitParameter("NombreUsuario") esta tomando el valor correctamente?
  #3 (permalink)  
Antiguo 15/07/2011, 07:38
 
Fecha de Ingreso: mayo-2010
Mensajes: 33
Antigüedad: 12 años
Puntos: 3
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Cita:
Iniciado por Ronruby Ver Mensaje
No veo en ninguna parte de tu JSP donde obtengas el valor de la variable de sesión.

Antes que nada, ¿estas seguro que getInitParameter("NombreUsuario") esta tomando el valor correctamente?

No lo he puesto en el jsp porque no se como hacerlo intente con un codigo pero me voto null, y como puedo comprobar de que getInitParameter("NombreUsuario") esta tomando el valor correctamente
  #4 (permalink)  
Antiguo 15/07/2011, 08:56
 
Fecha de Ingreso: junio-2011
Mensajes: 39
Antigüedad: 10 años, 11 meses
Puntos: 16
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Hola,

No entiendo porque haces esto en tu servlet:

Código PHP:
sesion.setAttribute("NombreUsuario"getInitParameter("NombreUsuario")); 
si se supone que el nombre del usuario lo estas recibiendo con esta linea:

Código PHP:
String usuario request.getParameter("txtUsuario"); 
luego, si el usuario y clave son correctos deberías hacer:

Código PHP:
sesion.setAttribute("NombreUsuario",usuario); 
pues usuario es la variable donde tienes el valor.

Ahora en tu jsp, en ningun lado se ve que estes mostrando el nombre de quien esta autenticado, es decir, no hay nada como:

Código PHP:
Bienvenido <%=(String)session.getAttribute("NombreUsuario")%> 
Espero sea de ayuda
__________________
Saludos desde Colombia.
http://labs.distrit.co
  #5 (permalink)  
Antiguo 15/07/2011, 10:36
 
Fecha de Ingreso: mayo-2010
Mensajes: 33
Antigüedad: 12 años
Puntos: 3
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Cita:
Iniciado por jeisongutierrez Ver Mensaje
Hola,

No entiendo porque haces esto en tu servlet:

Código PHP:
sesion.setAttribute("NombreUsuario"getInitParameter("NombreUsuario")); 
si se supone que el nombre del usuario lo estas recibiendo con esta linea:

Código PHP:
String usuario request.getParameter("txtUsuario"); 
luego, si el usuario y clave son correctos deberías hacer:

Código PHP:
sesion.setAttribute("NombreUsuario",usuario); 
pues usuario es la variable donde tienes el valor.

Ahora en tu jsp, en ningun lado se ve que estes mostrando el nombre de quien esta autenticado, es decir, no hay nada como:

Código PHP:
Bienvenido <%=(String)session.getAttribute("NombreUsuario")%> 
Espero sea de ayuda
Gracias por tu respuesta ya me habia dado cuenta de mi error, ya me funciono
  #6 (permalink)  
Antiguo 16/07/2011, 15:13
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 14 años, 8 meses
Puntos: 188
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

En los JSP es recomendable utilizar esto:

Código jsp:
Ver original
  1. <h1>Hola ${sessionScope['NombreUsuario']} </h1>

Desconosco como se llama alguien q pueda orientarnos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #7 (permalink)  
Antiguo 16/07/2011, 17:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 13 años, 10 meses
Puntos: 416
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Se le conoce como EL o Expression Language. Es mucho mas legible que poner código embedido y es mas recomendado.
Tambien puedes hacer:
${sessionScope.NombreUsuario}
  #8 (permalink)  
Antiguo 16/07/2011, 22:08
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 14 años, 8 meses
Puntos: 188
Respuesta: Como obtener lo datos de una sesion hecha con servlets a traves de un jsp

Gracias Ronruby. Venía acarreando esa duda desde hace un tiempo.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: jsp, jsp-servlets, servlet, servlets, https
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 09:04.