代码如下:
    public static void main(String[] args) {
BooksService bs=new BooksService();
Books book=new Books();
book.setBookname("asp.net");
book.setPrice(10.6f);
bs.add(book);
Collection<Books> cl=bs.find();
for(Iterator<Books> iter=cl.iterator();iter.hasNext();){
Books bk=iter.next();
System.out.println(bk.getBookname());
}
}
   运行结果:
   java
   asp.net数据库连接正常,但在servlet里用的这个,在网页上显示org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
而用jsp直接连接数据库又没有问题
 <%@   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://127.0.0.1:1433;DatabaseName=test;SelectMethod=cursor";       
  String   user="web";     
  String   password="web";//为另一台自己设置的用户名、密码       
  Connection conn= DriverManager.getConnection(url,user,password);  
  //result = DriverManager.getConnection(url, username, password);     
  Statement stmt=conn.createStatement();
  String sql="select   bookname  from   books";
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next())   {%> 
  您的第一个字段内容为:<%=rs.getString(1)%>
  <%}%> 
  <%out.print("数据库操作成功,恭喜你");%>       
  <%rs.close();       
  stmt.close();       
  conn.close();       
  %>       
  </body>       
  </html> 
显示结果:
您的第一个字段内容为:java 您的第一个字段内容为:asp.net 数据库操作成功,恭喜你 
请高手指教

解决方案 »

  1.   

    这个是servlet的代码吗?
    你的Service看看,呵呵!
      

  2.   

    java.lang.NullPointerException 看看你的哪个对象空了
      

  3.   

    servlet部分代码
    public Collection<Books> populate(ResultSet rs) throws Exception{
    List<Books> list=new ArrayList<Books>();
    try {
    while(rs.next()){
    Books books=new Books();
    books.setBookid(rs.getLong("bookid"));
    books.setBookname(rs.getString("bookname"));
    books.setPrice(rs.getFloat("price"));
    list.add(books);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return list;
    } public Collection<Books> find() {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs=null;
    Collection<Books> bookslist=null;
    try {
    conn=ManagerConnection.getConnection("mssql");
    String sql="select * from books";
    ps=conn.prepareStatement(sql);
    rs=ps.executeQuery();
    bookslist=this.populate(rs);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    finally{
    this.close(conn, ps, rs);
    }
    return bookslist;
    }
      

  4.   

    servlet显示代码
    public String show(){
    Books books=null;
    StringBuilder sb=new StringBuilder();
    sb.append("<TABLE width=\"100%\" border=\"1\" align=\"center\" cellPadding=\"0\" cellSpacing=\"0\" borderColor=\"#cedcef\" borderColorDark=\"#ffffff\">\r\n");
    sb.append("<tr bgColor=\"#E3efff\">\r\n");
    sb.append("<td>bookid</td>\r\n");
    sb.append("<td>书名</td>\r\n");
    sb.append("<td>价格</td>\r\n");
    sb.append(" <td>修改</td>\r\n");
    sb.append(" <td>删除</td>\r\n");
    sb.append("</tr>\r\n");
    Collection<Books> cl=find();
    for(Iterator<Books> iter=(Iterator<Books>)cl.iterator();iter.hasNext();){
    books=(Books)iter.next();
    sb.append("<tr>\r\n");
    sb.append("<td>"+books.getBookid()+"</td>\r\n");
    sb.append("<td>"+books.getBookname()+"</td>\r\n");
    sb.append("<td>"+books.getPrice()+"</td>\r\n");
    sb.append(" <td><a href=\"request/booksedit.jsp?bookid="+books.getBookid()+"\">修改</a></td>\r\n");
    sb.append(" <td><a href=\"client/booksdel?bookid="+books.getBookid()+"\">删除</a></td>\r\n");
    sb.append("</tr>\r\n");
    }
    sb.append("</table>\r\n");
    return sb.toString();
    }books.jsp代码
    <%@ page contentType="text/html;charset=gb2312" %>
    <jsp:useBean id="booksservice" class="service.BooksService" scope="request"/>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>My JSP 'books.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
      </head>
      <body>
      <%
       int count=booksservice.find().size();
       int pagenum=3;
       int totalnum=(((double)count/(double)pagenum)>(count/pagenum)?count/pagenum+1:count/pagenum);
       int currentpage=1;
       if(request.getParameter("page")!=null)
       currentpage=Integer.parseInt(request.getParameter("page"));
       out.println("<a href=\"request/booksadd.html\">添加</a><br>");
        out.println(booksservice.show(currentpage,pagenum,null,null)); 
       if(currentpage>1){
        out.println("<a href=\"show/books.jsp?page=1\">首页</a>&nbsp;");
        out.println(" <a href=\"show/books.jsp?page=<%=currentpage-1 \">上一页</a>");
        } 
        else
        {
         out.println("首页&nbsp;");
         out.println("上一页");
        }
        if(totalnum>currentpage){
          out.println("<a href=\"show/books.jsp?page=<%=currentpage+1\">下一页</a>&nbsp;");
            out.println(" <a href=\"show/books.jsp?page=<%=totalnum \">尾页</a>&nbsp;");
       } 
        else{
        out.println("下一页&nbsp;");
         out.println("尾页");
        }
        %>
      </body>
    </html>
      

  5.   

    哦,我没有用servlet,只用了javabean和jsp,以上所说的servlet显示的代码都是用的javabean里的代码.