servlet en blanco
Saludos, mi problema es el siguiente. Tengo un formulario httml desde el que llamo a un servlet. Este servlet conecta con la BBDD y quiero que genere una p谩gina con datos recogidos de una consulta.
La historia es que cuando llamo al servlet desde el formulario, el navegador me devuelve una p谩gina en blanco.
El contenedor es un Tomcat y lo he configurado de tal manera que el servlet esta dentro de la carpeta WEB-INF/classes y en el /lib tengo el servlet-api.jar y el mysq-connector...jar.
Os dejo el c贸digo y a ver si me pod茅is hechar una manilla. Gracias de antemano
Pablo
* En el descriptor de despliegue tengo estas l铆neas:
<servlet>
<servlet-name>a</servlet-name>
<servlet-class>a</servlet-class>
</servlet>
----------------------------------------
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/servlet/a</url-pattern>
</servlet-mapping>
-----------------------------------------
-----------------------------------------
* C贸digo del servlet:
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class a extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
PrintWriter pagina;
pagina =response.getWriter();
response.setContentType("text/html");
pagina.println("<HTML>");
Connection conn = null;
ResultSet rs= null;
Statement stmt=null;
try{
String bd = "test";
String url = "jdbc:mysql://localhost/"+bd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,"root","n0future");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch(Exception e){};
try{
rs = stmt.executeQuery("SELECT * FROM prueba");
pagina.println("<TABLE Border=10>");
while(rs.next()) {
pagina.println("<TR>");
pagina.println("<TD>"+rs.getString("a")+"</TD>");
pagina.println("<TD>"+rs.getString("b")+"</TD>");
pagina.println("<TD>"+rs.getString("c")+"</TD>");
pagina.println("</TR>"); };
pagina.println("</TABLE>");
rs.close();
}catch(Exception e) {};
try {conn.close();} catch(Exception e) {};
pagina.println("</HTML>");
pagina.close();
};
public void destroy(){super.destroy();};
}
----------------------------------------
--------------------------------------
* C贸digo del html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<HTML>
<FORM ACTION=http://localhost/Miweb/servlet/a METHOD=post>
<INPUT TYPE=submit VALUE=consultar>
</FORM></HTML>
</body>
</html>
La historia es que cuando llamo al servlet desde el formulario, el navegador me devuelve una p谩gina en blanco.
El contenedor es un Tomcat y lo he configurado de tal manera que el servlet esta dentro de la carpeta WEB-INF/classes y en el /lib tengo el servlet-api.jar y el mysq-connector...jar.
Os dejo el c贸digo y a ver si me pod茅is hechar una manilla. Gracias de antemano
Pablo
* En el descriptor de despliegue tengo estas l铆neas:
<servlet>
<servlet-name>a</servlet-name>
<servlet-class>a</servlet-class>
</servlet>
----------------------------------------
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/servlet/a</url-pattern>
</servlet-mapping>
-----------------------------------------
-----------------------------------------
* C贸digo del servlet:
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class a extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
PrintWriter pagina;
pagina =response.getWriter();
response.setContentType("text/html");
pagina.println("<HTML>");
Connection conn = null;
ResultSet rs= null;
Statement stmt=null;
try{
String bd = "test";
String url = "jdbc:mysql://localhost/"+bd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,"root","n0future");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch(Exception e){};
try{
rs = stmt.executeQuery("SELECT * FROM prueba");
pagina.println("<TABLE Border=10>");
while(rs.next()) {
pagina.println("<TR>");
pagina.println("<TD>"+rs.getString("a")+"</TD>");
pagina.println("<TD>"+rs.getString("b")+"</TD>");
pagina.println("<TD>"+rs.getString("c")+"</TD>");
pagina.println("</TR>"); };
pagina.println("</TABLE>");
rs.close();
}catch(Exception e) {};
try {conn.close();} catch(Exception e) {};
pagina.println("</HTML>");
pagina.close();
};
public void destroy(){super.destroy();};
}
----------------------------------------
--------------------------------------
* C贸digo del html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<HTML>
<FORM ACTION=http://localhost/Miweb/servlet/a METHOD=post>
<INPUT TYPE=submit VALUE=consultar>
</FORM></HTML>
</body>
</html>
Tomcat tiene por defecto configurado el puerto 8080, has cambiado el puerto por defecto para que escuche por el 80 (http) ???
Otra posibilidad es que realizes un "flush" antes de cerrar el printWriter, es decir "pagina.flush();" antes de "pagina.close();"
Otra posibilidad es que realizes un "flush" antes de cerrar el printWriter, es decir "pagina.flush();" antes de "pagina.close();"
Nada de nada. El tomcat esta escuchando en el 80. He puesto el flush y nada. Como principiante que soy se me hab铆a olvidad capturar los mensajes de error. Tras hacerlo me dice que el error est谩 en el driver de conexi贸n. Exactamente:
Exception caught: com.mysql.jdbc.Driver
Si alguien sabe donde puede estar el fallo se lo agradecer铆a. El servidor de mysql esta levantado y la configuraci贸n de tomcat creo qye es la correccta.
Gracias de antemano
Exception caught: com.mysql.jdbc.Driver
Si alguien sabe donde puede estar el fallo se lo agradecer铆a. El servidor de mysql esta levantado y la configuraci贸n de tomcat creo qye es la correccta.
Gracias de antemano
