在请求一个servlet的时候,写了cookie,然后重定向到某一个页面,但是在该页面没有获得上一个servlet请求写的cookie注:他们在同一个域名下

解决方案 »

  1.   

    cookie需要请求才能得到。需要的数据要不放在session等的其他范围里,要不使用&传参,要不把cookie请求给服务器,跳转后再重发cookie(最后一种有点绕)
      

  2.   

    servlet中写入cookie:
    Cookie cookie = new Cookie("username","headsen");
    response.addCookie(cookie);
    request.getRequestDispatcher("cookies/testCookies.jsp").forward(request, response);JSP中读取cookies  testCookies.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    Cookie[] cs = request.getCookies();
    for(int i=0;i<cs.length;i++){
    System.out.println(cs[i].getName());
    if("username".equalsIgnoreCase(cs[i].getName())){
    out.println(cs[i].getValue());
    System.out.println(cs[i].getValue());
    }
    }
    %>  <script type="text/javascript">
            alert(getCookieName("username"));
       function getCookieName(name){
         var key = name+"=";
         var cs = document.cookie;
      if(cs.length>0){
           var offset=cs.indexOf(key);
           if(offset!=-1){
             offset += key.length ;
                  end = cs.indexOf(";", offset) 
                  if(end == -1) end = cs.length ;
                  return cs.substring(offset, end);
                  }
         }
         return "";
       }
      </script>在JSP中前面是使用request对象获取,后面是使用JS获取,两种方法。