【クッキー和セッション】

一つは、オブジェクトに対応する4つのドメインオブジェクト


ドメインオブジェクト 

オブジェクト 

スコープ

ServletContext  応用 ウェブ全体プロジェクトは、複数のサーブレットがデータを共有することができます。
 セッション    セッション     会話
 要求 要求チェーンたら、
PageContextの PageContextの 現在のページ。

注意:上から下、大から小への役割の範囲を。


二、クッキーとセッション  

1.cookie             

概要:

クッキー、ブラウザ技術は、ユーザデータを保存します。

使用します。

、ブラウザの応答に送信され、サーバー側で新しいクッキーオブジェクトを作成します。

         //创建クッキー
         クッキークッキー=新しいクッキー(「ユーザ名」、「トム」);
         クッキーcookie2 =新しいクッキー( "時間"、にSystem.currentTimeMillis()+ "");

        クッキーcookie3 =新しいクッキー(「ユーザ名」、「ジャック」)。

        //よりクッキー追加
         response.addCookie(クッキー);
         response.addCookie(Cookie2)を、

        //クッキーのキーと同じ名前のcookie3
         response.addCookie(cookie3)。

//注:応答は、最後に保存されたブラウザの値以上の場合、キーが繰り返された場合。

要求、ブラウザのクッキーがサーバーに送信されます

//クッキーの配列を取得
)(クッキー[]クッキー=のrequest.getCookiesを 。

System.out.println(クッキー);


//配列をループ
(クッキークッキー:クッキー)のための{
     のSystem.out.println(クッキー);
     //名前とクッキーの値を取得 
     するSystem.out.println(cookie.getNameを()+ "== " + cookie.getValue() );

}

クッキーの設定

時間:デフォルトのブラウザのクッキーが閉じて、セッションの終わりには、setMaxAge(秒)秒値のライフタイムで消えます。

    //创建
      クッキーC =新しいクッキー( "時間"、のSystem.currentTimeMillis()+ "");

     //時間を設定
       // 60秒、1分、c.setMaxAge(60)


       //応答に加え
       response.addCookie(C)。

パス:デフォルトでは、現在のアプリケーションがクッキーを生成し、現在のWebアプリケーションのクッキーは、他のリソースがアクセスアプリケーションを提出される予定です。

クッキーのスクリーニングのためのパスを設定することにより、SETPATH(パス)。

          // 设置 cookie
         Cookie cookie = new Cookie("password" , "abcdef");
         // 设置 cookie 路径
         cookie.setPath("/web11/aaa");
         response.addCookie(cookie);

// 注意 : 路径写成 绝对路径, /web11  开始

删除Cookie

         // 创建  Cookie
         Cookie username = new Cookie("username", "");

        //1. 设置时间为0
         username.setMaxAge(0);


         //  2.路径一致 ,默认路径可以省略

       
         // 3. 响应携带
         response.addCookie(username);

2.Session

概述 :

Session, 服务器保存用户数据的技术

使用 :

获取session , 依靠request的getSession . Session 对象服务器创建 , 通过 request获取,

当getSession 方法时, 判断请求中,是否有JSESSIONID, 如果没有,必然创建新的session .

如果有JSESSIONID ,通过id查询对应Session ,找到了就返给你, 找不到 创建新的session .

代码演示:

存储数据

       // 获取Session
         HttpSession session = request.getSession();

        // 保存数据
         session.setAttribute("username" , "tom");

获取数据

       // 获取 session
        HttpSession session = request.getSession();

       // 获取  数据 ,通过 key 获取value 
        Object username = session.getAttribute("username");

       System.out.println(username);

session持久化

依靠cookie生命的延长 , 保证 JSESSIONID 存在 ,所以 可以 关闭浏览器,依然访问Session

     

session持久化

        // 1. 获取 session
        HttpSession session = request.getSession();

       // 2. 获取 JSESSIONID
        String id = session.getId();
        System.out.println(id);

       // 3. 把 id 保存 一个 Cookie中  , 键 名称 必须 JSESSIONID
        Cookie c = new Cookie("JSESSIONID", id);

       // 4. 设置时间
       c.setMaxAge(60 * 60 );

       // 5.  response 响应 到浏览器
       response.addCookie(c);

cookie和session区别

cookie

session

保存位置

浏览器

服务器

数据类型

String

对象

安全行

不安全

安全









おすすめ

転載: www.cnblogs.com/hujunwei/p/10951105.html