会话技术cookie与session

目录

  • 会话技术cookie

    • 会话技术
  • cookie
    • 服务器怎样把Cookie写 给客户端
    • 服务器如何获取客户端携带的cookie
  • session
    • session简介
    • Session如何办到在一个servlet当中存数据,
    • 如何获取Session对象
    • 怎样向session当中存取数据
    • session的生命周期
    • JsessioID持久化

会话技术cookie

会话技术

? 什么是会话

  • 用户开一个浏览器
  • 点击多个超链接,访问服务器多个web资源
  • 然后关闭浏览器,整个过程称之为一个会话。
  • 和打电话一样,电话接收,开始会话,电话 挂断,结束会话

? 会话技术解决什么问题

  • 保持各个客户端自己的数据
  • 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据

cookie

服务器怎样把Cookie写 给客户端

创建Cookie

  • Cookie cookie = new Cookie(String cookieName,String cookieValue);
  • cookie会以响应头的形式发送给客户端
  • Cookie只能存储非中文的字符串

向客户端发送cookie

? response.addCookie(cookie名称)

访问

  • 第一次访问时, 请求头当中没有cookie, 响应当中会看到set-cookie
  • 再一次访问时, 请求头当中就能够看到cookie信息
  • 访问服务器的任何资源,一般情况下都会把cookie带去过

Cookie默认存储时间

? 默认cookie的会话级别

  • 打开浏览器,关闭浏览器为一次会话
  • 如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭,cookie信息销毁

? 设置Cookie在客户端的存储时间

  • cookie.setMaxAge(int seconds);
  • 设置的时间为秒
  • 如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里
  • 过期会自动删除

设置Cookie的携带路径

  • 访问某一个资源时,要不要带cookie信息。资源携带太多,会影响传输速度
  • 如果不设置携带路径
  • 默认情况下会在访问创建cookie的web资源相同的路径,都携带cookie信息
    在myxq/CookieServlet下创建的cookie

在myxq/下的index.jsp访问时会携带cookie

不是在myxq下,不会携带cookie

设置携带路径

cookie.setPath(String path);

  • cookie.setPath(“/CookiePro/cookieServlet”);只有访问cookieServlet才携带cookie信息
  • cookie.setPath(“/CookiePro”);访问指定的工程时, 都会携带cookie信息
  • cookie.setPath(“/”);访问服务器下部署的所有工程时都会携带cookie

删除Cookie

  • 如果想删除客户端的已经存储的cookie信息
  • 使用同名同路径的持久化时间为0的cookie进行覆盖即可

服务器如何获取客户端携带的cookie

  • 通过Request对象的getCookies()方法
  • 获取的是所有的cookie
  • 要进行遍历,找出自己名称的那一个

?

应用:记录上次登录时间

? 需求
? 访问时,显示上次的登录时间
? 步骤
? 1.第一次访问时,获取当前的时间,并把它写到cookie当中,响应给浏览器
? 2.第一次访问,告诉用户是第一次访问
? 3.用户下次访问时,获取用户携带的cookie,把日期在浏览器当中显示,记录最新的cookie

session

session简介

  • Session技术是将数据存储在服务器端的技术
  • 会为每个客户端都创建一块内存空间存储客户的数据
  • 客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间
  • Session需要借助于Cookie存储客户的唯一性标识SESSIONID

Session如何办到在一个servlet当中存数据,

  • 在别的servlet当中取出当初存储的数据
  • 每一个用户访问服务器时,会给该用户分配他自己对应的存储空间
  • 并且创建的存储空间有一个编号我们称为SessionID
  • 第一次访问时, 会把对应的sessionID以Cookie的形式写给浏览器
  • 下次再访问时, 会携带sessionID,找到当初创建的那个存储空间
  • 在对应的存储空间当中取出数据

如何获取Session对象

HttpSession session = request.getSession();
获得专属于当前会话的Session对象
如果服务器端没有该会话的Session对象,会创建一个新的Session返回
如果已经有了属于该会话的Session直接将已有的Session返回
本质就是根据SESSIONID判断该客户端是否在服务器上已经存在session了

怎样向session当中存取数据

? Session对象也是一个域对象

  • session.setAttribute(String name,Object obj);
  • session.getAttribute(String name);
  • session.removeAttribute(String name);

session的生命周期

? 创建
? 第一次执行request.getSession()时创建
? 销毁

  • 服务器关闭时
  • session过期/失效(默认30分钟)
  • 是从最后一次操作结束时计时
  • 手动销毁
  • session.invadate
  • 浏览器关闭,session就销毁,这句话是不正确的

? 作用范围
? 默认在一次会话中,一次会话中任何资源公用一个session对象

JsessioID持久化

  • 默认情况下,第一次获取session对象时, 会帮你创建一个session,可以获取该Session的ID
  • 会自动的把id写到cookie当中

