栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Cookie&Session

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Cookie&Session

cookie&Session
  • cookie
  • Session
  • cookie和Session的区别

cookie
  • 概念:cookie,有时也用其复数形式 cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

cookie实现原理:

快速入门:

Java提供的操作cookie API:

使用setMaxAge方法设置cookie的有效期,所以当关闭浏览器之后,cookie就失效了,要想在关闭了浏览器之后,cookie依然有效,那么在创建cookie时,就要为cookie设置一个有效期。

//用户访问过之后重新设置用户的访问时间,存储到cookie中,然后发送到客户端浏览器
cookie cookie = new cookie("lastAccessTime", System.currentTimeMillis()+"");//创建一个cookie,cookie的名字是lastAccessTime
//设置cookie的有效期为1天
cookie.setMaxAge(24*60*60);
//将cookie对象添加到response对象中,这样服务器在输出response对象中的内容时就会把cookie也输出到客户端浏览器
response.addcookie(cookie);

cookie注意细节:
1.一个cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
2.一个WEB站点可以给一个WEB浏览器发送多个cookie,一个WEB浏览器也可以存储多个WEB站点提供的cookie。
3.浏览器一般只允许存放300个cookie,每个站点最多存放20个cookie,每个cookie的大小限制为4KB。
4.如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

5.cookie中存取中文
要想在cookie中存储中文,那么必须使用URLEncoder类里面的encode(String s, String enc)方法进行中文转码,例如对日期格式进行编码:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
    public static void main(String[] args) throws UnsupportedEncodingException {
        Date date  = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String str_date = sdf.format(date);
        System.out.println("编码前:"+str_date);
        //URL编码
        str_date = URLEncoder.encode(str_date,"utf-8");

        System.out.println("编码后:"+str_date);
    }
}

编码结果如下:

Session
  • 概念: 在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。简单来说,Session就是服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession

session实现原理:


快速入门:

Session细节:
1、 客户端不关闭,服务器关闭后,两次获取的session不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作
    1​.session的钝化:
            在服务器正常关闭之前,将session对象系列化到硬盘上
    2.session的活化:
            * 在服务器启动后,将session文件转化为内存中的session对象即可。

2、 session什么时候被销毁?
    1. 服务器关闭
    2. session对象调用invalidate() 。
    3. session默认失效时间 30分钟
            选择性配置修改
                
                         30
                

cookie和Session的区别
区别cookieSession
存在cookie是客户端技术,通常保存在客户端,即本地,IE浏览器把cookie信息保存在类似于C:windowscookies的目录下。因为cookie在客户端所以可以编辑伪造,不是十分安全Session是服务器端技术,在服务端,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务
存储数据只能存储 String 类型的对象能够存储任意的 java 对象
性能cookie存在客户端对服务器没影响Session过多时会消耗服务器资源,大型网站会有专门Session服务器
作用域cookie通过设置指定作用域只能在指定作用域有效Session在整个网页都有效
作用时间cookie可以通过 setMaxAge设置有效时间,即使浏览器关闭了仍然存在关闭网页Session就结束了
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号