Cookie&Session会话跟踪技术

  1. 今日内容学习目标
  • 可以响应给浏览器Cookie信息[response.addCookie()]
  • 可以接受浏览器Cookie信息[request.getCookies()] [创建cookie,设置path和Age]
  • 理解cookie的执行原理(重要)
  • 可以对session的作用域数据进行操作:存放,获得,移除
  • 理解session的执行原理(重要)

一,记录用户的上一次访问时间

    当用户访问某些WEB应用时,经常会显示出上一次的访问时间。例如QQ登录成功后,会显示上一次的登录时间。通过本案例读者将学会如何使用Cookie技术

  实现显示用户上一次的访问时间功能。

  2. 相关知识点

    HTTP协议是无状态的,(发送一次请求得到响应之后,这个请求断开。对应的HTTP协议也就关闭了,第二次发送请求之后,服务器就不认识你了)

    发送一次请求,服务器作出响应,断开连接了....

  为了解决无状态的问题,(需要学习会话跟踪技术(Cookie和Session))

  • 会话的概述

    在日常生活中,从拨打电话(打开浏览器发送一个请求)到挂断电话(关闭浏览器)之间的一连串你问我答的过程就是一个会话。。Web 应用中的会话过程类似 于生活中的打电话过程,它指的是一个客户端(浏览器)与 Web 服务器之间连续发生的一系列请求和响应过 程,例如,一个用户在某网站上的整个购物过程就是一个会话。

    在打电话过程中,通话双方会有通话内容,同样,在客户端与服务器端交互的过程 中,也会产生一些数据。例如,用户甲和乙分别登录了购物网站,甲购买了一个 Nokia 手 机,乙购买了一个 Ipad,当这两个用户结账时,Web 服务器需要对用户甲和乙的信息分别 进行保存。在前面章节讲解的对象中,HttpServletRequest 对象和 ServletContext 对 象都可以对数据进行保存,但是这两个对象都不可行,具体原因如下:

    (1)客户端请求 Web 服务器时,针对每次 HTTP 请求,Web 服务器都会创建一个 HttpServletRequest 对象,该对象只能保存本次请求所传递的数据。由于购买和结账是 两个不同的请求,因此,在发送结账请求时,之前购买请求中的数据将会丢失。

    (2)使用 ServletContext 对象保存数据时,由于同一个 Web 应用共享的是同一个 ServletContext 对象,因此,当用户在发送结账请求时,由于无法区分哪些商品是哪个 用户所购买的,而会将该购物网站中所有用户购买的商品进行结算,这显然也是不可行 的。

     (3)为了保存会话过程中产生的数据,在 Servlet 技术中,提供了两个用于保存会 话数据的对象,分别是 Cookie 和 Session。关于 Cookie 和 Session 的相关知识,将在 下面的小节进行详细讲解。

    Cookie和浏览器缓存有什么区别

  在现实生活中,当顾客在购物时,商城经常会赠送顾客一张会员卡,卡上记录用户的 个人信息(姓名,手机号等)、消费额度和积分额度等。顾客一旦接受了会员卡,以后每次 光临该商场时,都可以使用这张会员卡,商场也将根据会员卡上的消费记录计算会员的优 惠额度和累加积分。在 Web 应用中,Cookie 的功能类似于这张会员卡,当用户通过浏览 器访问 Web 服务器时,服务器会给客户端发送一些信息,这些信息都保存在 Cookie 中。这样,当该浏览器再次访问服务器时,都会在

中将 Cookie 发送给服务器,方便服务器对浏览器做出正确的响应。

  *注意Cookie是一种由服务器生成的数据,保存在客户端的会话跟踪技术.

  服务器向客户端发送Cookie时,会在HTTP响应头字段中增加Set-Cookie响应头段。Set-Cookie头字段中设置 Cookie遵循的语法格式

具体如下:

      Set-Cookie:xxx=xxx; path=/;

      在上述示例中:等号前面的代表Cookie的名称,后面的代表Cookie的值, Path代表Cookie的属性。 需要注意的是,Cookie必须一键值对的形式出现

    其属性可以有多个,但这些属性之间必须用分号;和空格隔开。

 了解了Cookie信息的发送方式后,接下来用一张图来描述一下Cookie在浏览器和服务器中的传输过程

    当用户第一次访问 服务器时,服务器会在响应消息中增加 Set-Cookie 头字段,将用户信息以 Cookie 的形 式发送给浏览器。一旦用户浏览器接受了服务器发送的 Cookie 信息,就会将它保存在浏 览器的缓冲区中,这样,当浏览器后续访问该服务器时,都会在请求消息中将用户信息以 Cookie 的形式发送给 Web 服务器,从而使服务器端分辨出当前请求是由哪个用户发出 的。

    Cookie的基本使用

  Cookie将用户信息保存到客户端浏览器中的一个技术,当下次访问时,浏览器会自动携带Cookie的信息到服务器

      Cookie是基于HTTP协议的

    Cookie的基本使用

