セッションTechnology_Session_Details

  セッションの詳細:

1.クライアントが閉じられているとき、サーバーは閉じられていません。同じセッションが2回取得されていますか?

     ①デフォルトではありません。

    ②要件が同じであれば、Cookieを作成し、キーはJSESSIONIDで、最大存続時間を設定し、Cookieを永続化することができます。

          Cookie ck = new Cookie( "JSESSIONID"、session.getId());

         ck.setMaxAge(60 * 60);

         response.addCookie(ck);

package jason.lh.session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

import java.io.IOException;


@WebServlet("/SessionDemo3")
public class SessionDemo3 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
           //获取session
        HttpSession session = request.getSession();
        System.out.println(session);

        //期望客户端关闭后,session也能相同
        Cookie ck = new Cookie("JSESSIONID",session.getId());
        ck.setMaxAge(60*60);
        response.addCookie(ck);


    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

 

2.サーバーを閉じた後、クライアントが閉じない場合、同じセッションが2回取得されますか?

  同じではありませんが、データが失われないようにしてください

(この場合、データが失われる可能性があります。たとえば、ショッピングカートへのアイテムの追加がまだ確定していません。サーバーを再起動すると、データが失われる可能性があります)

 

セッションのパッシベーション:

サーバーが正常にシャットダウンする前に、セッションオブジェクトをハードディスクにシリアル化します

セッションのアクティブ化:

サーバーの起動後、セッションファイルをメモリ内のセッションオブジェクトに変換します。

 

##(Tomcatサーバーはすでにパッシベーションとアクティベーションを完了しているので、それについて考える必要はありません

アイデアで行うことはできず、不動態化することはできますが、アクティブ化することはできません)-操作(20_Session Technology_Session_Detail 2)

【ローカルハードディスクの操作】

 

3.セッションの有効期限は?

   ①サーバーがオフになっている

   ②セッションオブジェクトはinvalidate()を呼び出します。

   ③セッションのデフォルトの有効期限は30分です。

  D:\ apache-tomcat-9.0.22 \ conf \ web.xmlの下

  構成の変更

     <session-config>

    <session-timeout> 30 </ session-timeout>

    </ session-config>

 

4.セッションの特徴

①セッションは、セッションに対する複数のリクエストのデータを保存するために使用され、サーバー側に存在します

②セッションは、あらゆるタイプとサイズのデータ​​を保存できます

おすすめ

転載: blog.csdn.net/Jason_LH1024/article/details/102891637