日期:2014-05-20  浏览次数:20719 次

关于JSP使用cookie在页面间传递数据的问题,没法传
我在A.jsp 中写了cookie的设置语句:Cookie cookie1=new Cookie("username",username);
Cookie cookie2=new Cookie("password",password);
cookie1.setMaxAge(2*60*60);
cookie2.setMaxAge(2*60*60);
  response.addCookie(cookie1);
response.addCookie(cookie2);
  分别是在界面上给username和password传递数据

  然后,我在B.jsp中写了cookie的获取语句:Cookie[] cookies=request.getCookies();
  for (int i=0;i<cookies.length;i++)
  {
  Cookie c=cookies[i];
  if(c.getName().equals("username"))
  username=c.getValue();
  if(c.getName().equals("password"))
  password=c.getValue();
  }
  可是,没有取出数据,为什么啊???我在A.jsp中试着System.out.println了一下cookie1,cookie2,都能正确取出名字和值啊
  恳请高手请教!!!

------解决方案--------------------
Cookie默认是对保存cookie的页面存的数据,要对整个网站保存Cookie用cookie1.setPath("/");
------解决方案--------------------
1 a/b 2个jsp在一个目录吗? 跨域是不能访问的
2 response.addCookie 不能在页面前面已经有大量输出的时候用,请尽量将他提前
3 用firefox + firebug 调试一下,看看cookie到底是否生成