用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是不允许改变的.
父页面为https的,子为http的.link所在页为https的.
link-> filter(session not null)-> 子页的初期化(为popupd页面)-> 父页的初期化-> filter(session is null;cookie not null)-> error 流程是这样的.不过filter是不允许改变的.
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);
}
}