代码如下: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 异常啊?
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 异常啊?
在servlet中是作为参数传来的,都可以直接使用。
写一个servlet ,让他继承 HttpServlet重新 service 方法 。
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {}
service 方法 就有 你要的参数了。
写一个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,不用你去管这两个参数怎么来的,直接用就是了。
}
他们扯不上关系。
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,你在用他来操作就会是空指针了