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

No entiendo que sucede.. urgente

Estas en el tema de No entiendo que sucede.. urgente en el foro de Java en Foros del Web. Un saludo especial desde Colombia. Bueno amigos necesito que me ayuden con un problema: tengo una aplicacion de matriculas por internet, esta hecha en JAVA ...
  #1 (permalink)  
Antiguo 07/12/2004, 07:28
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
No entiendo que sucede.. urgente

Un saludo especial desde Colombia.

Bueno amigos necesito que me ayuden con un problema:

tengo una aplicacion de matriculas por internet, esta hecha en JAVA y JSP, corre con TOMCAT 4.1 y windows 2000, se conectan hasta 80 usuarios concuerrentes, cuando un usuario se logea cargo unas variables de session con la informacion de este usuario para mostrarla como título en el encabezado de mis páginas.

les explico el problema:

un usuario se conecta desde una máquina A, y toda va normal, valida usuario e ingresa a la aplicacion...

al rato otro usuario se conecta desde otra máquina B y hace su logeo normal, valida usuario e ingresa a la aplicacion, PERO en los encabezados de las páginas le muestra la informacion del usuario que se conecto en la máquina A... hasta que refrescamos la página con F5 ó desde el menú, despues de refrescar la página si muestra la información real del usuario conectado en la máquina B.

las variables de session las borro ó mato en la página de logeo para evitar problemas, entonces pienso que allí no está el error

muchas gracias por cualquier sugerencia
  #2 (permalink)  
Antiguo 08/12/2004, 13:34
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola, es extraño, el webcontainer es quien manejas las sesiones, y no habìa visto un caso en que se puedan confundir las sesiones.
Me parece màs un problema del browser o de la aplicacion, es decir, si bien desde la máquina B se logea el segundo usuario y muestra informacion del primer usuario...., es probable que el primer usuario se haya logeado antes y haya quedado informaicon de el en cache. No se, me estoy imaginando algun probema con el browser...
Ahora derrepente algunas lineas del codigo del manejo de sesion de la informacion del usuario, nos pueda ayudar algo más ....
__________________
Saludos,

H@C..
  #3 (permalink)  
Antiguo 09/12/2004, 08:20
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bogota, Colombia
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
No se si estes utilizando servlet's si es asi, una regla de oro es que no se deben declarar variables globales en los servlets ya que cuando llega un nuevo requerimiento se van cambiando, asi que mira haber si depronto has instanciado un objeto de una clase como global.

Solo se pueden declarar constantes en los servlets es decir static o static final.

Hasta pronto.
  #4 (permalink)  
Antiguo 10/12/2004, 10:42
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Un saludo especial desde Colombia..

gracias amigos por sus sugerencias...

la verdad Hugo es que si me parece muy raro al igual que a tí, y también he pensado en la posibilidad de que la información esta quedando en cache, he puesto algunas líneas de METATAG para evitar cargar de cache las páginas, y aun así sigo teniendo el problema

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

Ahora, la sugerencia que me hace Daniel es muy válida, porque sí utilizo Servlets, y allí creo que defino variables globales, es decir en el encabezado antes de definir los métodos del servlet (eso entiendo que es una variable global)... pero lo que no entiendo es porque al refrescar la página si se actualizan a los datos correctos... se supone que si fueran por las variables globales de los servlets estos datos se perpetuarían.

yo estoy por creer que tiene que ver algo con el navegador, o la cache... tal vez si me dan sugerencias para evitar que mis JSP cojan datos de la cache o de las cookis o de algun otro método que guarde informacion en la memoria se los agradecería mucho.

thanks in advance
  #5 (permalink)  
Antiguo 10/12/2004, 12:02
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Loq ue sucese es que una vez que alguien solicita el Servlets al servidor por primera vez, este lo ejecuta y lo deja en memoria, por tanto las variables globales se comparten para todos los usuarios que entren despues, pues el Servlets no vuelve a ejecutar esa parte del codigo a menos que se reinicie el servidor web.

Es por ello que en los Servlets es bueno siempre declarar las conexiones a bases de datos y esas cosas en lo posible en un Bean que se llame dentro del doPost o doGet, lo mismo para variables que no debrian repetirse los valores en distintos usuarios accediendo a la página.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #6 (permalink)  
Antiguo 10/12/2004, 13:03
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Un saludo especial desde Colombia..

gracias amigos por sus sugerencias...

la verdad Hugo es que si me parece muy raro al igual que a tí, y también he pensado en la posibilidad de que la información esta quedando en cache, he puesto algunas líneas de METATAG para evitar cargar de cache las páginas, y aun así sigo teniendo el problema

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

Ahora, la sugerencia que me hace Daniel es muy válida, porque sí utilizo Servlets, y allí creo que defino variables globales, es decir en el encabezado antes de definir los métodos del servlet (eso entiendo que es una variable global)... pero lo que no entiendo es porque al refrescar la página si se actualizan a los datos correctos... se supone que si fueran por las variables globales de los servlets estos datos se perpetuarían.

yo estoy por creer que tiene que ver algo con el navegador, o la cache... tal vez si me dan sugerencias para evitar que mis JSP cojan datos de la cache o de las cookis o de algun otro método que guarde informacion en la memoria se los agradecería mucho.

thanks in advance
  #7 (permalink)  
Antiguo 10/12/2004, 20:36
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Efectivamente, usar variables de instancia a nivel de los servlets, sabiendo que siempre va a existir una sòlo instancia de un servlet, y ellos compartiran los datos, no es recomendable almacenar ahi informacion, del usuario, sino tenerla, simplemente en variables de sesiòn.

Por otra parte, haber aqui tengo algunas lìneas de còdigo para pàginas JSP, para evitar el cache del browser:

<%
response.setDateHeader("Expires",-1);
response.setHeader("Pragma","no-cache");
if(request.getProtocol().equals("HTTP/1.1"))
response.setHeader("Cache-Control","no-cache");
%>
<html>
...
</html>

Espero te ayude, aunque creo que en parte es lo mismo que ya has puesto tù con metas de html.
__________________
Saludos,

H@C..
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




La zona horaria es GMT -6. Ahora son las 03:42.