1

Struts 1.3フレームワークに基づいて、Glassfishサーバー3.1.2にデプロイされた2つのアプリケーションがあります。

app-1には独自のURLhttp:localhost:8080/app-1があります

app-2には独自のURLhttp: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からapp-2にCookieを設定するにはどうすればよいですか?または他のオプションはありますか?

4

2 に答える 2

2

Cookieの作成中pathにCookieの属性をに設定します。/サーブレット3.0は、アプリケーションごとにCookie属性を設定するためのAPIを提供します。

パス(アプリケーションコンテキストルート)が設定されている場合、URLがそのパスで始まる場合にのみCookieが送信されます。に設定する/と、ブラウザはそのドメイン内のすべてのアプリケーションのCookieを送信できるようになります。

Java Doc:setPath.....。

public void setPath(java.lang.String uri)
クライアントがCookieを返す必要があるCookieのパスを指定します。

Cookieは、指定したディレクトリ内のすべてのページと、そのディレクトリのサブディレクトリ内のすべてのページに表示されます。Cookieのパスには、Cookieを設定するサーブレット(たとえば、/ catalog)を含める必要があります。これにより、サーバー上の/catalogの下のすべてのディレクトリにCookieが表示されます。

Cookieのパス名の設定の詳細については、RFC 2109(インターネットで入手可能)を参照してください。

パラメータ:uri-パスを指定する文字列

于 2013-03-27T06:41:35.880 に答える
0

セキュリティ上の理由から、同じドメインにある場合でも、別のパスに設定されたCookieにアクセスできないようです。

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

別のアプローチを試すことができます。2つのサーブレットが同じコンテキストを共有している場合は、それ(ServletContext)を使用してそれらの間で情報を共有できます。これを見てください:

2つ以上のサーブレット間で変数またはオブジェクトを共有するにはどうすればよいですか?

于 2013-03-27T00:42:28.080 に答える