Soy nuevo en el foro y me gustaría ver si alguien puede echarme una mano con un problema que me ha surgido. Básicamente se trata de esto:
1-En un jsp recojo un nombre
2- Recupero el dato en un Servlet e instancio una clase creada llamada conexiones
3- Con la clase conexiones instanciada, actualizo una BBDD mediante uno de sus métodos, luego hago una consulta mediante otro método de esa clase a la misma BBDD para ver si efectivamente se ha actualizado
4- Acabo instanciando la clase Sesiones y con los datos del result de la consulta, genero atributos de sesión para que puedan usarse y vuelvo al JSP
En definitiva actualizar los datos de sesión con datos introducidos por el usuario a través de una BBDD
Tengo hechas salidas por consola de todas las partes que voy ejecutando y el error parece estar a la hora de crear las sesiones, pero es que no encuentro el fallo.
Os dejo el código del Servlet, el de las sesiones y las salidas por consola por si alguien sabe que puede pasar
SERVLET:
Código:
El código de SESIONES:public class PruebasBBDD extends HttpServlet { private static final long serialVersionUID = 1L; String nombre; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { nombre= request.getParameter("nombre"); String stqueryupdate="update clientes set nombre='"+nombre+"' where ciudad like 'madrid'"; String st = "SELECT * FROM clientes WHERE nombre LIKE '"+ nombre+"'"; Conexiones acceso= new Conexiones(); Connection conex= acceso.conexiones(); acceso.actualizaBBDD(stqueryupdate, conex); System.out.println("HEcha la actualizacion"); ResultSet resultado1= acceso.consultaBBDD(st, conex); try { while (resultado1.next()){ System.out.println("HEcha la consulta con estos results; "); System.out.println(""+resultado1.getString(1)+" "+resultado1.getString(2)+" "+resultado1.getString(3));} JOptionPane.showMessageDialog(null, "Actualización realizada con éxito"); new hilos.Sesiones().cerrarsesion(request, response); System.out.println("limpiamos la sesión anterior y vemos si efectivamente se han borrado los elementos: "); System.out.println("---"+request.getSession().getAttribute("codcliente")+ "----"+request.getSession().getAttribute("nombre")+ "---"+ request.getSession().getAttribute("ciudad")); System.out.println("Intentamos crear nueva sesión"); new hilos.Sesiones().atributosusuario(resultado1, request, response); System.out.println("---"+request.getSession().getAttribute("codcliente")+ "----"+request.getSession().getAttribute("nombre")+ "---"+ request.getSession().getAttribute("ciudad")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("sesiones creadas"); response.sendRedirect("index.jsp"); }
public class Sesiones {
Connection conexion;
ResultSet resultado;
ResultSet resultado2;
public void atributosusuario(ResultSet resultadocontrol, HttpServletRequest request, HttpServletResponse response){
HttpSession sesion= request.getSession();
this.resultado=resultadocontrol;
try {
sesion.setAttribute("codcliente", resultado.getString("codcliente"));
sesion.setAttribute("nombre", resultado.getString("nombre"));
sesion.setAttribute("ciudad", resultado.getString("ciudad"));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void cerrarsesion(HttpServletRequest request, HttpServletResponse response){
request.getSession().invalidate();
}
}
Y por último, lo que sale por consola:
HEcha la actualizacion
HEcha la consulta con estos results;
AA01 Juan madrid
HEcha la consulta con estos results;
AA04 Juan madrid
HEcha la consulta con estos results;
AA55 Juan madrid
HEcha la consulta con estos results;
AC34 Juan madrid
limpiamos la sesión anterior y vemos si efectivamente se han borrado los elementos:
---null----null---null
Intentamos crear nueva sesión
java.sql.SQLException: After end of result set
Luego una pila de exceptions
---null----null---null
sesiones creadas
Lo que parece es que no puede crear las sesiones, pero no se por qué, no veo nada extraño en el código
Pues nada, si alguien se toma la molestia de leer este chorro entero y me da alguna solución le estaré eternamente agradacido
Un saludo