ホームページ >ウェブフロントエンド >htmlチュートリアル >セッションの有効期限が切れたらログインページに移動_html/css_WEB-ITnose
プロジェクトには自動ログアウト機能が必要です。インターネットの情報を参考にした後、最初に次のようにリスナーを設定する予定です
1. 次のコードをプロジェクトの web.xml ファイルに追加します。
?
1 2 3 4
|
リスナー パス 2. Java クラスを作成します。
| ?
1
2
3
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 にフィルター設定を追加します。 78 |
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
$.ajax({ url:"test.html",
|