我有一个简短的jsp页面,试图建立与名为'test'的mySQL数据库的连接。我试图在Tomcat中正确部署它但没有成功。所有其他jsp页面都运行良好。此页面在执行时出错。我还是个学生&我正在尝试这个。我已经有了mysql-connector-java-5.1.16-bin.jar&我试着把它放到我用Google搜索这个问题时找到的答案中。 jsp页面包含;
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
Connection con = null;
try
{
String connectionURL = "jdbc:mysql://localhost:3306/test";
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(connectionURL);
}
catch(SQLException ex)
{
throw new ServletException("Servlet could not display records.",ex);
}
catch(ClassNotFoundException ex)
{
throw new ServletException("JDBC Driver not found",ex);
}
错误是;
org.apache.jasper.JasperException: An exception occurred processing JSP page /access_exp_two.jsp at line 72
69: {
70: String connectionURL = "jdbc:mysql://localhost:3306/test";
71:
72: Class.forName("com.mysql.jdbc.Driver").newInstance();
73: con = DriverManager.getConnection(connectionURL);
74:
75: }
.....
root cause
javax.servlet.ServletException: JDBC Driver not found
.....
root cause
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
.....
我认为发生这种错误是因为我没有正确地在Tomcat中部署所有内容。如果有人能够清楚地说明如何在web.xml文件中声明资源,修改context.xml文件,那将是一个巨大的帮助(更多我不太清楚每个人都引用哪个context.xml文件,因为它不同在每个答案中)。这可能是一个不合适的问题,但请至少以正确的方式指出我。非常感谢,提前。
答案 0 :(得分:2)
尝试将它放在我用Google搜索此问题时找到的答案中的位置。
其中是webapp的/WEB-INF/lib
文件夹吗?它应放在这种特殊情况下,您可以在JSP中直接加载驱动程序。
更多我不太清楚每个人都引用哪个context.xml文件,因为每个答案都不同
仅适用于使用由servletcontainer管理的connection pooled datasource的情况。但是您手动加载驱动程序并使用DriverManager#getConnection()
方法而不是DataSource#getConnection()
,因此context.xml
与您无关。但是,建议采用这种方法。连接池极大地提高了getConnection()
性能,Java代码doesn't属于JSP文件。