虽然我已经找到了这个问题的解决方案,但我想知道为什么它会这样工作。
我创建了一个实现 ServletContextListener 的类,并将一个对象设置为上下文属性,该对象旨在构建一个可用于所有应用程序的 java.sql.Connection (MySQL DBMS)。
正如 Java 教程所说,在 JDBC 4.0 发布之后,不再需要调用 Class.forName("...") 来初始化特定的驱动程序。
对于 JavaSE 项目是这样,但对于 Web 应用程序却不是这样。
例如,当我调用 createStatement() 时,Container 会抛出 NullPointerException,因为 java.sql.Connection 不存在。因此,我在 Connection "setter" 之上添加了 Class.forName("...") 并且它完美地工作。
注意:我使用 Netbeans。包含此示例的特定项目已将最新的 mysql-connector-java-5.1.21-bin.jar 设置为其库之一。
谢谢。