Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2013, 14:35
maacwm
 
Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Almacenar el contenido en una BD por medio de una sesión JSP

Estimados compañeros, he leído bastante material correspondiente a este foro... Me parece fenomenal lo que hacen.
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:
/**
 * @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;
    }
}
2) Otra JavaClass para la validación del usuario:

Código:
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());
        }
    }
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...

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:
<%@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>
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

P.D.: Gracias por la paciencia de leer mi testamento, jeje

Última edición por maacwm; 14/05/2013 a las 15:00