The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
org.apache.jsp.WebRoot.search2_jsp._jspService(search2_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.不好意思  错误在这里  在tomcat服务器里报的错

解决方案 »

  1.   

    //问题在这里selectnamenj.equals("全部") 其中selectnamenj可能是空的
    if(selectnamenj==null || selectnamenj.equals("全部"))
    {
    //执行SQL语句并获取结果集
    sqlRst = stmt.executeQuery(sql);
    }
    else
    {
    sqlRst= stmt.executeQuery(strSQL);
    }
      

  2.   

    if(selectnamenj==null || selectnamenj.equals("全部"))中  selectnamenj==null 必须是第一个判断条件,因为JAVA做 “||”判断的时候有先后顺序,并且只要找到第一个判断正确就不再找下一个条件。
      

  3.   

    java.lang.NullPointerException   空指针异常。很可能是selectnamenj 这个的事。检查一下,是否为空。
      

  4.   

    恩,如果是条件查询的话,那么该查询条件要进行判断,String类型的,要判断是否为NULL,还有int型的等等,只有进行判断之后,才能进行操作
      

  5.   

    我的那个selectnamenj没有空整页代码在这  在没有加入那个IF ELSE之前 我的这个分页是可以实现的  加了之后也可以调出数据 但是 在下一页是就出现我之前写的那些错误 谢谢<%@ page contentType="text/html;charset=gb2312" %>
    <%@ page language="java" import="java.sql.*" %>
    <%//变量声明
    java.sql.ResultSet sqlRst; //结果集对象
    java.lang.String strSQL; //SQL语句
    int intPageSize; //一页显示的记录数
    int intRowCount; //记录总数
    int intPageCount; //总页数
    int intPage; //待显示页码
    java.lang.String strPage;
    int i;
    request.setCharacterEncoding("gb2312");
    String selectnamenj=request.getParameter("selectnamenj");
    //设置一页显示的记录数
    intPageSize = 1;
    //取得待显示页码
    strPage = request.getParameter("page");
    if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
    intPage = 1;
    }
    else{//将字符串转换成整型
    intPage = java.lang.Integer.parseInt(strPage);
    if(intPage<1) intPage = 1;
    }
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Subsidizes"; 
    String user="sa"; String password="123456"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    strSQL = "select * from userInfo where grade='"+selectnamenj+"'order by num";
    String sql ="select * from userInfo order by num";
    if(selectnamenj.equals("全部"))
    {
    //执行SQL语句并获取结果集
    sqlRst = stmt.executeQuery(sql);
    }
    else
    {
    sqlRst= stmt.executeQuery(strSQL);
    }//获取记录总数
    sqlRst.last();//??光标在最后一行
    intRowCount = sqlRst.getRow();//获得当前行号
    //记算总页数
    intPageCount = (intRowCount+intPageSize-1) / intPageSize;
    //调整待显示的页码
    if(intPage>intPageCount) intPage = intPageCount;
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>会员管理</title>
    <style type="text/css">
    <!--
    a:link {
    text-decoration: none;
    }
    a:visited {
    text-decoration: none;
    }
    a:hover {
    text-decoration: none;
    }
    a:active {
    text-decoration: none;
    }.style3 {font-family: "宋体"; font-size: 16px; }
    -->
    </style></head>
    <body topmargin="0">
    <form method="POST" action="search2.jsp">
      <div align="center">第<%=intPage%>页  共<%=intPageCount%>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <%if(intPage>1){%>
        <a href="search2.jsp?page=<%=intPage-1%>">上一页</a>    <%}%>
        <%if(intPage<intPageCount){%>
        <a href="search2.jsp?page=<%=intPage+1%>">下一页 </a>    <%}%>  
        转到第:
    <input type="text" name="page" size="8"> 

    <input name="Submit" type="submit" class="style3" value=" GO ">
      </div>
    </form>
    <div align="center">
      <table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#CFFEFB">
        <tr>
          <th width="142" height="24" bgcolor="#66FFFF">学号</th>
          <th width="86" bgcolor="#66FFFF">姓名</th>
          <th width="72" bgcolor="#66FFFF">性别</th>
          <th width="82" bgcolor="#66FFFF">年级</th>
          <th width="199" bgcolor="#66FFFF">奖学金有否</th>
          <th width=186 bgcolor="#66FFFF" >操作</th>
        </tr>
        <%
    if(intPageCount>0){
    //将记录指针定位到待显示页的第一条记录上
    sqlRst.absolute((intPage-1) * intPageSize + 1);
    //显示数据
    i = 0;
    String user_id,user_psw,user_name,user_sex,user_grade,user_family,user_jxj;
    while(i<intPageSize && !sqlRst.isAfterLast()){
    user_id=sqlRst.getString(1);
    user_name=sqlRst.getString(3);
    user_sex=sqlRst.getString(4);
    user_grade=sqlRst.getString(5);
    user_jxj=sqlRst.getString(7);
    %>
        <tr>
          <td height="26"><%=user_id%></td>
          <td><%=user_name%></td>
          <td><%=user_sex%></td>
          <td><%=user_grade%></td>
          <td><%=user_jxj%></td>
          <td width=186 align=′center′><div align="center"><a href="edit.jsp?user_id=<%=user_id%>" onClick="return newwin(this.href);" target="rightframe">修改</a></div></td>
        </tr>
        <%
    sqlRst.next();
    i++;
    }
    }
    %>
      </table>
    </div>
    </body>
    </html>
    <%
    //关闭结果集
    sqlRst.close();
    //关闭SQL语句对象
    stmt.close();
    //关闭数据库
    conn.close();
    %>