解决方案 »

  1.   

     if(rs.next())  换为 while(rs.netx())
      

  2.   

    查看 ResultSet API 
    public interface ResultSetextends
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 
    ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。
    next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,
    所以可以在 while 循环中使用它来迭代结果集。
     
      

  3.   

    查看 ResultSet API 
    public interface ResultSetextends
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 
    ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。
    next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,
    所以可以在 while 循环中使用它来迭代结果集。
     

    麻烦您再找一找其他原因,就算改成while异常同样发生在这个位置。因为我的数据库只会有一条记录,作为管理员信息。所以用if。
      

  4.   

    楼主可以将登陆的页面贴出来吗?就loginCheck.jsp,真看不出什么问题。
      

  5.   

    楼主可以将登陆的页面贴出来吗?就loginCheck.jsp,真看不出什么问题。
    麻烦你了。
    login.jsp
    <%@page contentType="text/html;charset=GBK"%>
    <%@page import="java.util.*"%>
    <html>
    <head>
    <title>用户登陆</title>
    <script language="javascript" type="">
    function checkForm() {
    if (document.form1.username.value == "") {
    alert("用户名不能为空");
    form1.username.focus();
    return false;
    }
    document.form1.submit();
    }function resetForm() {
    document.form1.reset();
    }function check1Form()
    {
    alert("用户名不能为空");
    }
    </script><%
    synchronized(application) {
    Vector ListUser=null;
        ListUser =(Vector)application.getAttribute("UserName");
        String UserName1="";
        UserName1=(String) session.getAttribute("sName");
        if ((!session.isNew())&&(!UserName1.equals("")))
       {
        ListUser.remove(UserName1);
       }    
    }
    %>
    <style type="text/css">
    <!--
    .style2 {font-size: 24px}
    -->
    </style>
    </head><body bgcolor="#FF9900">
    <br>
    <table align="center">
      <tr bgcolor="#FFFF99">
        <td width="93%" align="right"><span class="style2">BBS登陆</span></td>
        </td>
      </tr>
    </table>
    <br>
    <table width="100" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
      </tr>
      <tr align="center" valign="middle">
        <td>
          <form name="form1" method="post" action="logincheck.jsp">
            <table width="273" align="center">
              <tr bgcolor="#FFFF99">
                <td width="38%" height="18" align="right">用户名:</td>
                <td width="62%">
                  <input type="text" name="username">
                </td>
              </tr>
              <tr bgcolor="#FFFF99">
                <td width="38%" height="18" align="right">密码:</td>
                <td width="62%">
                  <input type="password" name="password">
                </td>
              </tr>
              <tr bgcolor="#FFFF99">
                <td width="38%" height="19" align="right">身份:</td>
                <td width="62%">
                  <input type="radio" name="userType" value="Y">
                  会员 
                  <input type="radio" name="userType" value="N" checked>
                  非会员 </td>
              </tr>
            </table>
          </form>
    </td></tr>
      <tr bgcolor="#FF9900" valign="middle" align="center">
        <td height="20"><img src="button_1.gif" width="52" height="21" onClick="checkForm();" style="cursor:hand" alt="">  <img src="button_2.gif" width="52" height="21" onClick="resetForm();" style="cursor:hand" alt=""></td>
      </tr>
      <tr bgcolor="#FF9900" valign="middle" align="center">
        <td height="50">&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>这个jsp页面能正常显示。
      

  6.   

    每日回帖,+10可用分看了楼上的if改成while,坐不住了,if条件如果不成立,while能成立吗?这个页面出问题还要看别的页面,有失水准楼主的executeQuery方法,问题非常严重不管是不是连接数据库出错,还是查询语句出错,都不会冒一个泡这,样如果真连接数据库出错了或sql语句有问题,得不到任何信息,返回的ResultSet 为null,导致楼主一调用rs.next,就直接出错。
    修正方法:catch里加入错误处理逻辑。
      

  7.   

     真找不出问题了。
    把代码放到我机子上面一点问题都没有。
    建议楼主将logincheck.jsp页面删除了,重新new一个页面,将内容复制进去再试试。
      

  8.   

     确定    rs = sqlbean.executeQuery(sqlstring)   rs 里面有数据么?
      

  9.   


    找到白痴错误了我数据库都是用windows身份验证的所以没有授予sa登录权限,而书上的代码是用sa登录的
    不管是不是连接数据库出错,还是查询语句出错,都不会冒一个泡这,样如果真连接数据库出错了或sql语句有问题,得不到任何信息,返回的ResultSet 为null,导致楼主一调用rs.next,就直接出错。
    修正方法:catch里加入错误处理逻辑。
    多亏了您的指导把找错范围缩小了好多。。