存在的问题

  • 第一次访问sevlet1时存储一些数据
  • 在第二个servlet当中直接取数据,可以直接取到
  • 把浏览器关闭
  • 直接到第二个servlet当中取数据,发现取不到数据了

原因

  • 因为访问的时候要求带着jsessionID.
  • 由于默认情况下,存储cookie是会话级别的,关闭浏览器,就没有了。
  • 所以再次打开浏览器,访问资源时,没有jsessionID. 就会创建一个新的session. 就取不到数据了

解决办法

  • 在写数据时,自己手动去把sessionID写到cookie当中
  • 写的时候,设置持久化时间
  • 注意,key值一定是和它自动生成的key值是一样的
    ?

原文地址:https://www.cnblogs.com/mumuyinxin/p/10604200.html

时间: 2024-10-25 15:47:00

会话技术cookie与session的相关文章

会话技术: Cookie 和 Session

会话技术 会话技术:从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话. Cookie 和 Session 都是处理会话技术的两种具体实现,Cookie将数据保存在客户端,Session将数据保存在服务器端. Cookie技术 1.Cookies是存储在客户机的文本文件,可以保存一系列的信息.通常服务器有三个步骤来识别不同的客户机: 服务器脚本发送一系列cookies至浏览器.比如名字,年龄,ID号码等等. 浏览器在本地机中存储这些信息. 当下一次浏览器发

会话技术cookie和session详解

什么是会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话技术解决了什么问题 每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每个用户的数据. 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户商品为用户结帐. 会话技术分类 会话技术会为两类 Cookie Cookie是客户端技术,程序把每个用户的数

Java web 会话技术 cookie与session

一.会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话过程中要解决的一些问题 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据. 二.保存会话数据的两种技术 1.Cookie Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,web资源处理的就是

JAVA基础之会话技术-Cookie及Session

至此,学习三个域对象:ServletContext(web项目).request(一次请求).Session(一个客户端)!均有相同的方法! 从用户开始打开浏览器进行操作,便开始了一次会话,直至关闭浏览器为止结束.在此过程中,每次产生请求时均会产生一次cookie,同时会产生一个JESSIONID进入到客户端进行创建内存空间,下次调用直接寻找此唯一的ID值.数据存储在两个地方均有利弊!需要注意的是,浏览器关闭,session并没有销毁! 一.会话技术简介: 1.存储客户端的状态: 因为Http协

会话技术cookie和session

1.什么是cookie? 服务器在客户端保存的用户信息,不用登录名密码等....就是cookie 例如现在,用户点击登录,把登录名和密码,复选框信息,传入到服务器,验证成功,则把用户名和密码保存到该 客户端,在服务器端需要的时候可以从客户端读取 用途: A.保存用户名.密码,在一定时间内不用重新登录 B.记录用户访问网站的喜好(有无背景音乐) C.网站的个性化,不如定制网站的服务,内容 步骤: 1.在服务器创建 Cookie c = new Coolie(String name,String v

07.会话跟踪技术cookie与session

会话跟踪技术cookie与session 01.会话跟踪:会话路径技术使用Cookie或session完成: 我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的! 无法记录前一次请求的状态.但HTTP协议中可以使用Cookie来完成会话跟踪! 在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术 02.Cookie概述 Cookie是由服务器创建,然后通过响应发送给客户端的一个键值对. 客户端会保存Cookie,并会标注出Cookie的来源(哪个服务

2014-07-09 Java Web的学习(5)-----会话管理(Cookie和Session)

1.什么是会话 会话,牛津词典对其的解释是进行某活动连续的一段时间.从不同的层面看待会话,它有着类似但不全然相同的含义.比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录.并完成购物直到关闭浏览器,这是一个会话.而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做会话.因此在谈论会话的时候要注意上下文环境.而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保

会话技术——Cookies和Session详解

会话技术 (一) 概述.用途以及分类 (1) 基本概述 概述:会话是浏览器和服务器之间的多次请求和响应 也就是说,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和响应,合起来叫做浏览器和服务器之间的一次会话 (2) 为什么要使用会话技术呢? 实际上会话问题解决的还是客户端与服务器之间的通信问题,通过一些会话技术,可以将每个用户的数据以例如cookie/session的形式存储,方便以后用户访问web资源的时候使用 假定场景:A和B两人在某个网上购物商场登陆账

会话跟踪技术--cookie和session 小结

学习过servlet的都知道,servlet是单例多线访问的,所以我们不能设置servlet成员变量来存放浏览器的访问数据.怎么解决浏览器的访问数据,让不同访问者能够访问到自己的数据呢? 相信学习完了cookie和session技术之后,读者会明白这个问题. 我们在浏览器上使用http协议在网络上传输数据的时候,服务器对于http的状态处理有两个方式,cookie和session. 笔者对于cookie设session的理解是这样的:当我们想要记录浏览器与服务器之间的交互的时候,通常的方法就是