3

旅行アプリを開発しています。このフライトを通じて、ホテル、バスのチケットが予約されます。製品ベースのアプリケーションです。ほぼ 25 のクライアントがあります (まだ開発中のため、3 つのクライアントが使用しています)。すべてのクライアントに対して 1 つのサーバーを維持しています。1 つのサーバー (アプリケーション) 複数のクライアントは、私のアプリケーションの大きな成果です。しかし、問題は、すべてのクライアントが EBS、HDFC、ICICI、ATOM などの送金用に異なる支払いゲートウェイを使用していることです。支払いゲートウェイ システムを呼び出すには sendRedriect() を使用する必要があります。

response.sendRedirect("hdfc link....");

リダイレクトする前に、ほぼ 7 ~ 9 個のオブジェクトをセッション スコープに保存しており、各オブジェクトにはほぼ 35 ~ 50 個の変数が含まれています。私のアプリケーションにリダイレクトされる支払いゲートウェイプロセスの完了後。セッションを受けようとすると

request.getSession();

数回(10回中5回)新しいセッションを作成しています。

リクエスト スコープに格納される変数は、私にとって非常に重要です。それらは非常に巨大であるため、データベースに保存できません。すべてのリクエストに対して、長さが 25 の乱数を生成しています。その乱数を使用して、セッション変数が保存されます。

session.setAttribute("flightStatus"+randomNumber, flightstatus object); 

したがって、以前のセッションを取り戻す方法と、以前のセッションが無効になり、新しいセッションが作成される理由を提案してください。

4

1 に答える 1

2

request.getSession(false) を使用する必要があると思います。新しいセッションを取得したくない場合。

このドキュメントを読んでください: request.getSession(false)

于 2012-06-26T15:08:37.163 に答える