2012-01-11 22 views
2

私のWebアプリケーションでは、アノテーションベースのコントローラ(SPRING MVC)です。私は、アプリケーション内の任意のページには、15分Spring 3.1 MVCフレームワークセッション管理

2)ポップアップが開かれるべき

、種類-の通知、で10分間アイドル状態にすべきではない私のアプリケーション

1)でSessionManagementを実装したかったですユーザにセッションの期限切れを通知し、セッションを15分延長するか、デフォルトでアプリケーションはログオフする必要があります。

私はこれをSpring MVCで簡単に行う必要があると信じていますスプリング3.1)。たとえば、コントローラに注釈を付けるための方法や、applicationContext.xmlの設定が必要です。何らかの方法が必要です!友人、方法を提案することによって私を助けてください、また、ここにサンプルを貼り付けると大きな助けになるでしょう。また、このセッション管理のために段階的に私を案内できるなら、大きな助けになるでしょう。

答えて

3

ここでは、Spring MVCはほとんど行いません。セッションタイムアウトが15分に設定されているとします。単にあなたのサイト上のすべてのページに次のJavaScriptコードを配置し、ページがロードされた後、それを実行します。

function expireWarning() { 
    if(confirm("Your session will expire in 5 minutes, extend?")) { 
     $.ajax('/echo/json/'); 
     setTimeout(expireWarning, 10 * 60 * 1000); 
    } 
} 

setTimeout(expireWarning, 10 * 60 * 1000); 

それだそれ! 10分後にポップアップが表示されます。ユーザーが確認すると、AJAXリクエストがサーバーに送信され、自動的にセッションが延長されます。その後、カウンタは、さらに10分後にユーザに尋ねるように再スケジューリングされる。

サーバー上のAJAXターゲットは何もする必要はありません。この呼び出しの唯一の目的は、ユーザーがこのセッショントークンをまだ使用していることをコンテナに伝えることです。

もう1つのヒント:サイトで既にAJAXを使用している場合は、すべてのAJAXコールでセッションが延長されるため、すべてのコール後にタイムアウトを変更する必要があります。ユーザーがサイトに滞在してAJAX呼び出しを多数トリガーすると、セッションは自動的に何度も繰り返し実行されます。

+0

ありがとうTomoasz。ここでは、ポップアップの生成方法について私に提案しましたが、私の質問は、アプリケーションでセッション全体を管理する方法です。 SessionManagement実装について話しています – Arun

+1

@Arun:私のソリューションには何が欠けていますか?すべてのページにこの簡単なコードスニペットを入れて、2)のケースを完全に処理します。 'ajax()'コールは実際にセッションを延長します.15分以内にサーバーに電話をかけると、セッションは自動的に期限切れになり、効果的にユーザーをログアウトします。 –

+1

@Arun他に何が必要ですか?具体的にしてください。 Springセッションには特別なことは何もありません。どこでも同じです。これらはJSessionIDで管理されます。あなたはログイン/ログアウトについて話していますか? –

関連する問題