刚看到cookie这儿,有些地方不懂;比如我先创建cookie:package com.wjf;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;public class CreateCookies1 extends HttpServlet{    public void doGet(HttpServletRequest req,HttpServletResponse res){
     try{
     res.setContentType("text/html;charset=gbk");
     PrintWriter pw = res.getWriter();
     Cookie myCookie1 = new Cookie("color","red");
     Cookie myCookie2 = new Cookie("color","black");
     res.addCookie(myCookie1);
     res.addCookie(myCookie2);
     pw.println(myCookie1);
     pw.println(myCookie2);
     pw.println("Cookie已创建!");
     }catch(IOException e){
     e.printStackTrace();
     }    }
    public void doPost(HttpServletRequest req,HttpServletResponse res){
     this.doGet(req,res);
    }
}然后这样写获取cookie:package com.wjf;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;public class CreateCookies2 extends HttpServlet{    public void doGet(HttpServletRequest req,HttpServletResponse res){
     try{
     res.setContentType("text/html;charset=gbk");
     PrintWriter pw = res.getWriter();
            Cookie[] allCookies = req.getCookies();
            if(allCookies != null){
             for(int i=0;i<allCookies.length;i++){
             Cookie temp = allCookies[i];
             pw.println(temp.getName()+"="+temp.getValue());
             }
            }else{
             pw.println("不存在Cookies!");
            }
     }catch(IOException e){
     e.printStackTrace();
     }    }
    public void doPost(HttpServletRequest req,HttpServletResponse res){
     this.doGet(req,res);
    }
}
打印:color=black请问为什么打印不出color=red?怎样才能打印出来啊?

解决方案 »

  1.   

     Cookie myCookie1 = new Cookie("color","red");
     Cookie myCookie2 = new Cookie("color","black");Cookie其实是键值对,难道是因为两个key值(color)相同?lz把key值换一下,按说new了两次不应该啊。
      

  2.   

    哦,对的,是这样的,谢谢你。
    还有就是再问一下,如果没有设置cookie的保存时间,就是setMaxAge();这个函数不设置,cookie好像不会保存到磁盘的文件夹里,但第二个程序还能得到cookie里面的值,请问为什么啊?
      

  3.   

    Cookie myCookie2 = new Cookie("color","black"); 一个属性设置2遍 当然会覆盖掉
      

  4.   

    你应该是同一个用户在同一浏览器上所发出的两个请求,也就说是在同一个会话中,servlet生命周期还没有结束,会话管理器会操作该Cookie,所以你能获取到。