基本环境已搭建好,用的是mysql-connector-java-5.1.17-bin.jar
<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = null;
String user = null;
String password = null;
try
{
Class.forName("com.myqsl.jdbc.Driver");
url = "jdbc:mysql://localhost:3306/suifeng";
user = "root";
password = "root";
conn = DriverManager.getConnection (url,user,password);
stmt = conn.createStatement();
String query = "select * from user_info";
rs = stmt.executeQuery(query);
%>
<html>
  <head>
  
    
    <title>JSP使用JDBC链接MySQL</title>
  </head>
  
  <body>
    <table border=1 cellpadding=0 cellspacing=0>
    <tr bgcolor=gray>
    <td>FirstName</td>
    <td>LastName</td>
    <td>NickName</td>
    </tr>
<%
while (!rs.isLast())
{
rs.next();
%>
<tr>
<td><%=rs.getString("first_name") %></td>
<td><%=rs.getString("last_name") %></td>
<td><%=rs.getString("nick_naem") %></td>
</tr>
<%
}
}
catch(Exception e)
{
}
finally
{
rs.close();
stmt.close();
conn.close();
}
 %>
 </table>
 
  </body>
</html>
报的错误是:
org.apache.jasper.JasperException: Exception in JSP: /simpleDBAccess.jsp:5956:  }
57:  finally
58:  {
59:  rs.close();
60:  stmt.close();
61:  conn.close();
62:  }
这是什么意思呢?

解决方案 »

  1.   

    rs在进行关闭时得判断一下(rs!=null),个人觉得rs应该是null了,在关闭rs, stmt, conn时还得捕获异常。LZ最好把所有的异常信息都贴出来,那样有助于解决问题
      

  2.   

    好的,因为刚开始接触jsp,所以不是很明白,请多多指教。
    org.apache.jasper.JasperException: Exception in JSP: /simpleDBAccess.jsp:6057:  }
    58:  finally
    59:  {
    60:  rs.close();
    61:  stmt.close();
    62:  conn.close();
    63:  }
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root causejava.lang.NullPointerException
    org.apache.jsp.simpleDBAccess_jsp._jspService(simpleDBAccess_jsp.java:111)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  3.   

    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
    <%
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    String url = null;
    String user = null;
    String password = null;
    // String sql = null;
    try
    {
    Class.forName("com.myqsl.jdbc.Driver");
    url = "jdbc:mysql://localhost:3306/ch01";
    user = "root";
    password = "meishi16";
    conn = DriverManager.getConnection (url,user,password);
    stmt = conn.createStatement();
    String query = "select * from user_info";
    rs = stmt.executeQuery(query);
    %>
    <html>
      <head>
      
        
        <title>JSP使用JDBC链接MySQL</title>
      </head>
      
      <body>
        <table border=1 cellpadding=0 cellspacing=0>
        <tr bgcolor=gray>
        <td>FirstName</td>
        <td>LastName</td>
        <td>NickName</td>
        </tr>
    <%
    while (!rs.isLast())
    {
    rs.next();
    %>
    <tr>
    <td><%=rs.getString("first_name") %></td>
    <td><%=rs.getString("last_name") %></td>
    <td><%=rs.getString("nick_naem") %></td>
    </tr>
    <%
    }
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    finally
    {
    try {
    if (rs != null) {
    rs.close();
    }
    if (stmt != null) {
    stmt.close();
    }
    if (conn != null) {
    conn.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

     %>
     </table>
     
      </body>
    </html>此时,页面空白什么都不显示。是不是表示数据调不出来?
      

  4.   

    tomcat中日志是这样的:
    java.lang.ClassNotFoundException: com.myqsl.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:127)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:65)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.apache.jsp.simpleDBAccess_jsp._jspService(simpleDBAccess_jsp.java:55)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
    at java.lang.Thread.run(Unknown Source)什么意思呢?
      

  5.   

    我已经把mysql-connector-java-5.1.17-bin.jar放在了WEB-INF目录下了啊,没连接上mysql数据库么?
      

  6.   

    连接数据库的jar包没找到 。 你将mysql的jar包放到工程WEB-INF/lib 目录下面
      

  7.   

    不是放到WEB-IN下, 是放到WEB-IN/lib目录下、
      

  8.   

    额,写错了。我是放在WEB-IN/lib目录下的
      

  9.   

    我用Jcreator 写java程序调用数据库,可以成功。
    为什么 用myeclipse写jsp就不行?
    初学,唉~
      

  10.   

    "com.myqsl.jdbc.Driver" 写错了。