1

我有两个基于 struts 1.3 框架的应用程序并部署到 glassfish 服务器 3.1.2

app-1 有自己的 url http:localhost:8080/app-1

&

app-2 有自己的 url http:localhost:8080/app-2

功能:app-1 & app-2 支持多种语言。用户通过 app-1 登录并为所选语言设置 cookie。

后来,从 app-1 到 app-2 有几个 href。href 更通用。根据在 app-1 选择的语言到达 app-2 后,将显示各种页面。

问题是, app-2 如何知道 app-1 中选择的语言是什么?如何将 app-1 设置的 cookie 设置为 app-2 ?或者还有其他选择吗?

4

2 回答 2

2

在创建 cookie 时将pathCookie 中的属性设置为。/Servlet 3.0 提供了应用程序设置cookie 属性的API。

如果设置了路径(应用程序上下文根),则仅当 url 以该路径开头时才会发送 cookie。将其设置为/将使浏览器能够为该域内的所有应用程序发送 cookie。

Java 文档:setPath ......

public void setPath(java.lang.String uri)
指定客户端应返回 cookie 的 cookie 路径。

该 cookie 对您指定的目录中的所有页面以及该目录的子目录中的所有页面都是可见的。cookie 的路径必须包含设置 cookie 的 servlet,例如 /catalog,它使 cookie 对服务器上 /catalog 下的所有目录可见。

有关为 cookie 设置路径名的更多信息,请参阅 RFC 2109(可在 Internet 上获得)。

参数:uri - 指定路径的字符串

于 2013-03-27T06:41:35.880 回答
0

出于安全原因,似乎无法访问为不同路径设置的 cookie,即使它位于同一域中:

https://stackoverflow.com/a/1968108/1916098

您可以尝试另一种方法:如果两个 servlet 共享相同的上下文,您可以使用它 (ServletContext) 在它们之间共享信息。看这个:

如何在两个或多个 Servlet 之间共享变量或对象?

于 2013-03-27T00:42:28.080 回答