
Fallo en codigo, ayuda
Publicado por Miguel Angel (1 intervención) el 21/06/2014 18:42:21
Buenas tengo el siguente servlet-formulario:
El cual me muestra todo tal y como quiero, pero creo que no coge los valores bien...
Ese servlet llama al siguiente:
El cual solo muestra el println del principio...
Espero que alguien me pueda echar una mano.
Muchas gracias
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


0