要求セッションアプリケーション


セッションは2.requestアプリケーション
    サーバー内のこれらの3つのオブジェクトの2.1は、データと転送データ保存私たちを助けることができる
                  種類(インタフェース)オブジェクト名
           のHttpServletRequest要求
           HttpSessionのセッション
           のServletContextアプリケーション

    でこれらの3つのオブジェクトを取得する方法2.2のdoGetやdoPostメソッド
        リクエストオブジェクト
            のdoGet内をdoPostメソッドパラメータまたは
        セッションオブジェクト
            のHttpSessionセッションでrequest.getSession =();
        ファイルアプリケーションは、オブジェクト
            request.getServletContextを();
            又は
            this.getServletContext();
            または
            でrequest.getSession()のgetServletContext();
            または
            this.getServletConfig()のgetServletContext();.

        注:いずれにせよ、アプリケーションオブジェクトが同じである取得

    3つの2.3スコープとオブジェクトのライフサイクル
        のリクエストオブジェクト
            :ライフサイクル
                ごとにクライアント要求サーバーは、訪問終了後、リクエストオブジェクトが破壊され、新しいリクエストオブジェクトを作成します
            :スコープ
                内部サーバー要求/ストア・データを使用するだけで、そのようなジャンプの要求に役割を果たすことができます(内部ジャンプのクライアントが一つだけ要求を送信しているため)。
            注:クライアントが複数の要求(より新しいリクエストオブジェクト)を発行するためにリダイレクトされるため、クライアントのリダイレクトは、仕事をしない

        セッションオブジェクト(セッション)の
            セッションオブジェクトを取得するには三つの方法:

            //要求は、対応するセッションを持っている場合は該当するセッション要求がない場合、このセッションが返され、それが新しいセッションとリターンを作成
            HttpSessionのセッションを=でrequest.getSession(trueに);

            //対応する要求があった場合該当するセッション要求は、それがnullを返さない場合、セッションは、セッションは、返されます
            セッション=でrequest.getSessionのHttpSession(偽);

            //でrequest.getSessionと同等の(真の);
            HttpSessionのセッション=でrequest.getSession();

            ライフサイクル:
                最初のセッションオブジェクトが呼び出される作成のgetSession()メソッド。

                session.invalidate()の呼び出しがときに、セッションの破壊されます

                自動タイムアウトは、その後、破壊される場合は、セッションを
                30分のセッションのデフォルトのタイムアウト
                セッションタイムアウトは、web.xml内のコードまたはセットに設定することができ
                    、コードの設定:セッション。 setMaxInactiveInterval(5); 5秒

                    設けのweb.xml:
                        無期限のための1分のタイムアウト、負または0
                        の<session-config>の  
                            <-theセッションタイムアウト> 1 </ -セッションタイムアウト>。  
                        </セッション-config>の
                セッションタイムアウトはを参照:クライアントは、タイムサーバと相互作用しない

            範囲:
                。セッション要求での作業セッションは、セッション内のデータを複数の要求を持つことができ、複数のリクエストで共有することができます。
            
            思考は:各リクエストオブジェクトが作成された後、サーバーのノウハウがこの要求し、セッションオブジェクトに相当するか?
            
            注:サーバーは、通常のセッション(セッションオブジェクトに影響を与え、不適切に閉じられ、閉じていることを注意をシリアル化します問題)
 非正規のシャットダウンのTomcat、Tomcatのセッションはハードドライブに保存されます、シリアライズセッション後にファイルに保存し、サーバはデシリアライズ再び開始すると、そのセッションは極めて反直列化されます
            
        アプリケーションがオブジェクト
            のServletContextがありますアプリケーションコンテキスト/サーブレットコンテキストと呼ばれる
            ライフサイクル:
                サーバー時間TOMCAT起動し、それが作成される
                クローズドTomcatサーバーを、彼らが破壊される
                と、実行中の各項目は、1つのみのアプリケーションオブジェクトが存在します

            範囲:動作中のプロジェクト全体、唯一のアプリケーションオブジェクトは、このオブジェクトは、すべてのユーザーによって共有されているので、誰もがこのプロジェクトは一つだけであるので、オブジェクトへのチャンスできるオブジェクトの値を維持することができます


    2.3これら3つのオブジェクト/ストア・データ
        記憶されている値:
        request.setAttribute( "キー"値)
        にsession.setAttribute( "キー"、値);
        application.setAttribute( "キー"、値);
        
        値:
        request.getAttribute ( "キー");
        session.getAttribute( "キー");
        application.getAttribute( "キー")。

おすすめ

転載: www.cnblogs.com/yxj808/p/12018621.html