0

サーブレットと taglib で構成されるサードパーティ ソフトウェアを使用するように言われました。サーブレットは検索結果を生成し、taglib はサーブレットに従って結果とその他の対話要素をレンダリングします。

問題は、サードパーティのソリューションが http セッションで実装されていることです。つまり、サーブレットが検索を実行し、結果をセッションに保存し、リダイレクトをブラウザーに送信し、ビュー ページで (完全に別の http 要求内で) からの結果を送信します。セッションが表示されます。

これは複数のタブでは機能せず、他にもいくつかの欠点があるため、セッションを削除したいと思います。ただし、サーブレットと taglib は現状のまま提供されるため、別のものが必要な場合は、自分でゼロから実装する必要があります。

セッションが不要になるように、1回のリクエストでこれを実現する方法はありますか? 最良の場合、コードを変更せずにラッパーだけを使用します。サーバーがセッションを作成することを受け入れることができますが、ブラウザーがそれに依存することは望ましくありません。

私が持っている 1 つのアイデアは、リクエスト ディスパッチャを使用してサーブレット呼び出しとビューを 1 つの http リクエストで実行することですが、それでもソフトウェアはセッションを使用します。その後、リクエストごとにセッションを破棄できました。より良いアイデアは高く評価されます。

もちろん、私の要件に対するセッションなしで正しく実装するのが最善であることはわかっています。しかし、いつものように、私たちはあまり時間をかけないようにしています..

前もって感謝します、素敵な夜をお過ごしください ミシェル

4

1 に答える 1

0

それが最善の解決策ではないことはわかっていますが、HttpServletRequestHttpServletResponseをカスタムのものでラップするjavax.servlet.Filterを作成します。カスタム ラッパーでrequest.getSession()およびresponse.sendRedirect()メソッドをオーバーライドします。

そして、web.xmlファイルでプロパティ<filter-mapping>を定義して、フィルターを検索サーブレットと JSP に適用します。

于 2012-11-30T20:19:32.887 に答える