首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

!请!(有时提示“无效的游标异常!”)

2013-09-11 
求助!!请高手指点!(有时提示“无效的游标错误!”)/**下边是jsp页面文件*/%@pagecontentType text/htmlch

求助!!请高手指点!(有时提示“无效的游标错误!”)
/*
  *下边是jsp页面文件
  */


<%@   page   contentType= "text/html;   charset=gb2312 "   language= "java "   import= "java.sql.*,bean.DBClass "   errorPage= " "   %>
<table   width= "75% "   align= "right "   border= "0 ">
<%
String   query= "SELECT   *   FORM   message ";
String   userId= " ";
String   message= " ";
String   date= " ";
DBClass   db=new   DBClass();
db.connect();
ResultSet   rt=db.executeQuery(query);
while(rt.next()){
userId=rt.getString( "userId ");
message=rt.getString( "message ");
date=rt.getString( "date ");
%>
<tr> <td>
留言者: <%=userId   %> &nbsp;&nbsp;&nbsp;&nbsp; <%=date   %> </td> </tr>
<tr> <%=message   %> </tr>
<%
}
db.closeConnection();
%>
<tr> <td>
<form   name= "form3 "   method= "post "   action= "/MsgBoard/UserComment ">
<div   align= "center "> 我要发言:(不超过50字) <font     color= "#FF0000 "   size= "-1 "> <%   if   (request.getAttribute( "errInf2 ")!=null){   %>
        <%=(String)request.getAttribute( "errInf2 ")   %>   <%   }   %> </font>
<p   align= "center ">
<textarea   name= "comment "   cols= "30 "   rows= "9 "   > </textarea> </p>
<p   align= "center ">
<input   name= "submit "   type= "submit "   value= "发布 "/> &nbsp;&nbsp;
<input   name= "reset "   type= "reset "   value= "重写 "/> </p>
</div>
</form> </td> </tr>
</table>


/*   DBClass   原代码,编译过   没有错误
  *   Designed   by   *****
  */


  package   bean;
 
  import   java.io.*;
  import   java.util.*;
  import   java.sql.*;
 
  public   class   DBClass
  {
  private   String   driver;
  private   String   url;
  private   String   username;
  private   String   password;
  private   Connection   connection;
  private   Statement   statement;
  private   String   message= " ";
  public   DBClass(){
  driver= "sun.jdbc.odbc.JdbcOdbcDriver ";
  url= "jdbc:odbc:msgboard ";
  username= " ";
  password= " ";
  connection=null;
  statement=null;
  message= " ";
  }
  public   DBClass(String   driver,String   url,String   username,String   password){
  this.driver=driver;
  this.url=url;
  this.username=username;
  this.password=password;
  this.connection=null;
  this.statement=null;
  this.message= " ";
  }
  public   String   getDriver(){


  return   driver;
  }
  public   void   setDriver(String   driver){
  this.driver=driver;
  }
    public   String   getUrl(){
  return   url;
  }
  public   void   setUrl(String   url){
  this.url=url;
  }
    public   String   getUsername(){
  return   username;
  }
  public   void   setUsername(String   username){
  this.username=username;
  }
    public   String   getPassword(){
  return   password;
  }
  public   void   setPassword(String   password){
  this.password=password;
  }
    public   Connection   getConnection(){
  return   connection;
  }
  public   void   setConnection(Connection   connection){
  this.connection=connection;
  }
    public   Statement   getStatement(){
  return   statement;
  }
  public   void   setStatement(Statement   statement){
  this.statement=statement;
  }
    public   String   getMessage(){
  return   message;
  }
  public   void   setMessage(String   message){
  this.message=message;
  }
  /*link   to   database*/
  public   void   connect(){
  try{
  Class.forName(driver);
  connection=DriverManager.getConnection(url,username,password);
  statement=connection.createStatement();
  }catch(ClassNotFoundException   cnfe){
  message= "connection: "+cnfe;
  }catch(SQLException   sqle){
  message= "executeQuery: "+sqle;
  }
  }
  /*Seclet   and   return   result*/
  public   ResultSet   executeQuery(String   query){
  ResultSet   resultset=null;
  try{
  resultset=statement.executeQuery(query);
  }catch(SQLException   sqle){
  message= "executeQuery: "+sqle;
  }
  return   resultset;
  }
  /*Update   the   database*/
  public   void   executeUpdate(String   command){
  try{
                        statement.executeUpdate(command);
  }catch(SQLException   sqle){
  message= "executeUpdate: "+sqle;
  }
  }
  /*close   the   database*/
  public   void   closeConnection(){
  try{
  connection.close();
  }catch(SQLException   sqle){
  message= "closeConnection: "+sqle;
  }
  }
}  


/*
  *jsp页面调试错误,调试环境tomcat6.0+jdk1.5             ,       Dreamweaver8.0
  */


HTTP   Status   500   -  

--------------------------------------------

type   Exception   report

message  

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   /utility/comment.jsp   at   line   11

8:   DBClass   db=new   DBClass();
9:   db.connect();
10:   ResultSet   rt=db.executeQuery(query);
11:   while(rt.next()){
12:   userId=rt.getString( "userId ");
13:   message=rt.getString( "message ");
14:   date=rt.getString( "date ");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root   cause  

java.lang.NullPointerException
org.apache.jsp.utility.comment_jsp._jspService(comment_jsp.java:65)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note   The   full   stack   trace   of   the   root   cause   is   available   in   the   Apache   Tomcat/6.0.10   logs.


--------------------------------------------

Apache   Tomcat/6.0.10




[解决办法]
db.connect(); 这个方法不应该是返回void 而应该返回一个Statement类型的

[解决办法]
第一,你先看看你的connection是否为null;第二,你要看看你的statement是否为null
我的异常网推荐解决方案:An exception occurred processing JSP page,http://www.myexception.cn/j2se/33144.html
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html

热点排行