• 05-【session、cookie】


    session、cookie

    1、HttpSession概述
    >HttpSession是由JavaWeb提供的,用来会话跟踪的类。session是服务器端对象,保存在服务器端!!!
    >HttpSession是Servlet三大域对象之一(request、session、application(ServletContext)),所以它也有setAttribute()、getAttribute()、removeAttribute()方法
    >HttpSession底层依赖Cookie,或是URL重写!
    session技术:保存用户信息的技术, session是服务器端保存用户数据的技术
    使用session前先获取session:
    ①Servlet中获取session对象:HttpSession session = request.getSession();
    ②Jsp中得到session对象:session是jsp内置对象之下,不用创建就可以直接使用!
    session域相关方法:
    >void setAttribute(String name, Object value);存对象
    >Object getAttribute(String name);取出对象
    >void removeAttribute(String name);移除对象
    1、session 数据存储和获取 (跨请求存取数据)
    存数据:session.setAttribute("uname" ,"用户名的值");
    取数据:session.getAttribute("uname");
    2、session作用范围 :【一次会话】在一次会话内,所有的servlet和jsp共享 session对象中的数据 ,一次会话可以跨请求(跨页面)
       什么是一次会话:打开浏览器(同一个浏览器) => 访问web应用项目 => 浏览器关闭。就是一次会话【注意:不同的浏览器,属于不同的会话】
    3、session是否是同一个session。【通过sessionid去判断:session.getId();】
    4、session的应用:【session保存用户信息、session 统计在线用户数量】
    5、session的过期机制:帮助我们理解 session作用范围,存取值问题
    设定session过期机制的三种方式:
    ①web.xml中进行配置:tomcat -->conf-->web.xml【过期时间默认为30, 单位是分钟】

    1 <session-config>
    2     <session-timeout>30</session-timeout>
    3 </session-config>

    ②程序中设置过期时间【以秒为单位,过期时间(负值或0 永不过期)】 session.setMaxInactiveInterval(1); 
    ③ session.invalidate();方法 ,对session 中的对象解绑,session过期
    注:如果sesssion过期 ,那么 session.setAttibute("uname" ,"值");中存放的数据将获取不到

    2、Cookie机制:
      
    Cookie技术是一个浏览器端保存数据的技术,保存用户信息的机制【记住密码功能和购物车功能 cookie技术的典型应用】

    cookie工作原理:(熟悉)
    ①服务器端生成 cookie对象保存用户数据,
    ②将cookie对象放到 response对象中,响应给浏览器客户端,
    ③在浏览器客户端保存cookie(带有用户数据的)信息 ,
    ④在用户第二次访问web应用的时候,会把带有用户信息的cookie 通过request对象将用户名数据发送给服务器
    ⑤服务器解析request对象获取cookie信息
    3、session和cookie的区别:[session和cookie都可以保存用户信息]
    ①存储方式
    session以对象的形式存取
    session.setAttribute("uname" ,"value"); Object obj = session.getAttribute("uname");
    cookie数据存取形式,内部是字符串的形式存在的

    ②session存储机制,在服务器端存储用户数据;cookie是在客户端存储数据(服务器端只是生成和设置cookie)
    ③存储的数据量的问题
    cookie存放在客户端,只是存储少量数据
    存储大量数据,存放在服务器端session
    ④安全问题
    session更加安全 ,因为session存放在服务器上
    cookie存放在用户的浏览器客户端
    ⑤效率问题:session存取效率更高
    ⑥有效时间问题
     理论上,如果浏览器一直存在,存放在cookie中数据就一直存在(永久保存)。session 是一次会话,相对较短
    ⑦适合的场景:一些重要的数据 存放在session中;一些不是太重要的数据存放在cookie中.

  • 相关阅读:
    深度学习入门零基础笔记(一)一些相关链接
    华为云计算笔记(摘要略读,零基础)(九)(虚拟化特性介绍华为虚拟化产品特性)
    华为云计算笔记(摘要略读,零基础)(八)(虚拟化特性介绍-虚拟化特性)
    华为云计算笔记(摘要略读,零基础)(七)(虚拟化特性介绍集群特性介绍)
    华为云计算笔记(摘要略读,零基础)(六)(云计算存储基础介绍)
    华为云计算笔记(摘要略读,零基础)(五)(云计算网络基础介绍)
    华为云计算笔记(摘要略读,零基础)(四)(实验 FusionCompute安装)
    华为云计算笔记(摘要略读,零基础)(三)(KVM介绍、FusionCompute架构)
    华为云计算笔记(摘要略读,零基础)(一)(云计算介绍)
    基于kolla部署openstack
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9885856.html
Copyright © 2020-2023  润新知