尝试了一切,但无法解决问题。我使用Windows 8企业版(如果这与问题有关)
我在d:中安装了oracle,在c:上安装了tomcat服务器。我将jar文件ojdbc6.jar从oracle的lib目录复制到了tomcat的lib目录。然后,我在环境变量(系统变量)中创建了一个类路径,其值为"C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib\ojdbc6.jar"
。
我的程序在记事本(.jsp文件)中如下所示:
<%@ page import="java.sql.*" %>
<html>
<body>
<%
Connection conn;
Statement st; ResultSet rs;
new oracle.jdbc.OracleDriver();
String dbURL="jdbc:odbc:oracle:thin:@localhost:1521:XE";
String userId="system";
String pwd="moon";
conn=DriverManager.getConnection(dbURL,userId,pwd);
st=conn.createStatement();
rs= st.executeQuery("SELECT * FROM login");
while(rs.next())
{
System.out.println(rs.getString(1)+""+rs.getString(2));
}
%>
</body>
</html>
我检查了我所有的服务是否都在运行oracle和tomcat服务器。''
编辑
根据钱达的评论,错误是:
HTTP状态500-在第14行处理JSP页面/page2.jsp时发生异常。第14行是conn = DriverManager.getConnection(dbURL,userId,pwd)
java.lang.ClassNotFoundException:org.apache.jsp.new_jsp服务器遇到内部错误,导致服务器无法满足此请求。
我不建议您这样做。Scriptlet代码和数据库调用不属于JSP。这是一个更长的讨论。
但是直接的问题是您的连接URL不正确:
String dbURL="jdbc:odbc:oracle:thin:@localhost:1521:XE";
应该
String dbURL="jdbc:oracle:thin:@localhost:1521:XE"
Tomcat将忽略所有系统环境变量。我建议您永远不要那样设置CLASSPATH。
正确的做法是将ojdbc6.jar放入Tomcat服务器的/ lib文件夹中。
在您的Web应用程序的WEB-INF / lib中添加其他第三方JAR。
Connection conn;
Statement st;
ResultSet rs;
String dbURL="jdbc:odbc:oracle:thin:@localhost:1521:XE";
String userId="system";
String pwd="moon";
try {
Class.forName("oracle.jdbc.OracleDriver");
conn=DriverManager.getConnection(dbURL,userId,pwd);
st=conn.createStatement();
rs= st.executeQuery("SELECT * FROM login");
while(rs.next()) {
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DatabaseUtils.close(rs); // implement static methods to do this.
DatabaseUtils.close(st);
DatabaseUtils.close(conn);
}
我建议这样的事情:
public class DatabaseUtils {
public static void close(Connection c) {
try {
if (c != null) {
c.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// I'll leave the others for you.
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句