Java 配置Tomcat,以便将JSP页面连接到MySQL

Java 配置Tomcat,以便将JSP页面连接到MySQL,java,mysql,jsp,jdbc,Java,Mysql,Jsp,Jdbc,我需要使用DriverManager.getConnection()方法从JSP页面连接到MySQL数据库。我已经将MySQL连接器-J JAR文件放在Tomcat库中。我已经运行了与普通Java应用程序相同的代码,并且可以正常工作,这让我觉得Tomcat存在问题。我遇到了很多异常,第一个是ClassNotFoundException,接下来是许多jaspereexception 您能告诉我在配置servlet以从JSP页面与MySQL交互时需要遵循的步骤吗 更新:我已尝试将Tomcat安装根

我需要使用
DriverManager.getConnection()
方法从JSP页面连接到MySQL数据库。我已经将MySQL连接器-J JAR文件放在Tomcat库中。我已经运行了与普通Java应用程序相同的代码,并且可以正常工作,这让我觉得Tomcat存在问题。我遇到了很多异常,第一个是
ClassNotFoundException
,接下来是许多
jaspereexception

您能告诉我在配置servlet以从JSP页面与MySQL交互时需要遵循的步骤吗


更新:我已尝试将Tomcat安装根目录的lib文件夹以及
/WEB-INF/lib
,但问题仍然存在。jar文件名为
mysql-connector-java-5.1.13-bin.jar
。是这个吗

这是我得到的一个例外

java.lang.ClassNotFoundException: com.mysql.jdbc.driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:75)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

假设
ClassNotFoundException
引用的是JDBC驱动程序
com.mysql.JDBC.driver
,那么这意味着Connector-jjar文件没有正确地放置在类路径中

事实上,将它放在Tomcat的
/lib
文件夹中应该可以解决这个问题。然而,既然您似乎已经这样做了,那么这只能意味着要么您根本没有将正确的JAR文件放在那里,要么您所说的
/lib
文件夹实际上是错误的文件夹。对于Tomcat 6.0或更新版本,它应该是Tomcat安装文件夹中的
/lib
文件夹(它应该已经存在,您不应该自己创建!)。对于Tomcat 5.5或更早版本,它应该是Tomcat安装文件夹中的
/shared/lib
文件夹(同样,它应该已经存在)

另一种方法是将JAR文件放在WEB应用程序的
/WEB-INF/lib
文件夹中。唯一的缺点是JAR文件将只在所使用的webapp的类路径中结束。对于同一servletcontainer中的所有其他WebApp,必须复制JAR文件。此外,您将无法利用Tomcat提供的连接池功能来提高连接性能


更新:根据您的stacktrace:


类名是错误的。Java区分大小写。它应该是
com.mysql.jdbc.Driver

假设
ClassNotFoundException
引用的是jdbc驱动程序
com.mysql.jdbc.Driver
,那么这意味着Connector-jjar文件没有正确地放置在类路径中

事实上,将它放在Tomcat的
/lib
文件夹中应该可以解决这个问题。然而,既然您似乎已经这样做了,那么这只能意味着要么您根本没有将正确的JAR文件放在那里,要么您所说的
/lib
文件夹实际上是错误的文件夹。对于Tomcat 6.0或更新版本,它应该是Tomcat安装文件夹中的
/lib
文件夹(它应该已经存在,您不应该自己创建!)。对于Tomcat 5.5或更早版本,它应该是Tomcat安装文件夹中的
/shared/lib
文件夹(同样,它应该已经存在)

另一种方法是将JAR文件放在WEB应用程序的
/WEB-INF/lib
文件夹中。唯一的缺点是JAR文件将只在所使用的webapp的类路径中结束。对于同一servletcontainer中的所有其他WebApp,必须复制JAR文件。此外,您将无法利用Tomcat提供的连接池功能来提高连接性能


更新:根据您的stacktrace:


类名是错误的。Java区分大小写。应该是
com.mysql.jdbc.Driver

哪个代码?我没有看到任何;)那么,找不到哪个类?i、 例如,显示完整的堆栈跟踪,以及发生这种情况的相关代码。还显示获取连接的代码(仅显示DriverManager.getConnection()是不够的),因为您有多个用户帐户。请返回您发布此问题的PC/webbrowser。然后使用OpenID注册您的帐户,然后您就可以从其他每台PC/webbrowser登录相同的帐户,还可以编辑/评论您自己的问题。哪种代码?我没有看到任何;)那么,找不到哪个类?i、 例如,显示完整的堆栈跟踪,以及发生这种情况的相关代码。还显示获取连接的代码(仅显示DriverManager.getConnection()是不够的),因为您有多个用户帐户。请返回您发布此问题的PC/webbrowser。然后使用OpenID注册您的帐户,然后您就可以从其他每台PC/webbrowser登录相同的帐户,还可以编辑/评论您自己的问题。
java.lang.ClassNotFoundException: com.mysql.jdbc.driver