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
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.

解决方案 »

  1.   

    java.lang.NullPointerException啊,代码贴出来看看。
      

  2.   

    在login.jsp有空指针异常。。帖出来吧,不过这个不好找到问题
      

  3.   


    <%@ page contentType="text/html;charset=gb2312" language="java"%>
    <%@ page import="java.io.*,java.sql.*"%>
    <jsp:useBean id="rst" scope="page" class="com.mingri.dbconn.DBResult"/>
    <jsp:useBean id="calendar" scope="page" class="com.mingri.showtime.ShowTime"/>
    <%
       request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
       String username=request.getParameter("username"); //接收表单中的username属性
       String password=request.getParameter("password");//接收表单中的password属性
       String str="select * from tb_user where "+
                   "username='"+username+"' and password='"+password+"'";
       ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象
       session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
       if(!rs.next())//结果集没有找到所要查找的行
       {
        out.println("<script language='javascript'>alert('用户名或密码错误');"+
                    "parent.location.href='login.html';</script>");
       }
       else
       {
         session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
         session.setAttribute("password",rs.getString("password"));
         session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
         //获得用户上次登陆系统的时间
         session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
         String strsql=calendar.getDate();
         int id=rs.getInt("ID");
         //将该用户本次登陆系统的时间在用户信息表中更新
         String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
         rst.getResult(strUpdate);//执行SQL语句
         response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
       }
    %>
      

  4.   

    1、rst
    2、calendar把这2个输出一下,可能有null
      

  5.   


    System.out.println("rst = "+rst);
    System.out.println("calendar = "+calendar);
      

  6.   


    刚接触jsp不太懂, 这两段加到那里面?
      

  7.   

    <%@ page contentType="text/html;charset=gb2312" language="java"%>
    <%@ page import="java.io.*,java.sql.*"%>
    <jsp:useBean id="rst" scope="page" class="com.mingri.dbconn.DBResult"/>
    <jsp:useBean id="calendar" scope="page" class="com.mingri.showtime.ShowTime"/>
    <%
       request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
       String username=request.getParameter("username"); //接收表单中的username属性
       String password=request.getParameter("password");//接收表单中的password属性
       String str="select * from tb_user where "+
                   "username='"+username+"' and password='"+password+"'";   System.out.println("rst = "+rst);
       System.out.println("calendar = "+calendar);   ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象   System.out.println("rs= "+rs);   session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
       if(!rs.next())//结果集没有找到所要查找的行
       {
        out.println("<script language='javascript'>alert('用户名或密码错误');"+
                    "parent.location.href='login.html';</script>");
       }
       else
       {
         session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
         session.setAttribute("password",rs.getString("password"));
         session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
         //获得用户上次登陆系统的时间
         session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
         String strsql=calendar.getDate();
         int id=rs.getInt("ID");
         //将该用户本次登陆系统的时间在用户信息表中更新
         String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
         rst.getResult(strUpdate);//执行SQL语句
         response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
       }
    %>
      

  8.   


    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: Exception in JSP: /login.jsp:2017:    System.out.println("rs= "+rs);
    18: 
    19:    session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
    20:    if(!rs.next())//结果集没有找到所要查找的行
    21:    {
    22:     out.println("<script language='javascript'>alert('用户名或密码错误');"+
    23:                 "parent.location.href='login.html';</script>");
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    org.apache.jsp.login_jsp._jspService(login_jsp.java:79)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.5.26
      

  9.   

    1.假设你的connection,statement都没有问题..
    if(!rs.next())//结果集没有找到所要查找的行
    这句,你不觉得,如果rs是null的情况有没? 如果有的话,这是一个NullPointException.
    2.可以像8楼这样去打印..在你不确定对象是不是null的情况下,最好是打印or判断不为null在去调用其方法.
      

  10.   


    如果 rst 或者 calendar 可能是null的话,你这样写就直接是空指针了
    应该改成
    out.println(rst);
    out.println(rst);
    就可以了
      

  11.   


    估计是connection,statement出毛病了
      

  12.   

    帮忙看看 connection,statement 有没有问题
    package com.mingri.dbconn;import java.sql.*;
    import com.mingri.dbconn.DBConn;public class DBResult
    {
      private Connection con;
      public  DBResult(){
        this.con=DBConn.getConnection();
      }
      /**
       * 用于获得执行SQL语句的ResultSet对象
       */
      public ResultSet getResult(String sql){
        try{
          Statement stmt=con.createStatement();
          ResultSet rs=stmt.executeQuery(sql);
          return rs;
        }
        catch(Exception e){}
        return null;
      }
      /**
       * 用于执行SQL语句没有返回值
       */
      public void doExecute(String sql){
        try{
          Statement stmt=con.createStatement();
          stmt.executeQuery(sql);
        }catch(Exception e){}
      }
      /**
       * 用于获得执行SQL语句的PreparedStatement(预处理)对象
       */
      public PreparedStatement getPreparedStatement(String sql){
        try{
          PreparedStatement pstmt=con.prepareStatement(sql);
          return pstmt;
        }
        catch(Exception e){}
        return null;
      }
      /**
       * 关闭连接
       */
      public void closeCon(){
        try{
          this.con.close();
        }catch(Exception e){
            e.printStackTrace();
        }
      }
    }package com.mingri.dbconn;import java.sql.*;
    import com.mingri.dbconn.DBConn;public class DBResult
    {
      private Connection con;
      public  DBResult(){
        this.con=DBConn.getConnection();
      }
      /**
       * 用于获得执行SQL语句的ResultSet对象
       */
      public ResultSet getResult(String sql){
        try{
          Statement stmt=con.createStatement();
          ResultSet rs=stmt.executeQuery(sql);
          return rs;
        }
        catch(Exception e){}
        return null;
      }
      /**
       * 用于执行SQL语句没有返回值
       */
      public void doExecute(String sql){
        try{
          Statement stmt=con.createStatement();
          stmt.executeQuery(sql);
        }catch(Exception e){}
      }
      /**
       * 用于获得执行SQL语句的PreparedStatement(预处理)对象
       */
      public PreparedStatement getPreparedStatement(String sql){
        try{
          PreparedStatement pstmt=con.prepareStatement(sql);
          return pstmt;
        }
        catch(Exception e){}
        return null;
      }
      /**
       * 关闭连接
       */
      public void closeCon(){
        try{
          this.con.close();
        }catch(Exception e){
            e.printStackTrace();
        }
      }
    }
      

  13.   

    把rs、rst、calendar等对象都输出来看看
      

  14.   

    public ResultSet getResult(String sql){
        try{
          Statement stmt=con.createStatement();
          ResultSet rs=stmt.executeQuery(sql);
          return rs;
        }
        catch(Exception e){}
        return null;
      }
    。把e的错误信息都打出来
    等别人继续打你吧,下班
      

  15.   

    晕,不是那段,是加上e.printStackTrace(),现在那段错误信息你没输出
      

  16.   

    在公司里面,就我们公司来说,catch里面不能什么东西都不写的..如果有异常都没有处理,这是错误的..无声无息的就给默认了..我就给老大讲过, 知道可以是返回null,至少也要给点log呀..下班了..走人了
      

  17.   

    java.lang.NullPointerException
    org.apache.jsp.login_jsp._jspService(login_jsp.java:79)打开login_jsp.java文件,看79行就可以了
      

  18.   

    把这个JSP的WORK贴出来就一下找到了 瞎猜啥啊
    WORK在TOMCAT根目录下 一直往下找 会找到JSP对应编译的JAVA类:login_jsp.java
    把他贴出来不就完事了么
      

  19.   


    login_jsp.javapackage org.apache.jsp;import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import java.io.*;
    import java.sql.*;public final class login_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {  private static java.util.List _jspx_dependants;  public Object getDependants() {
        return _jspx_dependants;
      }  public void _jspService(HttpServletRequest request, HttpServletResponse response)
            throws java.io.IOException, ServletException {    JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        HttpSession session = null;
        ServletContext application = null;
        ServletConfig config = null;
        JspWriter out = null;
        Object page = this;
        JspWriter _jspx_out = null;
        PageContext _jspx_page_context = null;
        try {
          _jspxFactory = JspFactory.getDefaultFactory();
          response.setContentType("text/html;charset=gb2312");
          pageContext = _jspxFactory.getPageContext(this, request, response,
           null, true, 8192, true);
          _jspx_page_context = pageContext;
          application = pageContext.getServletContext();
          config = pageContext.getServletConfig();
          session = pageContext.getSession();
          out = pageContext.getOut();
          _jspx_out = out;      out.write('\n');
          out.write('\n');
          com.mingri.dbconn.DBResult rst = null;
          synchronized (_jspx_page_context) {
            rst = (com.mingri.dbconn.DBResult) _jspx_page_context.getAttribute("rst", PageContext.PAGE_SCOPE);
            if (rst == null){
              rst = new com.mingri.dbconn.DBResult();
              _jspx_page_context.setAttribute("rst", rst, PageContext.PAGE_SCOPE);
            }
          }
          out.write('\n');
          com.mingri.showtime.ShowTime calendar = null;
          synchronized (_jspx_page_context) {
            calendar = (com.mingri.showtime.ShowTime) _jspx_page_context.getAttribute("calendar", PageContext.PAGE_SCOPE);
            if (calendar == null){
              calendar = new com.mingri.showtime.ShowTime();
              _jspx_page_context.setAttribute("calendar", calendar, PageContext.PAGE_SCOPE);
            }
          }
          out.write('\n');   request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
       String username=request.getParameter("username"); //接收表单中的username属性
       String password=request.getParameter("password");//接收表单中的password属性
       String str="select * from tb_user where "+
                   "username='"+username+"' and password='"+password+"'";
       ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象
       session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
       if(!rs.next())//结果集没有找到所要查找的行
       {
        out.println("<script language='javascript'>alert('用户名或密码错误');"+
                    "parent.location.href='login.html';</script>");
       }
       else
       {
         session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
         session.setAttribute("password",rs.getString("password"));
         session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
         //获得用户上次登陆系统的时间
         session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
         String strsql=calendar.getDate();
         int id=rs.getInt("ID");
         //将该用户本次登陆系统的时间在用户信息表中更新
         String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
         rst.getResult(strUpdate);//执行SQL语句
         response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
       }      out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
        } catch (Throwable t) {
          if (!(t instanceof SkipPageException)){
            out = _jspx_out;
            if (out != null && out.getBufferSize() != 0)
              out.clearBuffer();
            if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
          }
        } finally {
          if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
        }
      }
    }