我做了一个简单的登录程序!!为L1,L2,L3三个页面!!
   L2中的cookie设置
     if(rs.next()){
             String keep =req.getParameter("keep");
             if(keep!=null){
            
             //将用户名和密码保存在COOKIE中!
             //创建
             Cookie name=new Cookie("username",u);
             Cookie pass=new Cookie("passwd",p);
             name.setMaxAge(14*24*3600);
             pass.setMaxAge(14*24*3600);
             //回写到客户端! 
                res.addCookie(name);
                res.addCookie(pass);
             }
            
               HttpSession hs=req.getSession(true);
               hs.setMaxInactiveInterval(30);
               hs.setAttribute("username",u);
res.sendRedirect("L3?username="+u+"&passwd"+p);L3中的COOKIE读取!
              if(myName==null){
             //session中没值,再检查cookie中的值!
             Cookie [] allCookies=req.getCookies();
             int i=0 ;
             if(allCookies!=null){  
              for(i=0;i<allCookies.length;i++){
               Cookie temp =allCookies[i];
               if(temp.getName().equals("username")){
                name = temp.getValue();
                }
               else if(temp.getName().equals("passwd")){
                pass = temp.getValue();
                }
              }
            if(!name.equals("")&&!pass.equals("")){
              //到L2中去验证
              res.sendRedirect("L2?username="+name+"&passwd"+pass);
              return;
              }
              }
             res.sendRedirect("L1");
             }不知道为什么不能成功!值传向L2后 就直接到了L1页面!望高手解决!

解决方案 »

  1.   

    给你个使用类参考下:
    public class CookieUnit {
    public CookieUnit() {
    }

    public static void addCookie(HttpServletResponse response){
    Cookie ck = new Cookie(Constant.COOKIEFLAG,"1");
    ck.setDomain(Constant.DOMAIN);
    ck.setPath("/");
    response.addCookie(ck);
    }

    public static boolean findCookie(String cookieName, HttpServletRequest request){
        Cookie[] cookies = request.getCookies();

    if(cookies == null){
    return false;
    }

    for (int i = 0; i < cookies.length; i++) {
    if (Constant.COOKIEFLAG.equals(cookies[i].getName()) && "1".equals(cookies[i].getValue())) {
    return true;
    }
    }

    return false;
    }

    public static void deleteCookie(HttpServletRequest request, HttpServletResponse response){
    Cookie[] cookies = request.getCookies();

    if(cookies != null && cookies.length >0){

    for (int i = 0; i < cookies.length; i++) {
    Cookie ck = new Cookie(Constant.COOKIEFLAG,null);
    ck.setDomain(Constant.DOMAIN);
    ck.setPath("/");
    ck.setMaxAge(0);
    response.addCookie(ck);
    }
    }


    }
    }
      

  2.   

      cookie 这东西还是少用点把,不可靠的
       因为客户端把cookie禁了,就起不了作用了啊
     
      

  3.   

    Cookie 不安全的 ,使用session比较好点。
      

  4.   

    session 用法参考:
    http://www.zhuoda.org/lunzi/20090.html
      

  5.   

    是不是你cookie不在同一域下,cookie同过地址获得的
      

  6.   

    原因是域不同
    方法是加入
    cookie.setDomain([网站根目录域名]);
      

  7.   

    能说的详细点吗?
    cookie.setDomain([网站根目录域名]);
      

  8.   


    怎么叫不在同一域下啊,我现在在整cookie,取值的时候总有问题,不在同一个文件夹下的页面cookie值不共用??