用cookie的方法可行,不过被否了.因为当session为空,cookie不为空的时候进行session的再复值的话,因不能区分session timeout的情况.我现在情况是这样的.  
父页面为https的,子为http的.link所在页为https的.  
link->  filter(session not null)->  子页的初期化(为popupd页面)->  父页的初期化->  filter(session is null;cookie not null)->  error 流程是这样的.不过filter是不允许改变的.

解决方案 »

  1.   

    父页的初期化的时候:1>通过request取得原有cookice中的值,并把它赋到一个新的cookice数组中.
    FacesContext fc = FacesContext.getCurrentInstance();
    HttpServletRequest request =(HttpServletRequest)fc.getExternalContext().getRequest();
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
        for (Cookie cookie : cookies) {
    cookie.setPath("/");
     ((HttpServletResponse)fc.getExternalContext().getResponse()).addCookie(cookie);
         }
    }