Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2010, 07:21
Avatar de chicohot20
chicohot20
 
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años
Puntos: 43
No entiendo sesiones en Java

Hola a todos. Tengo el sgte codigo parte de un servlet:

Código JAVA:
Ver original
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)
  2.    throws ServletException, IOException {  
  3.   PrintWriter out = response.getWriter();
  4.   HttpSession session = request.getSession(true);
  5.   ArrayList<DetallepBean> array =(ArrayList<DetallepBean>)session.getAttribute("milista");
  6.  
  7.   if(array==null){
  8.       array=new ArrayList<DetallepBean>();
  9.       session.setAttribute("milista",array);
  10.   }
  11.  
  12.    DetallepBean depBean=new DetallepBean();
  13.    depBean.setAlmacen(request.getParameter("almacen"));
  14.    depBean.setDescripcion(request.getParameter("descripcion"));
  15.        
  16.    array.add(depBean);  
  17.  
  18.   //session.setAttribute("milista",array);
  19.  }
Cuando ejecuto por primera vez el servlet, el array es nullo, si es nulo creo un array en blanco y lo almaceno en una variable milista de la sesion. Se supone que esta variable almacena un array en blanco en ese instante, pero cuando ejecuto por segunda vez el servlet y recupero esa variable contiene un array con un registro. Porqué?

Despues de agregar un objeto al array, porque ya no es necesario hacer esto: session.setAttribute("milista",array); ???

Alguien me podría dar una explicacion mas a fondo de como funciona un geAttribute y un setAttribute? en internet no encontre nada, solo ejemplos clasicos.

Muchas Gracias.