求解:一个使用javabean访问Access数据库的jsp发生的错误
cds1 2006-03-30 12:39:34 用JDBC访问Access数据库,首先创建了stud.mdb,然后在数据库中创建Table1表,表中有三个字段,分别是name,sex,score
配置了ODBC数据源,数据源名称为student
javabean源代码如下,并已编译成class文件放到Tomcat 5.5\webapps\ROOT\WEB-INF\classes\student下:
package student;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection connect = null;
ResultSet rs = null;
public conn() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
}
另有一个访问javabean的jsp文件conn_db.jsp,源码如下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="connDbBean" scope="page" class="student.conn"/>
<html>
<head>
<title>test db connection</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<table width="60%" border="1">
<tr bgcolor="#CCCCFF">
<td width="50%">
<div align="center"><font color="#FF0033"><b>姓名</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>性别</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>分数</b></font></div>
</td>
</tr>
<%
ResultSet RS_result = connDbBean.executeQuery("select * from Table1");
String studentName="";
String studentSex="";
int studentScore=0;
while(RS_result.next())
{
studentName=RS_result.getString("name");
studentSex=RS_result.getString("sex");
studentScore=RS_result.getInt("score");
%>
<tr>
<td width="50%" bgcolor="#FFFFFF">
<div align="center"><%=studentName%></div>
</td>
<td width="25%">
<div align="center"><%=studentSex%></div>
</td>
<td width="25%">
<div align="center"><%=studentScore%></div>
</td>
</tr>
<%
}
RS_result.close();
%>
</table>
</body>
</html>
我的启动文件放在ROOT/myjsp/JSP-08下面
然后我通过以下地址进行访问 http://localhost:8080/myjsp/JSP-08/conn_db.jsp
运行的错误如下:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /myjsp/JSP-08/conn_db.jsp:27
24: String studentName="";
25: String studentSex="";
26: int studentScore=0;
27: while(RS_result.next())
28: {
29: studentName=RS_result.getString("name");
30: studentSex=RS_result.getString("sex");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
org.apache.jsp.myjsp.JSP_002d08.conn_005fdb_jsp._jspService(org.apache.jsp.myjsp.JSP_002d08.conn_005fdb_jsp:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.
--------------------------------------------------------------------------------
不知道为什么,哪里弄错了呢
期待解答
Apache Tomcat/5.5.15