摸JAVA没多久
<jsp:useBean id="PostsManager" class="com.bbs.struts.bean.PostsManager"  scope="session" />
<tr bgcolor=lawngreen>
     <%
java.sql.ResultSet rs=(java.sql.ResultSet)request.getAttribute("author");
while(rs.next()){
String authorname=rs.getString("AUTHOR");
//String username=rs.getString("username");
//String title=rs.getString("title");
    %>
          <td><%=authorname%></td>
</tr>
<% } %>JSP上的一段代码,目的是拿数据库的一个表内的所有数据到JSP上  然后报错是rs.next()空指针servlet部分代码
PostsManager postsmanager=new PostsManager();
request.setAttribute("author", postsmanager.findauthor()); PostsManager部分代码
package com.bbs.struts.bean;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.bbs.struts.db.DB_conn;
import com.bbs.struts.form.LoginForm;
import com.bbs.struts.form.Posts_writeForm;public class PostsManager {

DB_conn db = new DB_conn();

public ResultSet findauthor(){
String sql="select * from posts_table";
ResultSet rs=db.getQuery(sql);
return rs;
}
}数据库连接的部分代码
public  ResultSet getQuery(String sql){
     Connection conn=getCon();
 Statement stt=null;
 ResultSet rs = null;
 try{
 stt=conn.createStatement();
 rs=stt.executeQuery(sql);
 }catch(Exception e){
 e.printStackTrace();
 }
return rs;
  }大家帮我看看哪里错了 看了好久不晓得

解决方案 »

  1.   

    你的servlet到jsp是请求转发还是重定向,重定向的话会重新发送request,所以之前设的attribute会丢失。
      

  2.   

    没看到你的数据库连接代码,也就是Connection conn=getCon();这个方法的代码。
    你先到查询分析器中运行下select * from posts_table看看结果如何,
      

  3.   

    request.setAttribute()改成session.setAttribute(),然后jsp取值时也要改成相对应的即可
      

  4.   

    servlet部分代码
    PostsManager postsmanager=new PostsManager(); 
    request.setAttribute("author", postsmanager.findauthor());  
    你这里输出下看看有没有结果postsmanager.findauthor();
    也就是这样  
    PostsManager postsmanager=new PostsManager(); 
    System.out.println(postsmanager.findauthor());
    request.setAttribute("author", postsmanager.findauthor());  
    先判断第一步你的值有没有获取到  有输出结果的话那就按楼上的方法看下 设置为session
      

  5.   

    java.sql.ResultSet rs=(java.sql.ResultSet)request.getAttribute("author");这句代码,在servlet之中,author是一个对象,现在你的意思是将对象保存在结果集合里面,这样写,你觉得合适吗?这句代码只执行1次,而你的初衷是author对象只传递了一个?显然不是的。你可以在servlet上写成一个集合,然后request.setAttribute("author"),jsp页面通过
    <c:foreach/>来遍历。
      

  6.   

    显然我是直接一次性把整个表拿出来了,然后用rs.next()判断后面是否还有内容然后循环输出的
      

  7.   

    没看到你的数据库连接代码,也就是Connection conn=getCon();这个方法的代码。
    你先到查询分析器中运行下select * from posts_table看看结果如何,
      

  8.   

    要死了。我从来没在这个帖子出现过。怎么短信我说有人回复了我这个帖子。csdn错乱了。