2

私の Web アプリケーションでは、注釈ベースのコントローラー (SPRING MVC) です。アプリケーションに SessionManagement を実装したかった

1.) アプリケーション内のどのページも 15 分間アイドル状態であってはなりません

2.) 通知のようなポップアップを 10 分目に開き、ユーザーにセッションの有効期限が切れたことを通知し、セッションをさらに 15 分延長するか、デフォルトでアプリケーションをログオフするオプションをユーザーに与える必要があります。

春のMVCには簡単な方法が必要だと思います(私は春の3.1を使用しています)。たとえば、コントローラーまたは applicationContext.xml に何らかの構成に注釈を付ける方法が必要です。何か方法があるに違いない!友人、方法を提案して助けてください。また、ここにサンプルを貼り付けていただければ非常に役立ちます。また、この sessionManagement の実装について順を追って説明していただけると大変助かります。

4

1 に答える 1

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 呼び出しをトリガーすると、セッションは自動的に何度も延長されます。

于 2012-01-11T18:51:15.140 に答える