转自: http://wangcheng.javaeye.com/blog/182124
在Facebook上使用iframe方式开发web app,用Firefox测试没问题,用IE7测试丢失session.
解决方法是设置 response.addHeader("P3P","CP=CAO PSA OUR");
详情参考
http://zwchen.javaeye.com/blog/52196
http://hi.baidu.com/focux/blog/item/703ba711461f4a7eca80c4b3.html
http://www.javaeye.com/topic/94336
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.LogFactory;
public class KeepSessionFilter implements Filter {
/**
*
*/
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static org.apache.commons.logging.Log logWriter = LogFactory
.getLog(TransNameFilter.class.getName());
public KeepSessionFilter() {
super();
}
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse res = (HttpServletResponse) response;
// iframe引起的内部cookie丢失
res.setHeader("P3P", "CP=CAO PSA OUR");
if (chain != null)
chain.doFilter(request, response);
}
public void destroy() {
}
}