servlet en blanco

Antonio
20 de Octubre del 2005
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&iacute;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>



dienadel
20 de Octubre del 2005
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();"


Antonio
20 de Octubre del 2005
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