Conexión y JSP

Tengo un problema con la conexión a la base de datos y espero que me puedas ayudar.
Hay una aplicación de JSP que realiza conexión a la base de datos con distintos usuarios, pero en el momento que existen varios usuarios conectados la información se cruza, y la conexión que prevalece es la del último usuario que se conecto. Como podría solucionar este problema. Gracias
Respuesta
1
En este caso lo que yo haría es utilizar diferentes objetos Connection, uno para cada usuario. Claro que si tienes muchos usuarios concurrentes el rendimiento no será todo lo bueno que podría esperarse. Claro que esto deberías hacerlo a través de un DataSource para optimizar el proceso en la medida de lo posible.
Como podría crear los diferentes objetos Connection.
Y como se utiliza un DataSource
Pues lo de crear diferentes objetos Connection es fácil, por ejemplo:
Connection conexion1 = DriverManager.getConnection(........,user,password);
Connection conexion2 = DriverManager.getConnection(......,user2,password2);
Y así sucesivamente. Luego ten cuidado de no mezclar los statements que utilices.
Los DataSources son otra manera de conectarse con una BBDD, son una capa intermedia entre la aplicación y el driver Jdbc, asumiendo así el papel que realiza el DriverManager. Te recomiendo que leas algo de esto porque es un tema muy interesante para hacer desarrollos contra BBDD en Java.
El problema es que la conexión se crea una vez que el usuario ha introducido por medio de un JSP su usuario y su password, con lo cual los objetos connection no puedo declararlos de esa manera. En la nueva situación como lo podría hacer
Gracias
Vale, me parece que no te había entendido bien lo que me decías. Creo que tu problema va a ser otro. Cuando declaras tus variables en el jsp como lo haces:
Así
<%!Connection conexion%>
o asi
<%Connection conexion%>
De la primera manera le dices al contenedor de servlets que la variable conexión va a ser un atributo de clase, y en la segunda manera le dices que va a ser una variable local. En tu caso te conviene que sea local para que una vez se ejecute el servlet la variable se destruya. Con esto creo que tu problema se solucionará.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas