jsp+bean+access数据库,访问时出现错误,详细的情况请进来看看,望不吝赐教。
我一共有两个文件,jsp.java,实现了bean,代码如下:
package db;
import java.sql.*;
public class sql
{
String DBdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String connStr="jdbc:odbc:guestbook";
Connection conn=null;
ResultSet rs=null;
public sql()
{
try
{
Class.forName(DBdriver);
}
catch(ClassNotFoundException e)
{
System.out.println("sql():"+e.getMessage());
}
}
public void executeInsert(String sql)
{
try
{
conn=DriverManager.getConnection(connStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.out.println("sql.excuteUpdate:"+ex.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs=null;
try
{
conn=DriverManager.getConnection(connStr);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
public void executeDelete(String sql)
{
try
{
conn=DriverManager.getConnection(connStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.out.println("sql.excuteDelete:"+ex.getMessage());
}
}
}
我的show.jsp的代码如下:
<html>
<head>
<title>追风驿站</title>
</head>
<body>
<%@ page language="java" import="java.sql.*"%>
<%@ page contentType="text/html; charset=gb2312" %>
<jsp:useBean id="sqlbean" class="db.sql" scope="session"/>
<center>
<font size="+5">追风驿站</font>
<%!
String name,url,email,sql,body;%>
<%
ResultSet RS=sqlbean.executeQuery("SELECT * FROM guestbook");
int i=0;
while(RS.next())
{
i++;
name=RS.getString(1);
email=RS.getString(2);
url=RS.getString(3);
body=RS.getString(4);
%>
<table width="80%" border="2" cellpadding="0" cellspacing="2" bordercolor="#3399CC">
<tr>
<td width="100">呢称:</td>
<td><%=name%></td>
</tr>
<tr>
<td>电子邮件:</td>
<td><a href="mailto:<%=email%>"><%=email%></a></td>
</tr>
<tr>
<td>个人主页:</td>
<td><a href="<%=url%>"><%=url%></a></td>
</tr>
<tr>
<td>留言:</td>
<td><%=body%></td>
</tr>
<tr>
<td>时间:</td>
<td><%=RS.getString(5)%></td>
</tr>
</table>
<hr color="#CC99FF" width="80%">
<%
}
RS.close();
%>
共有<%=i%>条记录
</center>
</body>
</html>
我把jsp.class放在了webapps/root/web-inf/classes/db下了,而show.jsp放在webapps/root下面,执行
http://localhost:8080/show.jsp出现了如下的错误:
Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
org.apache.jsp.show_jsp._jspService(show_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.
--------------------------------------------------------------------------------
谁能帮忙看看是什么原因啊?我的系统配置应该没有问题,能够正确运行一个简单的jsp+bean的程序,而且能够在jsp中查询sqlserver 2000中的数据,就是下面这段代码我是能够正确运行的,
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EBookStore";
//EBookStore作为你的数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="select * from AuthorList";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
那位达人不吝次教,在下感激不尽,这个问题已经困扰我好长时间了,谢谢啊。