1

Cookie が無効になっている場合、サーブレット APIは URL の書き換えに頼ります。これを有効にするには、JSP で提供するすべての URL が内部c:urlにある必要があります。ただし、Struts 2には同等のタグs:urlがありますが、そのドキュメントには、URL 書き換え情報 (必要な場合) を URL に自動的に追加することについては何も記載されていません。この点でその動作は似てc:urlいますか、それとも Struts 2 で同じ効果を達成するための他の手段がありますか?

ここからStruts 2.1 URLタグリファレンスを使用しています

明確化: ユーザーが Cookie を無効にする場合、もう 1 つのオプションはjseesionid、ページにある各 URL に を追加することです。c:url私たちのためにそれを処理します。私の質問は、s:url私たちにとって同じことをするかどうかです。上記で提供したドキュメントのリンクに記載されていないので心配でした。

4

1 に答える 1

2

はい、struts2 もこれを行います。Cookie を無効にするだけで、セッション ID が URL に挿入されていることがわかります (s:a タグを使用する場合、URL タグはテストしていません)。これは URL の書き込みであるため、説明を追加していただければ幸いです。URL の書き換えは、URL がサーバーに入ると行われます。URL は通常、サーバー内の適切な場所にリダイレクトされるように特定のルールによって書き換えられます (これは、ここで起こっていることではありません)。

編集:Daudのおかげで、正しい用語はurl-rewitingです。これは、セッション管理がコンテナー レベルで処理されるためです。struts2 はセッションに含まれるものを操作できますが、「セッション マネージャー」オブジェクトを介してセッションを提供し、永続性を最適に管理する方法 (jSession ID の生成を含む) を決定するのはコンテナーです。 .

glassfishの詳細については、http : //docs.oracle.com/cd/E18930_01/html/821-2418/beaha.html#beahfを参照してください。

Tomcatの詳細については、 http : //tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Disable_Session_Persistenceを参照してください。

他のコンテナの場合は、単純にグーグル: Container_Name + "session manager"

于 2012-04-05T06:03:32.997 に答える