Servlets - Duda Servlet Java-MySQl

 
Vista:
sin imagen de perfil

Duda Servlet Java-MySQl

Publicado por Miguel Angel (1 intervención) el 21/06/2014 18:41:17
Buenas tengo el siguente servlet-formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
 
public class Formulario extends HttpServlet {
 
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
    IOException {
        res.setContentType("html");
        PrintWriter out = res.getWriter();
        boolean flag = false;
        out.println("<html>");
        out.println("<head><title>Vista General de la Base de Datos</title><style>table{table-layout:fixed;font-family:'Trebuchet MS', Arial, Helvetica, sans-serif;width:100%;border-collapse:collapse;}table td, table th {font-size:1.2em;border:1px solid #98bf21;padding:3px 7px 2px 7px;}table th {font-size:1.4em;text-align:left;padding-top:5px;padding-bottom:4px;}</style></head>");
        out.println("<body>");
        out.println("<h1>Vista General de la Base de Datos</h1>");
 
 
 
      try{
            System.out.println("Intentando cargar el conector...");
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Conectando a la base...");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Biblioteca", "root", "");
            System.out.println("Conexion a BD establecida");
            Statement st,st1,st2;
            st = con.createStatement();
            st1 = con.createStatement();
            st2 = con.createStatement();
            String Autor = "SELECT Nombre FROM Autores ORDER BY Nombre" ;
            String Tema = "SELECT Tema FROM Temas ORDER BY Tema" ;
            String Editorial = "SELECT Nombre FROM Editoriales GROUP BY Nombre ORDER BY Nombre" ;
            ResultSet rs,rs1,rs2 ;
 
         rs =st.executeQuery(Autor);
 
 
        out.println("<h3>Busqueda Avanzada</h3>");
 
        out.println("<FORM ACTION=\"http://localhost:8080/Filtro\" METHOD=\"POST\"  enctype=\"multipart/form-data\">");
 
        out.println("<fieldset>");
        out.println("<legend>Filtro</legend>");
 
        out.println("<label>Autor</label> <br/>");
        out.println("<select size=\"1\" name=\"autor\" style=\" width:150px\">");
        while(rs.next()) {
         if (flag==true){
 
            out.println("<OPTION VALUE="+rs.getString("Nombre")+">"+rs.getString("Nombre")); }
           else{
        out.println("<OPTION VALUE=\"\">- Autor -</option>");
        out.println("<OPTION VALUE="+rs.getString("Nombre")+">"+rs.getString("Nombre"));
         flag=true;
            }
 
        }
         flag=false;
        out.println("</SELECT>");
 
 
        rs1 =st1.executeQuery(Tema);
 
        out.println("<br/><br/>");
        out.println("<label>Temas</label> <br/>");
        out.println("<select size=\"1\" name=\"tema\" style=\" width:150px\">");
        while(rs1.next()) {
            if (flag==true){
 
            out.println("<OPTION VALUE="+rs1.getString("Tema")+">"+rs1.getString("Tema"));
            }
        else{
         out.println("<OPTION VALUE=\"\">- Tema -</option>");
         out.println("<OPTION VALUE="+rs1.getString("Tema")+">"+rs1.getString("Tema"));
         flag=true;
            }
        }
         flag=false;
         out.println("</SELECT>");
 
        rs2 =st2.executeQuery(Editorial);
        out.println("<br/><br/>");
        out.println("<label>Editoriales</label> <br/>");
        out.println("<select size=\"1\" name=\"editorial\" style=\" width:150px\">");
        while(rs2.next()) {
          if (flag==true){
 
            out.println("<OPTION VALUE="+rs2.getString("Nombre")+">"+rs2.getString("Nombre"));
           }
           else{
         out.println("<OPTION VALUE=\"\">- Editorial -</option>");
         out.println("<OPTION VALUE="+rs2.getString("Nombre")+">"+rs2.getString("Nombre"));
         flag=true;
               }
        }
        flag=false;
        out.println("</SELECT>");
        out.println("</fieldset>");
        out.println("<br>");
        out.println("<INPUT TYPE=\"submit\"></FORM>");
 
 
 
        out.println("</body>");
        out.println("</html>");
        out.close();
        con.close();
        st.close();
        rs.close();
        st1.close();
        rs1.close();
        st2.close();
        rs2.close();
 
        } catch(SQLException ex) {
            System.out.println("Error de mysql");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch(Exception e) {
            System.out.println("Se produjo un error inesperado: "+e.getMessage());
        }
 
 
 
    }
}



