1、你单步调试看看,看看是数据库连接没有取到还是访问表的时候发生错误。
2、<form action="controller" 这里的controller是在web.xml中定义的,可以是任意名称,只要它和Controller这个Servlet对应。你可以看看web.xml中的内容

解决方案 »

  1.   

    显示是communication link failure:java.io.Exception
    请问这是什么错误呢!
      

  2.   

    Class.forName("com.mysql.jdbc.Driver").newInstance(); //这条语句有Execption需要捕捉 
    String url="jdbc:mysql://localhost/myweb?user="+user+"&password="+password+"&useUnicode=true&characterEncoding=8859_1"; 
     
    conn= DriverManager.getConnection(url); // 这条也是. 
    conn.setAutoCommit(true);
    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //这条也是
    String sql="select * from userinfor";
    ResultSet rs=stmt.executeQuery(sql); //这条也是.你不用try{ }
    catch(Exception e){ }
    来不错这些异常,肯定会报错的.
      

  3.   

    conn= DriverManager.getConnection(url); 
    在这地方就报错了?你的JDBC驱动有么?下面是驱动和连接方式,你换成下面的试试1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar
    Class.forName( "org.gjt.mm.mysql.Driver" );
    cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
      

  4.   

    我的新的程序:
    <%@ page language="java" import="java.sql.*,java.io.*,java.util.*"%>
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%
    String user="caojinli"; 
    String password="caojinli";
    ResultSet rs=null;
    Connection conn=null;
    Statement stmt=null; try{Class.forName("com.mysql.jdbc.Driver").newInstance(); }catch(java.lang.ClassNotFoundException e){ System.err.println("Driver Error:"+e.getMessage());}
    String strconn="jdbc:mysql://localhost:8080/myweb?user="+user+"&password="+password+"&useUnicode=true&characterEncoding=8859_1"; 
    try{ 
    conn= DriverManager.getConnection(strconn); 
    conn.setAutoCommit(true);
    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);}catch(Exception e){System.err.println("数据库连接错误:"+e.getMessage());} 
    try{
    String sql="select * from userinfor";
    rs=stmt.executeQuery(sql); }catch(SQLException e){System.err.println("数据库查询错误:"+e.getMessage());}
    while(rs.next())

    String id=rs.getString("username");
    String name=rs.getString("password");
    String phone=rs.getString("phone");

    out.println(id+" "+name+""+" "+phone+"<br>");
    }
    //out.println("成功!"); 
    try{stmt.close(); 
    conn.close(); }catch(Exception e){}
    %>
    </body>
    </htmL>
    结果是报错:communication link failure:java.io.Exception
    我的mysql-connector-java-2.0.14-bin.jar也放到了WEB-INF/lib下面了!
      

  5.   

    也许是你的JDBC驱动有问题,去MySQL(http://www.mysql.com)下载驱动 mm.mysql-2.0.2-bin.jar,然后把它Copy到WEB-INF\lib下,再修改你的程序,把连接字符串和classname换成下面的这样
    Class.forName( "org.gjt.mm.mysql.Driver" );
    cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
      

  6.   

    你的异常没有捕捉玩。
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    还需要捕捉 InstantiationException 和 IllegalAccessException。
      

  7.   

    还有 
    String strconn="jdbc:mysql://localhost:8080/myweb? user="+user+"&password="+password+"&useUnicode=true&characterEncoding=8859_1"; // mysql使用了8080端口?你tomcat用什么端口?
      

  8.   

    数据库连接有他自己的端口的,你是不是搞错了,不过
    mysql我没有用过
      

  9.   

    还有 
    String strconn="jdbc:mysql://localhost:8080/myweb? user="+user+"&password="+password+"&useUnicode=true&characterEncoding=8859_1"; // mysql使用了8080端口?你tomcat用什么端口?
    //mysql用的是3306吧
      

  10.   

    我改成了3306结果报错:“Access denied for user: 'caojinli@localhost' (Using password: YES)”!!!
    假如我改成了8080结果报错:“communication link failure:java.io.Exception”!
    晕了!
      

  11.   

    你的mysql用的是3306端口,
    “Access denied for user: 'caojinli@localhost' (Using password: YES)”
    你的用户名密码错误。你给mysql配置了caojinli用户密码是caojingli了吗?
      

  12.   

    2.我的jsp与servlet通信的问题!工具是是jbuilder9,用一个servlet来处理jsp,我的servlet的类名是:Controller,但是我在jsp页面里的<form action="controller" method="post">为什么我不能把它改成Controller呢?处理这个页面的明明是一个Controller(大写)啊!答:这是由你程序的web.xml文件决定的,在action中,必须写<mapping></mapping> 中间的字符串才行,否则,容器着不到你的servlet