El día de hoy he tenido que registrarme para solicitar su ayuda, puesto que esta fuera de mis posibilidades solventar un pequeñito problema
Estoy desarrollando una pequeña aplicacion en JAVA-JSP, para consignar unos datos importantes para el lugar donde me desempeño actualmente.
La forma en que he hecho las cosas son:
1) JavaClass para generar la conexion:
Código:
2) Otra JavaClass para la validación del usuario:/** * @author Marco A. */ public class Conexion { private static Connection cn = null; private static String URL = "jdbc:mysql://127.0.0.1/AGCA"; private static String usuario = "root"; private static String contrasena = ""; public static Connection getConexion() throws SQLException { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); cn = DriverManager.getConnection(URL, usuario, contrasena); cn.createStatement(); return cn; } }
Código:
3) Los valores de la anterior JavaClass son suministrados por un pequeño login-index echo en JSP-HTML, no lo coloco para NO aburrirlos mas, jeje...public class HolaUsuarioServlet extends HttpServlet { Connection con = null; @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); try { boolean existeUsuario = false; //Guardamos los datos enviados desde index String usuario = request.getParameter("usuario"); String password = request.getParameter("password"); //Establecemos la conexion con = Conexion.getConexion(); String consulta = "Select * from login where NOM_USU=? && PASS_USU=?"; ResultSet rs = null; PreparedStatement pst = null; pst = con.prepareStatement(consulta); pst.setString(1, usuario); pst.setString(2, password); rs = pst.executeQuery(); String USU=""; String NO_CLAVE=""; while(rs.next()){ //En caso de existir una coincidencia existeUsuario = true; //Y reemplazamos los atributos de dicho Usuario USU = rs.getString("USU"); NO_CLAVE = rs.getString("NO_CLAVE"); } if(existeUsuario){ //Para el usuario existente: //Reemplazamos atributos que luego obtendremos desde las páginas .jsp request.setAttribute("USU", USU); request.setAttribute("NO_CLAVE", NO_CLAVE); //Mandamos estos atributos a la página bienvenida.jsp request.getRequestDispatcher("/Formulario/formuprueba.jsp").forward(request, response); }else{ //De lo contrario vamos a la página errorLogin.jsp request.getRequestDispatcher("/Login/errorLogin.jsp").forward(request, response); } out.close(); } catch (SQLException ex) { out.println(ex.toString()); } }
4) Si los datos "usuario" y "contraseña" son correctos, redirecciona a otro JSP con estructura en HTML con algunos campos para rellenar:
Código:
Mi problema radica en este punto, esta información que el usuario logueado selecciona no puedo mandarlo a la Base de Datos echa en MySQL... imagino que mi error se encuentra en la parte superior en la que reitero la conexion, y leugo que se le haga un submit, vuelva a recargar esta pagina para volverla a llenar siempre habilitada con la sesion del usuario, pero la verdad me estoy volviendo loco y no se que hacer si una alma caritativa pudiera ayudarme le estaría eternamente agradecido <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page import="unsch.efpis.ConexionDB.Conexion"%> <%@page import="java.util.*"%> <%@page import="java.sql.*"%> <%@page import="java.io.*"%> <%Connection cn = null; Statement st = null; try{ Class.forName("com.mysql.jdbc.Driver"); cn=(Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1/AGCA", "root", ""); st = cn.createStatement(); out.print("Conexion establecida"); }catch(Exception e){ out.print("Error en la conexion" + e); } <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>AGCA-SID</title> </head> <body> <div class="wrapper"> <% String nombre = (request.getAttribute("USU")).toString(); String clave = (request.getAttribute("NO_CLAVE")).toString(); %> Usuario: <%=nombre%> --------> Clave: <%=clave %> <form name="frmuser" method="post" action="/Formulario/formuprueba.jsp"> %> <ul> <li id="DivHis" class="notranslate leftHalf"> <label class="DatDoc" id="InfDoc" for="InfDoc">División Histórica</label> <select name="DivHis" id="DivHis" onChange="DivHisOnChange(this)" class="field select medium" tabindex="2"> <option value="0" selected="selected">Sin Dato</option> <option value="1">Republicana</option> </select> </li> <li id="DepEst" class="notranslate rightHalf"> <label class="DatDoc" id="InfDoc" for="InfDoc">Dependencia Estatal</label> <select name="DepEst" id="DepEst" onChange="DepEstOnChange(this)" class="field select medium" tabindex="3"> <option value="0" selected="selected">Sin Dato</option> <option value="1">Entidades Autónomas</option> </select> </li> </ul> /*... Y MUCHOS CAMPOS MAS PARA RELLENAR :Zzz: */ <% String IDDivHist=request.getParameter("DivHis"); if (IDDivHist=="1"){ String DH = "Repúblicana"; String qry="insert into procedencia_documental(ID_DIVHIST, DIVHIST) values('"+IDDivHist+"','"+DH+"')"; st.executeUpdate(qry); out.print("Información Registrada Satisfactoriamente"); %> </body> </html>
P.D.: Gracias por la paciencia de leer mi testamento, jeje