jsp代码<%@ page
contentType="text/html;charset=GBK"
import="java.sql.*"
%>
<jsp:useBean id="jb" scope="page" class="bean.JavaBeanJSP"/>
<%!
ResultSet rs;
%>
<html>
<head>
<title>HelloBean</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
<center>
<br><br><br>
<table border="1" borderColorDark="#ffffec" borderColorLight="#5e5e00" cellPadding="1" cellSpacing="0" width=50%>
<tr><th>empno</th><th>ename</th><th>job</th></tr>
<%
try {
rs=jb.getResultSet();
while(rs.next()) {
%>
<tr>
<td><%= rs.getString(1)%></td>
<td><%= rs.getString(2)%></td>
<td><%= rs.getString(3)%></td>
</tr>
<%
}
} catch (SQLException se) {
    se.printStackTrace();
} finally {
try {
if(rs!=null)
rs.close();
} catch(SQLException se) {
se.printStackTrace();
}

%>
</table>
</center>
</body>
</html>
.java 文件package bean;
import java.sql.*;
public class JavaBeanJSP{
private Connection con;
private Statement stmt;
private ResultSet rs;
public ResultSet getResultSet() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection ct = DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from emp");
} catch(SQLException se) {
se.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
return rs;
}
}
部署如下:
webapps
--------JavaBeanTest
--------------------WEB-INF
-------------------------------classes
--------------------------------------bean
------------------------------------------JavaBeanJSP.class
--------------------javabean.jsp
不知道这么以上写法大家适应否
可是浏览器输入http://localhost:8081/JavaBeanTest/javabean.jsp
出现以下悲剧:
HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:498)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)root causejava.lang.NullPointerException
org.apache.jsp.javabean_jsp._jspService(javabean_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)note The full stack trace of the root cause is available in the Apache Tomcat/5.5.33 logs.路过的给点意见,谢谢

解决方案 »

  1.   

    package bean;
    import java.sql.*;
    public class JavaBeanJSP{
        private Connection con;
        private Statement stmt;
        private ResultSet rs;
        public ResultSet getResultSet() {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection ct = DriverManager.getConnection
                ("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
                Statement sm = ct.createStatement();
                ResultSet rs = sm.executeQuery("select * from emp");
            } catch(SQLException se) {
                se.printStackTrace();
            } catch(Exception e) {
                e.printStackTrace();
            }
            return rs;
        }
    }
      

  2.   

    确实 ls正解我再问个问题:
    我在eclipse中如果没有导入外部包classes12,运行时报错找不到类的,但编译时可以生成.class文件的,为何?难道编译时不用导包吗,不导入包 它怎么认识oracle.jdbc.driver.OracleDriver
      

  3.   

    顺便能够说明下 WEB-INF 下用不用建一个lib文件夹,然后放入 class12.jar,为什么要 或者 为什么不要
      

  4.   

    DriverManager.getConnection()在获取连接的时候用的是Driver接口,而不是OracleDriver类所以编译的时候不会出问题
    这个问题你可以在网上搜一下一下WEB-INF 详解,看一下WEB-INF下各文件夹的作用