【发布时间】:2011-02-21 04:17:02
【问题描述】:
我一直在尝试获取用于 JDBC 连接到 MySQL 的 Driver 类。 该工作站在 Linux、Fedora 10 上运行。 我已经通过 CLI 手动设置了 Java 的类路径变量,如下所示:
bash-3.2$ echo $CLASSPATH
/home/cmao/public_html/jsp/mysql-connector-java-5.1.12-bin.jar
这表明我已将最新的 mysql 连接 jar 存档添加到我的 CLASSPATH 变量中。
我创建了一个测试 JSP 页面,可以找到 here
这个页面的源代码是:
<%@page language="java"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<html>
<head>
<title>UTS JDBC MySQL connection test page</title>
</head>
<body>
<%
Connection con = null;
out.print("Java version is : " + System.getProperty("java.version") + "<br />");
out.print("Tomcat version is : " + application.getServerInfo() + "<br />");
out.print("Servlet version is: " + application.getMajorVersion() + "<br />");
out.print("JSP version is : " + JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() +"<br />");
//out.print("Java classpath is : " + System.getProperty("java.class.path")+ "<br />");
//out.print("JSP classpath is : " + appliaction.getAttribute("org.apache.catalina.jsp_classpath") + "<br />");
//out.print("Tomcat classpath is : " + System.getProperty("org.apache.tomcat.common.classpath") + "<br />");
try
{
Class c = Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e)
{
out.println("Error! Failed to obtain JDBC driver for MySQL... Missing class \"com.mysql.jdbc.Driver\"<br />");
}
%>
</body>
</html>
那些被注释掉的行都不起作用,会抛出各种 Jsper Expetions。
您可以通过以下链接查看这些错误页面: classpath Error page catalina Error page tomcat Error page
从我对 JSP 和 Servlet 的有限知识看来,Tomcat 环境“忽略”了我的 Java CLASSPATH?在这种情况下,我无法配置 MySQL JDBC 包以让我的 Servlet(一个 JSP 只是一个 Servlet)工作。
我不确定如何解决此问题。如果我使用 Eclipse 或 NetBeans 之类的 IDE 并创建一个真正的 Java“Web 应用程序”,这样一切都可以通过使用 web.config XML 配置文件“自我配置”,会更好吗?这样我就肯定可以绕过这个Tomcat环境限制了?
非常感谢您提前提出的建议。
【问题讨论】:
-
相关:stackoverflow.com/questions/2591505/… Duffymo 做对了。当您考虑将 JAR 放到
/WEB-INF/lib中时,Eclipse/Netbeans 会自动将它放入构建路径中。您无需手动管理它。也就是说,我知道这只是一个测试,但实际上您不应该使用 scriptlets(那些<% %>的东西)在 JSP 文件中编写原始 Java 代码。该代码属于真正的 Java 类;) -
BalusC 也完全正确:JSP 中没有小脚本。如果你没有使用 JSTL,那你就错了。
-
@duffymo :我敢打赌,你们看到学生如何完成 JSP 作业会感到震惊——所有内容都直接写入 JSP。讲座中唯一“教”的东西是一点 JSP,甚至没有 Servlets... JSTL...嗯,我认为讲师自己并不理解常见的标签 :) 我们只是在做“相反的方式”这个uni类:)
-
太糟糕了。了解 JSP 被编译成 servlet 很重要,因此无论您是否知道,您都在编写它们。来自 O'Reilly 的 Hans Bengston 的 JSP 书籍是最好的,因为它从一开始就教授 JSTL。