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

Gracias Xerelo, admito mi error, ahora mis dudas aumentan mas. Supongamos que tengo la siguiente clase:
Código JAVA:
Ver original
  1. public class Miclase(){
  2.     private String cadena;
  3.     private ArrayList<Detalleclass> lista;
  4.     public Miclase(){
  5.         this.lista=new ArrayList<Detalleclass>();
  6.     }
  7.     public void setLista(ArrayList<Detalleclass> lista){
  8.         this.lista=lista;
  9.     }
  10.     public ArrayList getLista(){
  11.         return this.lista;
  12.     }
  13.     public void setCadena(String cadena){
  14.         this.cadena=cadena;
  15.     }
  16.     public String getCadena(){
  17.         return this.cadena;
  18.     }
  19. }

y este es 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.  
  6. Miclase clase =(Miclase)session.getAttribute("clase");
  7. if (clase == null) {
  8. clase = new Miclase();
  9. session.setAttribute("clase",clase);
  10. }
  11.  
  12. ArrayList<Detalleclass> array =((Miclase)session.getAttribute("clase")).getLista();
  13.  
  14. Detalleclass detBean=new Detalleclass();
  15. detBean.setAlmacen(request.getParameter("almacen"));
  16. detBean.setDescripcion(request.getParameter("descripcion"));
  17. array.add(depBean);
  18.  
  19.  
  20. clase.setCadena("Una cadena");
  21. clase.setLista(array);
  22. //session.setAttribute("clase",clase);
  23.  
  24. }

Si le quito esto: clase.setLista(array); la sesiones funcionan perfecto! Pero si no le quito aparece el mismo detalle(los mismos registros del array) en ambos navegadores, en los que hago las pruebas, en otras palabras no me funciona. Por que ocurre esto?

Por otro lado clase.setCadena("Una cadena"); funciona bien si le agrego esto: session.setAttribute("clase",clase); al final, pero deja de funcionar el array en las sesiones.

Me esta volviendo loco esto. Si algo no se entiende me lo hacen saber. Algo estaré haciendo mal?

Gracias a todos.