Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2013, 05:24
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Sesion usuario

Buenos días!!!

estoy utilizando Anotaciones en mi proyecto con Spring, y ahora mismo nose como manejar las sesiones de los usuarios. Antes utilizaba la clase HttpServletRequest y la clase HttpSession de la siguiente manera:

Código JAVA:
Ver original
  1. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3. .
  4. .
  5. .
  6.  
  7. HttpSession sesionActual= request.getSession(true);
  8.                 sesionActual.setAttribute("usuSesion", usuario.getNickUsuario());
  9.                 sesionActual.setAttribute("nivelUsuario", usuario.getNivelUsuario());
  10. .
  11. .
  12. .

y si quería acceder al valor de uno de los atributos lo hacía así:

Código JAVA:
Ver original
  1. request.getSession().getAttribute("usuSesion");

Sin embargo ahora al utilizar anotaciones he leido que es hay un tipo de atributos @SessionAttributes que se mantienen durante toda la sesion hasta que se modifican o se eliminan por lo tanto estaba manejando las sesiones así:

Código JAVA:
Ver original
  1. @SessionAttributes({"usuSesion","nivelUsuario"})
  2.  
  3. @RequestMapping("loginServlet.htm")
  4.     public String loginServlet(@RequestParam("usuario") String nickUsuario, @RequestParam("contras") String contrasUsuario, ModelMap modelo) {
  5.             try {                
  6.                 Usuario usuario = operaciones.buscarUsuario(nickUsuario, contrasUsuario);              
  7.                
  8.                 if(usuario!=null){                    
  9.                     modelo.addAttribute("usuSesion", usuario.getNickUsuario());
  10.                     modelo.addAttribute("nivelUsuario", usuario.getNivelUsuario());          
  11.                     return index(modelo);
  12.                 }
  13.                 else{
  14.                     modelo.addAttribute("mensaje", "USUARIO Y/O CONTRASEÑA INCORRECTOS");
  15.                     return "/WEB-INF/jsp/mensaje.jsp";
  16.                 }
  17.             } catch (SQLException ex) {
  18.                 Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
  19.             }
  20.             return index(modelo);
  21.     }

El problema está que si luego quiero obtener el valor de los SessionAttributes lo he intentado así pero no devuelve ningún valor y nose como hacerlo o si se puede hacer

Código JAVA:
Ver original
  1. modelo.get("usuSesion");

Mi pregunta es.. usando anotaciones hay alguna forma especifica de manejar Sesiones de usuario? se pueden utilizar las clases HttpSession y HttpServletRequest, como debería hacerlo?

Se agradece cualquier sugerencia o alternativa, porque la verdad nose por donde tirar ahora mismo!!