non riesco a capire perchè se faccio la prima query la servlet non funziona, mentre se faccio la seconda query sì.

Qualcuno può aiutarmi?

Grazie

codice:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Connection;
import java.sql.Statement;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.servlet.*;

//import com.mysql.jdbc.Connection;
//import com.mysql.jdbc.ResultSetMetaData;
//import com.mysql.jdbc.Statement;
@WebServlet("/001jdbc")
public class all extends HttpServlet{
	
	private Connection conn = null;
	private static final String USER = "root";
	private static final String PWD	 = "root";
	private static final String MYSQL= "jdbc:mysql://localhost/";
	
	public void inizio(PrintWriter out){
		out.print("<html><head><title>ciao</title></head><body>");
	}
	public void fine(PrintWriter out){
		out.println("</body></html>");
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response ) throws IOException,ServletException{
		// String query ="SHOW DATABASES;";
		   String query ="Select *from prova.pippo;";
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		db DB = new db();
		
		inizio(out);
		try
		{
			if(conn==null){
				conn = DB.connetti(out,MYSQL,USER,PWD);
			}
			
			ResultSet 			rs 	= DB.select(conn,query);
			ResultSetMetaData	rsmd= rs.getMetaData() ;
			
			out.println(rsmd.getColumnLabel(1)+" "+rsmd.getTableName(1));
			
			out.println("
"+rsmd.getColumnName(1)+" "+"<SELECT name=\"database\">");
			int i=0;
			while(rs.next()){
				out.println("
<option value=\"" +(i++) +"\">"+rs.getString(rsmd.getColumnName(1)));
			}
			out.println("
");
			fine(out);
		}catch(Exception e){
			out.println("eccezione"+e.getMessage()	);
		}finally{
			conn=null;
		}
	}
}

class db{
	private static final String DRIVER_URL   = "org.gjt.mm.mysql.Driver";
	
	public Connection connetti(PrintWriter out,String db, String utente, String pass){
		Connection conn=null;
		try{
		
		/* carico driver e lo istanzio */
		Class.forName(DRIVER_URL).newInstance();
		
		/* connetto root per avere l'elenco dei DB */
		conn = DriverManager.getConnection(db,utente,pass);
		
		/* restitisco la connessione */
		}catch(Exception e){
			e.printStackTrace(out);
		}
		return conn;
	}
	
	public ResultSet select(Connection conn, String query)throws Exception{
		ResultSet rs = null;
		Statement stmt = conn.createStatement();
		rs = stmt.executeQuery(query);
		return rs;
	}
}