この記事では、セッションの有効期限が切れた後にログインページに自動的にジャンプするJava Web実装関数について説明します。次のように、参照のために共有してください。
フィルターを介して、セッションが失効した後、セッションは自動的にログインページにジャンプします。
フィルターは、サーブレット仕様バージョン2.3と互換性のあるサーバーでのみ便利です。 Webアプリケーションがレガシーサーバーをサポートする必要がある場合は、フィルターを使用できません。
1.基本的なフィルターを確立します
フィルターを確立するには、次の5つのステップが含まれます。
1)フィルターインターフェイスを実装するクラスセッションフィルターを確立します。このクラスには、Dofilter、init、Destroyの3つの方法が必要です。 DOFILTERメソッドには、メインフィルタリングコード、initメソッドが設定操作を確立し、破壊方法がクリーンアップされます。
2)DoFilterメソッドにフィルタリング動作を配置します。 DoFilterメソッドの最初のパラメーターは、ServletRequestオブジェクトです。このオブジェクトは、フォームデータ、Cookie、HTTPリクエストヘッダーなど、着信情報への完全なアクセスをフィルターに提供します。 2番目のパラメーターはservletResponseです。これは通常、単純なフィルターでは無視されます。最後のパラメーターは、次のステップで説明されているように、サーブレットまたはJSPページを呼び出すために使用されるフィルターチェーンです。
3)SessionFilterオブジェクトのDoFilterメソッドを呼び出します。フィルターインターフェイスのDoFilterメソッドは、フィルターチェーンオブジェクトをパラメーターとして取得します。このオブジェクトのDoFilterメソッドを呼び出すと、次の関連フィルターがアクティブになります。他のフィルターがサーブレットまたはJSPページに関連付けられていない場合、サーブレットまたはJSPページがアクティブになります。
4)対応するサーブレットとJSPページのフィルターを登録します。展開記述子ファイル(web.xml)にフィルターマッピング要素とフィルターマッピング要素を使用します。
5)アクティベーターサーブレットを無効にします。デフォルトのサーブレットURLを使用して、ユーザーがフィルター設定をバイパスできないようにします。
ソースコードは次のとおりです。
パッケージcom.base.filter; import java.io.ioexception; import javax.servlet.filter; import javax.servlet.filterchain; Import javax.servlet.filterconfig; Import javax.servlet.Servletexception; javax.servlet.http.httpservletrequest;インポートjavax.servlet.http.httpservletresponse;インポートjavax.servlet.http.httssession; Import com.base.constants.sessionkeyconstants; Impont com.mvc.mvc.mvc.mvc。 //リソースをリリースして破壊します} / ** *いくつかのURLは、アクセスにログインする必要があります(セッション検証フィルター) httpservletResponse応答=(httpservletResponse)arg1; httpsession session = request.getSession(); //セッションの有効期限が切れるかどうかを判断((user)session.getattribute(sessionkeyconstants.login)== null){string errors = "あなたはまだログインしていないか、セッションが期限切れです。最初にログインしてください!"; request.setattribute( "Message"、errors); //ログインページにスキップrequest.getRequestDispatcher( "/login.jsp")。 } else {arg2.dofilter(request、response); }} public void init(filterconfig arg0)servletexceptionをスローします{//操作を初期化し、web.xmlのフィルター構成の初期化パラメーターを読み取り、この方法を使用しない要件を満たしていません}}}2。web.xml構成ファイルで構成します
<! - セッションの有効期限を30分に設定する - > <Session-Config> <Session-TimeOut> 30 </session-timeout> </session-config> <! - セッションフィルター構成関連 - > <filter> <filter-name> sessionfilter </filter-name> <filter-name> <filter-class> <url-pattern>/contract/*</url-pattern> <url-pattern>/user/*</url-pattern> <dispatcher> </dispatcher> <! - リクエストが/契約/…または/user/…で始まり、要求の派遣者の前方方式を通過するか、クライアントに直接通り過ぎます。 - > <Dispatcher>リクエスト</dispatcher> </filter-mapping>
Java関連のコンテンツの詳細については、このサイトのトピックをご覧ください:「Javaデータ構造とアルゴリズムのチュートリアル」、「Javaファイルの概要とディレクトリ操作スキル」、「Java操作DOMノードスキルの概要」、「Javaキャッシュ操作スキルの概要」
この記事がみんなのJavaプログラミングに役立つことを願っています。