PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=gb2312");
response.setCharacterEncoding("gb2312");

out.println("<html>");  out.println("<head>");  out.println("<title>Servlet Cookie Information</title>");  out.println("</head>");  out.println("<body>"); 
Cookie c = null;
Cookie myCookie = new Cookie("lw","1984");
myCookie.setMaxAge(60*1);
response.addCookie(myCookie);
out.print(myCookie.getName());
Cookie[] cookies = request.getCookies();
                  注意这里!!!!我注释过后就能运行并打印出相应的值
                  但取消注释就是500错误,大家看看这里出了什么问题,我实在
                  找不出来了!!!
/*for(int i = 0;i<cookies.length;i++){
c = cookies[i];
out.print(c.getValue());
}*/
out.println("</body>");  out.println("</html>");  out.flush();

解决方案 »

  1.   

    Cookie c = null;.......
    /*for(int i = 0;i<cookies.length;i++){
    c = cookies[i];
    out.print(c.getValue());
    }*/
    -------------------------------应该报空指针异常,Cookie c = null;要么注释,要么Cookie c = new Cookie("sth");
      

  2.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception 
    Cookie c = null改为Cookie c = new Cookie("www","555")然后再对他复值还是不行
    我晕死了
      

  3.   

    你对c赋值 又不是对c进行Cookie的操作 所以不会抛空指针异常
    你的异常信息跟没一样 看了也白看 500我知道 等于5个100
      

  4.   

    你那个FOR循环是想打印出刚才保存的cookie里所有项的值吧,,
    看清楚了...下面的源码是你的,后面的注释是我加的...Cookie c = null;   //不知道你要这一句做什么???可以删掉
    Cookie myCookie = new Cookie("lw","1984"); //这一句没错,lw=1984
    myCookie.setMaxAge(60*1);   //只保存60秒,时间短了点,
    response.addCookie(myCookie);//这句也没错,这句向客户端添加的是myCookie这个Cookie对象
    out.print(myCookie.getName()); //这句没有错.打印的是myCookie对象中的lw的值注意前面的都没有错...关键在下面...
    Cookie[] cookies = request.getCookies();
    //配合下面的FOR语句,这句就错了.你把FOR语句注释了,这个是没有错的,编译运行都可以通过.但打印出来不是这个数组对象的值....因为你这个数组中根本就没有值...
    request.getCookies();---你得到的上一个页面传递过来的COOKIE..有可能你上一个页面根本就没有传递..就出错了...(也许上一个页面也有传递...只有你自己清楚,我就不知道了..),你可以在FOR外面套一个IF语句.如下:
    if(cookies!=null){
      for....
    }else{
      out.print("cookies[] is null");
    }
    这是看了你的代码后一点的个人理解,,仅供参考..本人也才做JAVA WEB不久,可能有不对的对方.
      

  5.   

    很谢谢你们!!特别是lyhapple()同志
    你的话令我毛色洞开!!
    myCookie.setMaxAge(60*1);
    response.addCookie(myCookie);
    out.print(myCookie.getName());
    Cookie[] cookies = request.getCookies();
    找到了原因,第一次执行的时候,我是设置了一个COOKIE,但现在getCookies()还不能获取,只有当我刷新时才能获取上一个创建的COOKIE值,真的太谢谢了!!