0

古いWebサイト(servlets、JSP、Struts)があります。現在、セッション管理はCookieを使用して処理されています。このサイトを再設計して、ブラウザに依存しないようにしたかったのです。

別のURLの書き換えがあることは知っていますが、これは、アプリケーション内のすべてのURLを書き換え(エンコード)することはできません。

コードにあまり影響を与えないソリューションを探しています。誰かが実行可能な解決策を持っているなら、私に提案してください。それは私にとって大きな助けになるでしょう。

4

3 に答える 3

1

これは意味がありません。URL書き換えを使用するだけです。そうでなければ、基本的に全体のHttpSession概念を再発明することになります。を使用するコードのすべての行を変更する必要がありますHttpSession。これには、URL書き換えを利用するためにWebアプリを修正するよりもはるかに多くの時間が必要になります。弾丸をかじって、これを学んだ教訓としてとらえ、 Cookieをサポートしないブラウザのサポートを必要とする将来のプロジェクトでURL書き換えを行わないという同じ過ちを犯さないようにしてください。

于 2011-09-26T21:28:51.367 に答える
0

私が想像できる限り、URL または Cookie のセッション トークン以外に 3 番目のオプションが 1 つだけあります。

セッショントークンを含むすべてのページに非表示のフォームフィールドを配置し、サーバーへのすべてのリクエストは、非表示のフィールド値を含むフォーム送信である必要があります。

于 2011-09-26T21:21:02.287 に答える
0

私の観点からは、ブラウザーの非依存性のみを最適化する場合 (GET による暗黙的なセッションを除く)、Cookie は既に最適なソリューションです。

すべての a.href を javascript で書き換えて、セッション ハッシュをパラメーターとして追加します。

Cookie は JavaScript のサポートよりも広く普及しているため、真のブラウザー非依存性を求める場合、これは解決策にはなりません。より大きなデータのチャンクを LocalStorage に格納できます。

sessionStorage.setItem("key", "value");

var key_value = sessionStorage.getItem("key");

セットアップが簡単で、クライアント側のセッション データが大きい場合はかなり高速です。ただし、サーバー側でセッションを実際に追跡するには、POST/GET AJAX 呼び出しを介してサーバーにデータを送信する必要があります。

クッキーは敵ではなく味方であるべきです。

于 2011-09-26T21:37:23.130 に答える