如何在java中使用跨域cookie或会话

时间:2013-10-16 07:58:22

标签: java pdk

我正在使用pdk jdeveloper portlet。

我已经在主机www.test1.com:8080/

的tomcat服务器上部署了ear

现在我在oracle服务器上使用它的提供程序,它具有相同的主机但不同的端口,如www.test1.com:9090/

所以这里我无法在www.test1.com:9090/

上使用cookie或会话

我使用javascript设置了cookie,如下所示:

function setCookie(c_name,value,exdays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

setCookie("USER","test",365);

现在尝试在portlet页面上获取此cookie,如下所示。

 PortletRenderRequest pReq = (PortletRenderRequest)
    request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
    try 1: Cookie[] cookies =request.getCookies(); // get null
    try 2: Cookie[] cookies = (Cookie[])pReq.getCookies(); // get null

我怎样才能做到这一点?请帮忙。

1 个答案:

答案 0 :(得分:0)

您必须在Cookie上设置域名。 link,这给你一个良好的开端。我读了这篇文章,发现它很容易跨子域共享cookie,但很难在不同的域中共享它。这也很有用link