本帖最后由 RINTO 于 2009-12-29 08:59:31 编辑

解决方案 »

  1.   

     top.jsp: <%ResultSet rs = data.executeQuery("select * from sort");%>
        <%for(int i=0; i<6 ;i++){rs.next();
        %><a href="./Sort?sortId=<%=rs.getInt("sortId")%>"><%out.print("|"+rs.getString("sortName"));%></a>
          <%}%>&nbsp</td>
    -------------------------------------------------------------------
    <%ResultSet rs = data.executeQuery("select top 6 * from sort");%>
        <%while(rs.next()){
        %><a href="./Sort?sortId=<%=rs.getInt("sortId")%>"><%out.print("|"+rs.getString("sortName"));%></a>
          <%}%>&nbsp</td>
      

  2.   

    错误日志:500错误
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception 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:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:56)
    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)
    root cause java.lang.NullPointerException
    bean.Data.executeQuery(Data.java:34)
    org.apache.jsp.top_jsp._jspService(top_jsp.java:72)
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:56)
    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.
      

  3.   

    java.lang.NullPointerException 
    bean.Data.executeQuery(Data.java:34) 
    34行是哪行?        try
            {
                Statement statement = conn.createStatement();
                rs = statement.executeQuery(s);
            }
      

  4.   

    bean.Data.executeQuery(Data.java:34) Data 类34行报错,看看是否是conn== null,
    Statement statement = conn.createStatement();Debug一下看看吧
      

  5.   

    if(session.getAttribute("user")
    你第一次打开该页的时候,并没有赋予user值,所以回报空指针异常。
    可以这样,我觉得:String user = session.getAttribute("user");
    if(user == null){
       ....
    }
      

  6.   

    java.lang.NullPointerException
    空指针问题,数据库连接失败。
      

  7.   

    这种代码,如果是我的手下写的,我非抽他两打耳光。debug ?? 你debug给我看看。。
      

  8.   

    我在企业管理器里用了混合模式登陆,sql2000打了sp3补丁了,登陆用户名设置了sa,密码为空了,ROOT\\WEB-INF\lib下面也加入了三个包了,编译servlet也全部通过了,我平时做练习也可以连到数据库的,难道还要设置什么吗
      

  9.   

    org.apache.jsp.index_jsp._jspService(index_jsp.java:56) 
    JSP 56行ean.Data.executeQuery(Data.java:34) 
    Data.java的34行
      

  10.   

    我再设置一次数据库连接,有出现了另一个错误:
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:60)
    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)
    root cause javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    org.apache.jsp.topLeft_jsp._jspService(topLeft_jsp.java:104)
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:60)
    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)
    root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
    com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    com.microsoft.jdbc.base.BaseResultSet.validateCursorPosition(Unknown Source)
    com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
    com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
    org.apache.jsp.topLeft_jsp._jspService(topLeft_jsp.java:87)
    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)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:60)
    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.这个是什么问题?
      

  11.   

    HTTP 500 - 内部服务器错误 是什么意思?
      

  12.   

    <tr>
          <td width="680"><a href="index.jsp">主页</a>
            <jsp:useBean id="data" class="bean.Data"/>
            <%ResultSet rs = data.executeQuery("select * from sort");%>
        <%for(int i=0; i<6 ;i++){rs.next();
        %><a href="./Sort?sortId=<%=rs.getInt("sortId")%>"><%out.print("|"+rs.getString("sortName"));%></a>
          <%}%>&nbsp</td>
        </tr>
    這段代碼中的結果集取值问题游标下标问题,改成
    <tr>
          <td width="680"><a href="index.jsp">主页</a>
            <jsp:useBean id="data" class="bean.Data"/>
            <%ResultSet rs = data.executeQuery("select * from sort");%>
        <%while(rs.next()){%><a href="./Sort?sortId=<%=rs.getInt("sortId")%>"><%out.print("|"+rs.getString("sortName"));%></a>
          <%}%>&nbsp</td>
        </tr>
      

  13.   

    http 500内部服务器错误
    没有特别指向哪句
    34行这句吗?Statement statement = conn.createStatement();
    应该是数据库没连接上。conn应该是null
      

  14.   

    试试把localhost改成127.0.0.1试试?
      

  15.   

    这样改:
    top.jsp
    <%@ page contentType="text/html;charset=gb2312"  import="java.sql.*"%>
    <html>
    <body>
    <div align="center">
      <table width="686" border="0">
        <tr>
          <td width="680"><a href="index.jsp">主页</a>
            <jsp:useBean id="data" class="bean.Data"/>
            <%ResultSet rs = data.executeQuery("select * from sort");%>
        <%for(int i=0; i<6 ;i++){
    if(rs!=null&&rs.next()){
        %><a href="./Sort?sortId=<%=rs.getInt("sortId")%>"><%out.print("|"+rs.getString("sortName"));%></a>
          <%}
    }
    %>&nbsp</td>
        </tr>
      </table>
      <table width="685" border="0">
        <tr>
          <td width="679"><a href="kehufuwu.jsp">客户服务</a>|<a href="fukuanfangshi.jsp">付款方式|</a><a href="./XinWen">新闻中心|</a><a href="./Order">我的订单|</a><a href="charge.jsp">收银台</a>|<a href="forsearch.jsp">查询</a>|<%= new java.util.Date().getYear()+1900%>年</td>
        </tr>
        </table>
      </div>
    </body>
    </html>
    topleft.jsp
    <%@ page contentType="text/html;charset=gb2312"  import="java.sql.*"%>
    <jsp:useBean id="data" class="bean.Data"/>
    <table width="251" border="0">
    <tr>
        <td width="154">
    <%if(session.getAttribute("user")==null){%><a href="login.jsp">登陆</a>&nbsp<a href="register.jsp">注册</a>
    <%}else{%>欢迎您,<%= session.getAttribute("user").toString()%><br><a href="logout.jsp">退出</a><%}%><tr>
        <td>分类<br>
            <%ResultSet rs2 = data.executeQuery("select * from sort");%>
        <%for(int i=0; i<5; i++){
    if(rs2!=null&&rs2.next()){
        %><a href="./Sort?sortId=<%=rs2.getInt("sortId")%>"><%out.print("|"+rs2.getString("sortName"));%></a><br>
          <%}
    }
    %></td></tr>
      <tr>
        <td><a href="./XinWen">新闻中心</a></td>
      </tr>
    </table>
    topright.jsp
    <%@ page contentType="text/html;charset=gb2312"  import="java.sql.*"%>
    <jsp:useBean id="data" class="bean.Data"/>
    <table border="0">
    <%ResultSet rs1 = data.executeQuery("select * from book");%>
          <%for(int i=0; i<6; i++){if(rs1!=null&&rs1.next()){%><%if(i%2==0){%><tr><%}%><td>
     封面:<img src=<%=rs1.getString("pic")%>><br>
    书名:<a href="BookDetails?bookId=<%=rs1.getInt("bookId")%>"><%= rs1.getString("bookName")%></a><br>
    作者:<%=rs1.getString("author")%><br>
    <%}}%>就是判断了一下,rs是不是空,如果是空还取值的话,会有空指针的错误。
      

  16.   

      还是数据库的问题。
       SQL异常。
        楼主你这代码哪来的。
         不要到网上乱拷代码。
           建议楼主删除重写
      

  17.   

    先下个main方法看一看,是不是数据库连接的问题
      

  18.   

    后面那段异常是没有用rs.next()
      

  19.   

    (1)Statement statement = conn.createStatement();连接从何而来,
    要么你new Data();
    要么你用静态初始化快:static{
    try
            {
                Class.forName(driver);
                conn = DriverManager.getConnection(url,name,pass);
            }
            catch(ClassNotFoundException classnotfoundexception)
            {
                System.err.println("db(): " + classnotfoundexception.getMessage());
            }
            catch(SQLException e)
            {
                System.err.println("db(): " + e.getMessage());
            }
    }
      

  20.   

    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position. 有你这么遍历ResultSet的么ResultSet rs2 = data.executeQuery("select * from sort");
    while(rs2.next()) {
        rs2.getXXX();
    }
      

  21.   

      明显的Null  错误
      

  22.   

    樓主是玩C#出身的吧,哈哈.異常:空指針異常 你那數據庫連接用STATIC 測試下 是不是為NULL還有用完了 CONNECTION STATEMENT RESULT 記得關閉.
      

  23.   

    把你连接数据库的代码写到一个java文件,执行看有没有问题。
      

  24.   

    jsp上面看见JAVA代码,是最差的程序
      

  25.   

    你的bean.Data类中没有写默认构造方法,还有你的top.jsp中<%for(int i=0; i<6 ;i++){rs.next();
    写法有问题,改为
    while(rs.next()){
    //取数据库中数据
    }
    这样就应该OK了。
      

  26.   

    下面有错误
    private String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookStore";
    应该为:
    private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=BookStore";
      

  27.   

    代码太多了吧,看不进去啊,sqlserver没用过,只用oracle,mysql,SQLite
      

  28.   

    楼主,我想我知道你的问题在哪,因该是sqlserver数据及库配置的问题,我记得好像有一个configration的东西,里面有个配置你要启用,127.0.0.1,我也只有这个印象,具体的记不清了,如果楼主还没解决问题,可以联系我的qq 147993529
      

  29.   

    你用的Sqlserver2005吗,
    那么就private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
      private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=BookStore";
    应该是