错误如下:
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.service(JspServletWrapper.java:367)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
abc.checkLogin.getCookieValue(checkLogin.java:36)
abc.checkLogin.check(checkLogin.java:16)
org.apache.jsp.index_jsp._jspService(index_jsp.java:65)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)note The full stack trace of the root cause is available in the Tomcat logs.
解答对了千分相赠,万分感谢。
帮我顶也有分。
帮我顶也有分。
帮我顶也有分。

解决方案 »

  1.   

    public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
     {
      for(int i=0;i<cookies.length;i++) {
      Cookie cookie = cookies[i];
      if (cookieName.equals(cookie.getName()))
      return(cookie.getValue());
     }
      return(defaultValue);
     }
    ----------
    javabean中加上null判断,如下:public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
     {
      if ( cookies != null )
      {
        for(int i=0;i<cookies.length;i++) {
          Cookie cookie = cookies[i];
          if (cookieName.equals(cookie.getName()))
          return(cookie.getValue());
        }
      }  return(defaultValue);
     }
      

  2.   

    tomcat报了NullPointerException,那就简单多了,从头到尾看一下,有没有地方你没考虑周全的,就调用了一个可能为null的值的什么方法PS,页面中夹杂代码实在看起来比较痛苦,建议JSP页面和Java代码分离,如果不能做到MVC,也应该做到Model1的那种分两层吧
      

  3.   

    NullPointerException异常那就是指JAVABEAN有问题吗?是不是JAVABEAN里某个对象用了空值
      

  4.   

    此JAVABEAN不是我写的,但是我觉得有问题。设计此BEAN的人说
    “此bean是用来检测cookie中的username,若不为空则说明已登录,反之说明没有登录。”  this.username = this.getCookieValue(myCookies,cookieName,"not found");
    但是从getCookieValue这个方法不可能返回null,所以username也不可能为null。我这样想对吗,希望大家给出意见。
      

  5.   

    Cookie[] myCookies = req.getCookies();
    检查一下获得的是否为空,然后再对他进行调用否则会出现
    运行时异常,就像你的空指针异常一样。
      

  6.   

    java.lang.NullPointerException
    空指针错误。
    搜索关键字NullPointerException
    好多经典回复的
      

  7.   

    那个NullPointerException解决了,现在有出现新的错误大家再帮我看看。谢谢
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPNo Java compiler was found to compile the generated source for the JSP. 
    This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK 
    to the common/lib directory of the Tomcat server, followed by a Tomcat restart. 
    If using an alternate Java compiler, please check its installation and access path. org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:128)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:307)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:416)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:440)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)note The full stack trace of the root cause is available in the Tomcat logs.
      

  8.   

    1 第一次访问,cookies是空的,直接引用cookies.length所以出错
    2 cookieName.equals(cookie.getName())永远不会成立,程序永远不会得到正确结果
      

  9.   

    楼主,这些问题根本不用争来争去的,你不是知道他是怎么写的吗,
    你把它测一下,不就完了吗,还用在这郁闷啊,
    最简单的办法,你在它写的bean里加一个System.out.println("觉的有问题的变量");
    这样它就可以显示在服务器的dos窗口里了,
    大家总在这里觉的这,觉的那的,不如果动手做一下
      

  10.   

    <--------------高手看过来! 能不能搞定这个?
    http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.1701624
      

  11.   

    按照 cm4ever(小P) 的方法,判断下是否为null就解决了
      

  12.   

    <--------------高手看过来! 能不能搞定这个?
    http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.1701624
      

  13.   

    楼主我把你的代码放到我的机子上试了下,按照cm4ever(小P) 的方法改了就可以了,他的代码如下
    public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
     {
      if ( cookies != null )
      {
        for(int i=0;i<cookies.length;i++) {
          Cookie cookie = cookies[i];
          if (cookieName.equals(cookie.getName()))
          return(cookie.getValue());
        }
      }  return(defaultValue);
     }但是按照你的逻辑,还要改check()如下
     public boolean check(HttpServletRequest req,HttpServletResponse res)
     throws IOException,ServletException
     {
      String cookieName = "username";
     Cookie[] myCookies = req.getCookies();
      this.username =getCookieValue(myCookies,cookieName,"");
      PrintWriter out = res.getWriter();
      if(this.username != null&&this.username.length()!=0)
      {   
       //out.println("早上好," + this.username + "!");
       return true;
      }else{
       out.println("登陆失败!");
       return false;
       }
     }
    要不然就不会出现登陆窗口了.你也可以改为其他的判断
      

  14.   

    java.lang.NullPointerException表示空指针异常,这个可能是提交的参数个数或变量名不匹配造成的
      

  15.   

    JAVABEAN打个包就没问题了
    package abc;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;//class checkLogin
    public class checkLogin
    {
     public String username = "";
     
     public boolean check(HttpServletRequest req,HttpServletResponse res)
     throws IOException,ServletException
     {
      String cookieName = "username";
      Cookie[] myCookies = req.getCookies();
      if (myCookies!=null) {
      username = getCookieValue(myCookies,cookieName);
      PrintWriter out = res.getWriter();
      if(username != null)
      {   
       //out.println("早上好," + username + "!");
       return true;
      }else{
       out.println("登陆失败!");
       return false;
       }  
      }
      return false;
     }
     
     public String getUserName()
     {
      return username;
     }
     
     public static String getCookieValue(Cookie[] cookies,String cookieName)
     {
      for(int i=0;i<cookies.length;i++) {
       Cookie cookie = cookies[i];
       if (cookieName.equals(cookie.getName()))
        return(cookie.getValue());
      }
      return null;
     }
    }