代码如下:HttpServletResponse hsrResponse = null; //也不知道是不是这样子写,网上都是用个方法。
Cookie aCookie = new Cookie("cookieA","My cookie test"); 
aCookie.setMaxAge(60*60*24*7);
hsrResponse.addCookie(aCookie); //执行到这里抛出 java.lang.NullPointerException
为什么 hsrResponse.addCookie(aCookie) 会报 java.lang.NullPointerException 异常啊?

解决方案 »

  1.   

    肯定有异常,你看你的代码:HttpServletResponse hsrResponse = null,又没实例化; 怎么会不错?
      

  2.   

    respone对象在jsp中直接使用。
    在servlet中是作为参数传来的,都可以直接使用。
      

  3.   

    response对象都是web容器实例化好的,直接来用就行了,你为什么要把它赋值成null
      

  4.   

    我不太熟悉COOKIE,能给个案例吗?感谢。
      

  5.   

    HttpServletResponse hsrResponse = null; //也不知道是不是这样子写,网上都是用个方法 这都为空 肯定不行啊 !
    写一个servlet ,让他继承 HttpServlet重新 service 方法 。
    @Override
    public void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {}
     
    service 方法 就有 你要的参数了。
      

  6.   

    那我怎么把那些值传过去啊?比如HttpServletRequest request, HttpServletResponse response 这两个我传的是什么啊?
      

  7.   

    HttpServletResponse 是不能直接实例化的,请问楼主代码是请在什么地方的。jsp,servlet还是struts啊
      

  8.   

    要么就按6楼的朋友所说那样做。
    写一个servlet ,让他继承 HttpServlet
    重写 service 方法 。
    在service方法里面
    public void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      Cookie aCookie = new Cookie("cookieA","My cookie test");  
      aCookie.setMaxAge(60*60*24*7);
      response.addCookie(aCookie); //这里直接用response,不用你去管这两个参数怎么来的,直接用就是了。
    }
      

  9.   

    request是请求用的,response是响应用的。
    他们扯不上关系。
      

  10.   

    cookie的添加就是这种:
    Cookie cookie = new Cookie("key1", "value1");   
    cookie.setMaxAge(-1);   
    cookie.setPath("/");   
    response.addCookie(cookie);  但是你这里用到了HttpServletResponse对于cookie进行跟踪,
    HttpServletResponse是ServletResponse的HTTP封装,是用于创建响应信息而ServletResponse是Servlet程序与Servlet引擎进行通信的接口,Servlet通过ServletResponse对象将响应正文传递给Servlet引擎,再由Servlet引擎将响应正文输出到客户端,所以你可以直接用response.addCookie(cookie); 来添加cookie,但是你上面直接声明了个HttpServletResponse hsrResponse = null; 将它赋为null,那他就不同上面所讲的那个ServletResponse,你在用他来操作就会是空指针了
      

  11.   

    感谢,那么我在 service 里添加了这个方法,那么我怎么去调用它?