El cual me muestra todo tal y como quiero, pero creo que no coge los valores bien...
Ese servlet llama al siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class Filtro extends HttpServlet {
 
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException,
    IOException {
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
 
        out.println("<html>");
        out.println("<head><title>Libros Ordenados por Referencia</title><style>table{table-layout:fixed;font-family:'Trebuchet MS', Arial, Helvetica, sans-serif;width:100%;border-collapse:collapse;}table td, table th {font-size:1.2em;border:1px solid #98bf21;padding:3px 7px 2px 7px;}table th {font-size:1.4em;text-align:left;padding-top:5px;padding-bottom:4px;}</style></head>");
        out.println("<body>");
        out.println("<h1>Libros Ordenados por Referencia</h1>");
 
        try{
            String Autor = req.getParameter("autor");
            String Tema = req.getParameter("tema");
            String Editorial = req.getParameter("editorial");
            String Busqueda = "SELECT * FROM biblio Where ";
 
 
 
 
            System.out.println("Intentando cargar el conector...");
            Class.forName("com.mysql.jdbc.Driver");
 
 
            System.out.println("Conectando a la base...");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/biblioteca", "root","");
            System.out.println("Conexion a BD establecida");
 
            Statement st = con.createStatement();
 
            if(!Autor.equals(""))
                Busqueda = Busqueda + "Autor LIKE '%"+Autor+"%'";
 
            if(Autor.equals("") && !Tema.equals(""))
                Busqueda = Busqueda + "Tema LIKE '%"+Tema+"%'";
            else if(!Autor.equals("") && !Tema.equals(""))
                Busqueda = Busqueda + " AND Tema LIKE '%"+Tema+"%'";
 
            if(Autor.equals("") && Tema.equals("") && !Editorial.equals(""))
                Busqueda = Busqueda + "Editorial LIKE '%"+Editorial+"%'";
            else if((!Autor.equals("") || !Tema.equals("")) && !Editorial.equals(""))
                Busqueda = Busqueda + " AND Editorial LIKE '%"+Editorial+"%'";
 
            if(Autor.equals("") && Tema.equals("") && Editorial.equals(""))
                Busqueda = "SELECT * FROM biblio";
 
 
            ResultSet rs = st.executeQuery(Busqueda);
            out.println("<table width='100%'><tr><td>idLibro</td><td>Titulo</td><td>Autor</td><td>Editorial</td><td>Tema</td><td>Fecha Publicacion</td><td>Disponibilidad</td></tr><tr>");
 
             while(rs.next()){
            out.println("<TR>");
            out.println("<TD>"+rs.getInt(1)+"</TD>");
            out.println("<TD>"+rs.getString(2)+"</TD>");
            out.println("<TD>"+rs.getString(3)+"</TD>");
            out.println("<TD>"+rs.getString(4)+"</TD>");
            out.println("<TD>"+rs.getString(5)+"</TD>");
            out.println("<TD>"+rs.getString(6)+"</TD>");
            out.println("<TD>"+rs.getInt(7)+"</TD>");
            out.println("</TR>");
         }
        con.close();
        st.close();
        } catch(SQLException ex) {
            System.out.println("Error de mysql");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch(Exception e) {
            System.out.println("Se produjo un error inesperado: "+e.getMessage());
        }
 
        out.println("</body>");
        out.println("</html>");
    }
}

El cual solo muestra el println del principio...

Espero que alguien me pueda echar una mano.
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder