你写 catch 的习惯不好,建议把ex的完整堆栈信息打印出来,类似:} catch(SQLException ex){
  ex.printStackTrace();
  out.println("数据表操作失败");
}

解决方案 »

  1.   

    while(result.next()){
      out.println("<TR>");
      out.println("<Td>"+result.getInt(1)+"</Td>");
      out.println("<Td>"+result.getString(2)+"</Td>");
      out.println("<Td>"+result.getString(3)+"</Td>");
      out.println("</TR>");
      out.println("数据表操作失败");
      }
    这里有问题,ResultSet接口的getString(int)方法的int参数不是指数据表所有字段当中的 第几列,而是数据表当中是String对应的所有String字段当中的第几列,所以getString(3)会出错,因为你只有2列是string的字段,改为while(result.next()){
      out.println("<TR>");
      out.println("<Td>"+result.getInt(1)+"</Td>");
      out.println("<Td>"+result.getString(1)+"</Td>");
      out.println("<Td>"+result.getString(2)+"</Td>");
      out.println("</TR>");
      out.println("数据表操作失败");
      }
    试试
      

  2.   

    发现一个很奇怪的事情:
    while(result.next()){
      out.println("<TR>");
      out.println("<Td>"+result.getInt(1)+"</Td>");
      out.println("<Td>"+result.getString(2)+"</Td>");
      out.println("<Td>"+result.getString(3)+"</Td>");
      out.println("</TR>");
      out.println("数据表操作失败"); // 你为什么要在循环里面输出“数据表操作失败”?!
    }
      

  3.   

    我刚刚居然没发现……while(result.next()){
      out.println("<TR>");
      out.println("<Td>"+result.getInt(1)+"</Td>");
      out.println("<Td>"+result.getString(1)+"</Td>");
      out.println("<Td>"+result.getString(2)+"</Td>");
      out.println("</TR>");
      }
      

  4.   

    修改好了:
             while(result.next()){
                    out.println("<Tr>");
                    out.println("<Td>"+result.getInt(1)+"</Td>");
                    out.println("<Td>"+result.getString(1)+"</Td>");
                    out.println("<Td>"+result.getString(2)+"</Td>");
                    out.println("</Tr>");
               }
    不过还是同样的错误,我就晕了。
      

  5.   


    catch(SQLException ex){
      out.println("数据表操作失败");
      }改为catch(Exception ex){
      out.println("数据表操作失败");
      System.out.println(ex.printStackTrace();
    );
      }然后去tomcat或应用服务器的控制台看看打印的异常信息具体是什么