【问题标题】:I cannot connect jsp pages to mysql server我无法将 jsp 页面连接到 mysql 服务器
【发布时间】:2011-08-06 08:23:56
【问题描述】:

我正在使用 tomcat 6.0 这是我的 catalina 家 -> C:\Program Files\Apache Software Foundation\Tomcat 6.0

我正在使用 jdk 1.6 这是我的 JAVA_HOME C:\Program Files\Java\jdk1.6.0_24

我使用的是 Windows 7

好的,我写了一个jsp页面 这是代码 它保存在 -> C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\wow.jsp

<%@ page import="java.sql.*" %>
<%
   String connectionURL = "jdbc:mysql://localhost:3306/unni";
   Connection connection = null;
   Statement statement = null;
   ResultSet rs = null;
   %>



    <%
    Class.forName("com.mysql.Driver").newInstance();
    connection = DriverManager.getConnection(connectionURL, "root", "footyfreak");
    statement = connection.createStatement();
    rs = statement.executeQuery("SELECT * FROM unni");

    while (rs.next()) {
       out.println(rs.getString("player")+"");
    }

    rs.close();
    %>

我下载了连接器并将其复制到:- C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\WEB-INF\lib\mysql-connector-java-5.1.15-bin.jar

还有 C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\mysql-connector-java-5.1.15-bin.jar

然后当我点击 url http://localhost:8080/myapp/wow.jsp

我得到一个错误 -------------->

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /wow.jsp at line 12

9:    
10: 
11:     <%
12:     Class.forName("com.mysql.Driver").newInstance();
13:     connection = DriverManager.getConnection(connectionURL, "root", "footyfreak");
14:     statement = connection.createStatement();
15:     rs = statement.executeQuery("SELECT * FROM unni");


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.Driver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
    org.apache.jsp.wow_jsp._jspService(wow_jsp.java:84)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.ClassNotFoundException: com.mysql.Driver
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    org.apache.jsp.wow_jsp._jspService(wow_jsp.java:68)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.
Apache Tomcat/6.0.32

我的类路径详细信息是

variable : CLASSPATH
value    : C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar ; C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\mysql-connector-java-5.1.15-bin.jar;

帮帮我。我已经坐了好几天了。

我按照文档中的方式进行操作。

除了这里提到的,还有什么可以做的吗?

【问题讨论】:

    标签: java mysql jsp jdbc


    【解决方案1】:

    java.lang.ClassNotFoundException: com.mysql.Driver

    类名错误。是com.mysql.jdbc.Driver

    Class.forName("com.mysql.jdbc.Driver");
    

    顺便说一句,newInstance() 电话是多余的。请注意,将所有代码放在 JSP 文件中是一种不好的做法。该代码通常应该放在您在 servlet 中使用的普通 Java 类中。另请注意,在运行 Tomcat 时,CLASSPATH 环境变量会被完全忽略。

    另见:

    【讨论】:

    • +1,很好找到。我想我需要买一个新的规格...... ;-) 你认为罐子会发生冲突吗? OP 在两个地方添加了相同的 jar。
    • @Harry:我的规格大约在一个月前更新了。对于重复的JAR,如果完全一样不会冲突,但这确实不一定是最佳实践。
    • java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 现在这是我得到的错误:(
    • 关于罐子。我删除了Tomcat 6.0\lib中的那个
    • 它必须在 webapp 的 /WEB-INF/lib 文件夹中。你在使用 IDE 吗?
    【解决方案2】:

    connection = DriverManager.getConnection(connectionURL, "root", "footyfreak"); 在此 connectionURL 语句中,您要提供数据库名称。例子: String st="jdbc:mysql://localhost:3306/staff"; Connection con=null; Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection(st,"root","admin" ); 在本例中,staff 是我的数据库名称。 像这样给出之后,我没有收到那个错误消息。

    【讨论】:

      【解决方案3】:

      不要添加外部jar,而是将jar文件复制到以下位置

      WEB-INF/lib
      

      【讨论】:

        猜你喜欢
        • 2019-05-13
        • 1970-01-01
        • 2015-05-10
        • 2012-11-03
        • 2015-01-21
        • 2021-11-16
        • 2020-07-25
        相关资源
        最近更新 更多