创建Cookie new Cookie(name, value)    javax.servlet.http.Cookie
将Cookie发送给客户端 HttpServletResponse.addCookie(javax.servlet.http.Cookie)
接收客户端携带的所有cookie HttpServletRequest.getCookie() 得到的是一个数组

      总结:

        Cookie的分类:

              会话级别的Cookie:默认的关闭了浏览器Cookie就销毁了

              持久级别的Cookie:需要设置有效时长的。关闭浏览器Cookie也不会销毁

              setMaxAge(int expiry) 以毫秒为单位的时间,超过了该时间后Cookie会自动销毁

              setMaxAge(0) 手动删除持久的Cookie (前提path和name必须一致)

        Cookie的路径:

              Cookie的路径只于归还的路径相关

              默认的路径,为当前服务创建的路径(第一次访问有服务器创建)

              Http://localhost:8080/xxx_cookie/cookie/LasttimeServlet

              那么cookie对应的默认路径为xxx_cookie/cookie  当然你也可以手动设置cookie的路径 setpath(路径)

              意味着只要是这个目录的子目录都可以携带Cookie

        注意Cookie路径的理解千万不要按照普通路径去理解

        Cookie的生命:

              setMaxAge() : 默认的是会话级别(只要关闭浏览器,Cookie就没了),方法的参数小于零

              setMaxAge() : 持久级别,方法的参数大于零(该方法需要保证Cookie的路径是正确的)        

              setMaxAge() : 追杀Cookie。方法参数小于零

              setPath(String URL) 设置Cookie的有效路径

              例如:

                 1.cookie.setPath("/cookie/demo");

                    表示cookie项目下,demo目录下所有的servlet都可以访问当前的cookie。但cookie或cookie/aaa将不能访问

                 2.cookie.setPath("/cookie");

                    表示cookie项目下,所有的servlet都能访问当前的cookie

                 3.cookie.setPath("/");

                    表示tomcat下所有的servlet都可以访问当前的cookie

      cookie唯一表示:

          唯一标示:domain + path + name (类似于java中的 包 + 类名)

                domain 域名。不同的网站使用的是不同的域名,无庸置疑,cookie就不同

          要设置域,先得设置路径path cookie.setPath("/");

          Cookie的域:

            www.baidu.com   zhidao.baidu.com   tiebao.baidu.com


应用:

登录功能!在百度首页里面登录成功后将用户名和密码保存到cookie中,下次在访问百度其它页面的时候

此时会把第一次访问百度首页保存到cookie里的数据(用户名和密码) 携带过来 完成自动登录

时间: 2024-10-27 06:25:53

Cookie&Session会话跟踪技术的相关文章

Filter过滤器与Session会话跟踪技术

Filter过滤器 适用场景 1.为web应用程序的新功能建立模型(可被添加到web应用程序中或者从web应用程序中删除而不需要重写基层应用程序代码)2.用户授权Filter:负责检查用户请求,根据请求过滤用户非法请求3.日志Filter:详细记录用户的特殊请求4.负责解码Filter:包括对非标准解码的请求解码5.XSLT Filter:能改变XML内容 用途 1.在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest,根据需要检查Http

07.会话跟踪技术cookie与session

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

JavaEE基础(04):会话跟踪技术,Session和Cookie详解

本文源码:GitHub·点这里 || GitEE·点这里 一.会话跟踪 1.场景描述 比如登录某个购物网站,身份识别成功后,在网站下单,支付 等操作,这些操作中当前登录用户信息必须是共享的,这样这些操作结果才能和登录用户做关联. 2.概念简介 可以把会话理解为客户端与服务器之间的一次交互,在一次交互中可能会包含多次请求和响应.在JavaWeb中,从客户端向服务器发出第一个请求开始,会话就开始了,直到客户端关闭浏览器会话结束.在一个会话的多个请求中共享数据,这就是会话跟踪技术. 二.Cookie用

HTML5入门教程 :Cookie会话跟踪技术~

1. Cookie会话跟踪技术介绍 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,可以在客户端保存临时数据. Cookie 技术诞生以来,它就成了广大网络用户和 Web 开发人员争论的一个焦点.有一些网络用户,甚至包括一些资深的 Web 专家也对它的产生和推广感到不满,这并不是因为 Cookie 技术的功能太弱或其他技术性能上的原因,而是因为 Cookie 的使用对网络用户的隐私构成了危害

java中会话跟踪技术

1.什么是会话跟踪技术? 会话跟踪技术,是针对无状态连接中,跟踪用户关键操作的技术. 具体应用场景,是淘宝网中用户登录后购买商品,但是服务器并不能将用户和商品对应起来:因此,需要通过会话跟踪技术来实现追踪定位. 2.java中有四种会话跟踪技术: cookie,session,url重写,隐藏域. cookie: 服务器创建保存于浏览器端,下次用户再访问该站点服务器的时候,保存在用户机器上的cookie信息就被送回给服务器端.一般cookie大小不大于4KB,且用户的敏感信息和账户密码不应该保存

会话跟踪技术

会话跟踪是一种灵活.轻便的机制,它使Web上的状态编程变为可能.HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的.非连续的.当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题.当一个客户在多个页面间切换时,服务器会保存该用户的信息.有四种方法可以实现会话跟踪技术:URL重写.隐藏表单域.Cookie.Session.1).隐藏表单域:<input type="hidden">,

四种会话跟踪技术,JSP的四种范围

这两个问题在网上搜答案是一样的,但是我的宝典里标明这是两个问题,有不同的答案,所以在这里注释一下. 四种会话跟踪技术 cookie,url重写,session,隐藏域 Cookie:服务器在一个应答首部传递给浏览器的名称/值对.浏览器保存的时间由cookie的过期时间属性来指定.当浏览器向某个服务器发送一个请求时,它会检查其保存的cookie,并在请求首部中包含从同一台服务器上接收到的所有cookie. 首次都是通过URL传递的,即在URL后跟一个ID标识.然后会判断客户端是否接受cookie,

四种会话跟踪技术

会话跟踪是一种灵活.轻便的机制,它使Web上的状态编程变为可能.HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的.非连续的.当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题.当一个客户在多个页面间切换时,服务器会保存该用户的信息.有四种方法可以实现会话跟踪技术:URL重写.隐藏表单域.Cookie.Session. 1).隐藏表单域:<input type="hidden">

2.会话跟踪技术

1.什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了.从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束.在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中. 在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束. 在一个会话的多个请求中共享数据,这就是会