我的问题是:
输入 http://localhost:8080/use/userTest.jsp时,出现下面的情况
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /userTest.jsp at line 129: <jsp:useBean id = "db" scope="application" class="Stella.doSelect"/>
10: <%
11:  String id = "34";
12:  user u = db.use(id);13: %>
14: <%= u.getFirstName()%>
15: <%= u.getLastName()%>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
DataBase.DataBaseConn.executeQuery(DataBaseConn.java:14)
Stella.doSelect.use(doSelect.java:17)
org.apache.jsp.userTest_jsp._jspService(userTest_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.他说的错的那以行,我不知道为什么错?
我的java程序为
user.java
package Stella;public class user 
{
private String userID;
private String firstName;
private String lastName;
private int Age;
private String Address;

public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}


}
doSelect.javapackage Stella;import java.sql.ResultSet;
import java.sql.SQLException;import DataBase.DataBaseConn;
import DataBase.MySQLConn;public class doSelect
{
DataBaseConn db = new MySQLConn();
public user use(String ID)
{
user u = new user();

String sql = "select * from information where userID = "+ID;
ResultSet rs = db.executeQuery(sql);

try {
while(rs.next() && rs != null)
{
u.setFirstName(rs.getString(2));
u.setLastName(rs.getString(3));

}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return u;

}
}
连接数据库的java程序package DataBase;import java.sql.*;public abstract class DataBaseConn 
{
Statement stmt = null;

public ResultSet executeQuery(String sql)
{
ResultSet rs = null;
try
{
rs = stmt.executeQuery(sql);
}
catch (SQLException e)
{
e.getStackTrace();
}
return rs;
}
public int excuteUpdate(String sql)
{
int result = 0;
try
{
result = stmt.executeUpdate(sql);
}
catch (SQLException e)
{
e.getStackTrace();
}
return result;
}
}
package DataBase;
import java.sql.*;
public class MySQLConn extends DataBaseConn 
{
Connection conn;
public MySQLConn()
{
// 驱动程序名
// URL指向要访问的数据库名project
// MySQL配置时的用户名"stella"
    // MySQL配置时的密码"15858299168"

        String driver = "com.mysql.jdbc.Driver"; 
        String url = "jdbc:mysql://localhost/Stella";
        String user = "root";
        String password = "639168"; 
        String url1 = url+ "?user="+ user + "&password=" + password;
        try 
        { 
         // 加载驱动程序
Class.forName(driver);          // 连续数据库
        conn = DriverManager.getConnection(url1); 
         stmt = conn.createStatement ();
        }
        catch (SQLException e1)
        {
         e1.getStackTrace();
        }
        catch (ClassNotFoundException e) 
        {
// TODO Auto-generated catch block
e.printStackTrace();

}

}
我的userTest.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="Stella.*"%><html>
<head>
<title>名字信息</title>
</head><body>
<jsp:useBean id = "db" scope="application" class="Stella.doSelect"/>
<%
String id = "34";
user u = db.use(id);
%>
<%= u.getFirstName()%>
<%= u.getLastName()%>
</body></html>
我用类
package Stella;public class MainTest {
public static void main(String[] args) 
{
doSelect select = new doSelect();
String id = "34";
user u = select.use(id);

System.out.println("Name:"+u.getFirstName()+u.getLastName()); }}
测试过,结果为 
Name:Zhangxiaoxiao我的文件的存放路径为:
user.class: use/WEB-INF/classes/Stella
doSelect.class: use/WEB-INF/classes/Stella
MySQLConn.class: use/WEB-INF/classes/DataBase
DataBaseConn.class: use/WEB-INF/classes/DataBase
userTest.jsp:  use下我不知道这个是什么问题,希望大家帮帮我~
谢谢

解决方案 »

  1.   

    写法有问题,分开写就是对的<% 
     String id = "34" %><%=db.use(id) %>,呵呵,对了的话记得给分啊
      

  2.   

    <% String id = "34" %>
    错了
    要这样写:<% String id = "34"; %>
    可是还是错?
    一样的错误??
    不知道哪里有问题了诶
      

  3.   

    java.lang.NullPointerException
    DataBase.DataBaseConn.executeQuery(DataBaseConn.java:14) 
    说明这个类14行有问题,你打印判断一下
      

  4.   

    抱歉,我比较愚钝。。
    我问下:我写了个java测试程序试过了,是可以操作成功的,是不是就说明java类已经都没有问题了?
    这个要不要写web.xml配置文件的?
      

  5.   

    Stella.doSelect.use(doSelect.java:17) 
    检查你的DoSelect类文件的第17行
      

  6.   

    我发现你的jsp里既有动作标签 <jsp:useBean id = "db" scope="application" class="Stella.doSelect"/> 
    又有java代码,并且代码里使用动作标签定义的变量,你这种写法不行吧,要么全用动作标签,要么全用java代码.
      

  7.   

    ??没有错的啊
    就是java程序,我已经测试过了,是正确的,类是一定没有问题的,是吗?
      

  8.   

    页面没有导入user类
    加上
    <%@ page contentType="text/html; charset=gb2312" language="java" import="Stella.user"%> 
      

  9.   

    啊,不懂,那要怎么改啊?
    高手请指点~!
    就是我写过了简单的测试javabean程序
    好像就是涉及到数据库连接的时候就会出问题,感觉是那一块的问题。
      

  10.   

    要么就是DataBaseConn db = new MySQLConn();db为空,要么就是ResultSet rs = db.executeQuery(sql); rs为空导致执行
    while(rs.next() && rs != null) 

    u.setFirstName(rs.getString(2)); 
    u.setLastName(rs.getString(3)); 
    }
    时由于rs为空,调用它的next()方法抛出异常
      

  11.   

    啊?import的是一个包啊,已经写了“Stella.*”,user在Stella里面啊
      

  12.   

    你在<jsp:useBean id = "db" scope="application" class="Stella.doSelect"/>中配置了class后把类的包路径写完整就不用再import了
      

  13.   

    那个还用到user类要怎么办呢?
      

  14.   

    那没办法,你都在java代码中用到,没有在标签里用到自然还要import进来
      

  15.   

    从你上面的代码就可看出来
    <jsp:useBean id = "db" scope="application" class="Stella.doSelect"/>是标签,已经用class指定了类的包路径,可不用import再重复引入
    <% 
    String id = "34"; 
    User u = db.use(id);
    %> 
    上面是java代码,用到了User类,你自然要用import把它引进来,不然系统到哪去寻找User类?!!
      

  16.   


    哦,我看你前几行发的userTest.jsp代码里面没有,以为你没写