Pueba a usar un ResultSetMetaData junto a tu resulset, de esta forma puedes contra cuantos campos tiene tu tabla, mostrar sus nombres, y posteriormente sus valores, aqui te dejo un ejmplo de como podrias usarlo
Código PHP:
//se asume que la conexion JDBC ya se establecio, y el flujo esta guardado
//la variable conexion
Statement stm = conexion.getStatement();
//se arma un SQL para consulta
String sql = "SELECT * FROM alguna_tabla";
//se ejecuta la consulta y posteriormente se obtiene su metadata
ResultSet rs = stm.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
//obetenemos el numero de columnas que tiene la tabla que consultamos
int numColum = rsmd.getColumnCount();
//se arma la tabla dinamica
out.println("<table border=\"1\">" +
"<tr>" +
//se muestran las cabeceras de la tabla dinamicamente
for(int i = 0; i < numColum; i++) {
out.print("<td>" + rsmd.getColumnName(i) + "</td>");
}
out.println("</tr>");
//ahora se muestran los valores dinamicamente en la tabla
while(rs.next()) {
for(int i = 0; i < numColum; i++) {
out.print("<td>" + rs.getString(i) + "</td>");
}
}
Espero te aya servido
Saludos