ホームページ >ウェブフロントエンド >htmlチュートリアル >セッションの有効期限が切れたらログインページに移動_html/css_WEB-ITnose

セッションの有効期限が切れたらログインページに移動_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:52:071480ブラウズ

プロジェクトには自動ログアウト機能が必要です。インターネットの情報を参考にした後、最初に次のようにリスナーを設定する予定です

1. 次のコードをプロジェクトの web.xml ファイルに追加します。

?

?
1

2

3

4

リスナー パス

2. Java クラスを作成します。

1

2

3

4
5

6

7

8

9

10

11

12

13

14

15

16

17

public class SessionListener は HttpSessionListener を実装します {

public void sessionCreated(HttpSessionEvent ar g0) {

// セッション作成時に実行 SimpleDateFormat simpleFormat = new SimpleDateFormat("mm-ss -ms ");

String nowtimes = simpleFormat.format(new Date());
ユーザー u=null;

//System.out.println("実行。現在時刻: "+nowtimes+"_"+ u ); HttpSession ses= arg0.getSession();

String id=ses.getId()+"_"+ses.getCreationTime();

public void sessionDestroyed(HttpSessionEvent arg0) {

// session 失敗時に実行 SimpleDateFormat simpleFormat = new SimpleDateFormat("mm-ss-ms");

String nowtimes = simpleFormat.format(new Date()); //System.out.println("セッションが失敗しました。 。終了時刻: "+nowtimes); }

}

設定が完了してセッションが期限切れになったら、sessionDestroyed メソッドに入り、ページ ジャンプ操作を実行する準備をします。突然、その方法がわかりました。私は驚きました。オンラインで専門家に相談し続けたところ、この監視はバックグラウンドでの統計処理のためであり、ページ ジャンプ機能を実現できないことがわかりました

この方法を諦めてフィルターを使用するしかありません

1. web.xml にフィルター設定を追加します。

7

8
<フィルター> ;/filter-name&gt;

2. 新しい SessionFilter クラスを作成し、Filter インターフェイスを実装します。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

public class SessionFilterimplements Filter {

public void destroy() {

// TODO 自動生成メソッドスタブ }

public void doFilter(ServletRequest request, ServletResponse response,

FilterChainchain) throws IOException,例外 {

httpリクエストHttpSession セッション = httpRequest.getSession();ログインURL loginUrl .login.jsp";

文字列 URL = httpRequest.getRequestURI();

文字列パス = url.substring(url.lastIndexOf("/") ));

// タイムアウト処理、Ajax リクエストのタイムアウト設定タイムアウト ステータス、ページ リクエストがタイムアウトすると、プロンプトが返され、リダイレクトされます。 Request if (httpRequest .getHeader("x-requested-with") != null ️

httpResponse.addHeader("sessionstatus", "timeOut");p httpresponse.addheader( "loginpath"、loginurl); ';"; ("text/html;charset=UTF-8");// 中国語の文字化けを解決する writer.write(str);

Writer.flush();

Writer.close( ); }

}

@Override

public void init(FilterConfig arg0) throws ServletException {

}

3. Ajax リクエストセッションタイムアウトのクライアント JS

jquery の場合

?

1

2

3

4

5

6

7

8

9

10

11

12