会话与会话技术(Cookie)

文章介绍了Web应用中的Cookie机制,它是用来保存会话数据的一种方式,将数据存储在用户浏览器端。Cookie通过Set-Cookie响应头字段由服务器发送,并在后续请求中由浏览器回传。Servlet提供了Cookie类来操作Cookie,包括设置名称、值、有效期、路径、域等属性。Cookie的有效期、路径和域对其作用范围和生命周期有直接影响。
摘要由CSDN通过智能技术生成

Web应用中的会话过程指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程

为保存会话过程产生的数据,Servlet提供了两个用于保存会话数据的对象,分别是CookieSession

1、Cookie对象

Cookie是一种会话技术,它可以将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好的进行数据交互

1.1 Cookie概述

在Web应用中,Cookie的功能类似于会员卡。即当用户访问Web服务器时,Web服务器会给用户发送一些信息(例如用户信息和商品信息),然后这些信息会保存在Cookie中。当浏览器再次访问服务器时,会在请求头中将Cookie发送给服务器,以便服务器来做出正确的响应

服务器向客户端发送Cookie时,会在HTTP响应头中增加Set-Cookie响应头字段。Set-Cookie响应头字段中设置Cookie的具体示例为:

Set-Cookie:user=itcast;Path=/;

参数:user表示Cookie的名称,itcast表示Cookie的值,Path表示Cookie的属性

Cookie必须以键值对的形式存在,会在Cookie属性可以有多个,属性之间用分号“ ; ”和空格分隔

客户端和服务器之间的传输过程大致如下:

 1.2 Cookie API

为了封装Cookie信息,Servlet API提供了javax.servlet.http.Cookie类,该类包含了生成Cookie信息和提取Cookie信息的方法

Cookie类的构造方法

public Cookie(java.lang.String name,java.lang.String value);

参数:name用于指定Cookie的名称,value用于指定Cookie的值

注意:Cookie在创建之后,名称不可更改,但值可以在创建之后更改

Cookie类的常用方法

1、String getName()

功能:返回Cookie的名称

2、void setValue(String newValue)

功能:为Cookie设置一个新的值

3、String getValue()

功能:返回Cookie的值

4、void setMaxAge(int expiry)

功能:用于设置Cookie在浏览器客户机上保持有效的秒数

5、int getMaxAge()

功能:用于返回Cookie在浏览器客户机上保持有效的秒数

6、void setPath(String uri)

功能:用于设置该Cookie项的有效目录路径

7、void getPath()

功能:用于返回该Cookie项的有效目录路径

8、 void setDomain(String name)

功能:用于设置该Cookie项的有效域

9、String getDomain()

功能:用于返回该Cookie项的有效域

10、void setVersion(int v)

功能:用于设置该Cookie项采用的版本协议

11、int getVersion()

功能:用于返回该Cookie项采用的版本协议

12、void setComment(String purpose)

功能:用于设置该Cookie项的注解部分

13、String getComment()

功能:用于返回该Cookie项的注解部分

14、void setSecure(boolean flag)

功能:用于设置该Cookie项是否只能使用安全的协议传送

15、boolean getSecure()

功能:用于返回该Cookie项是否只能使用安全的协议传送

1、setMaxAge(int expiry)和getMaxAge()

它们用于设置和返回Cookie在浏览器上保持的有效秒数。如果设置的秒数为正整数,则浏览器会将Cookie信息保存在本地硬盘中,从当前时间开始,在没有超过指定的秒数之前,这个Cookie都会保持有效并且同一台计算机上运行的该浏览器都可以使用这个Cookie信息;如果设置的秒数为负整数,则浏览器会将Cookie信息保存在浏览器的缓存中,当浏览器关闭则Cookie会被删除;如果设置的值为0,则浏览器会立刻删除这个Cookie信息

2、setPath(String uri)和getPath()

它们是针对Cookie的Path属性。如果创建的某个Cookie对象没有设置Path属性,那么该Cookie只对当前访问路径所属的目录及其子目录有效。如果想让某个Cookie项对站点的所有目录下的访问路径都有效,应调用Cookie对象的setPath()方法将其Path属性设置为“/”

3、setDomain(String name)和getDomain()

它们是针对Cookie的domain属性,domain属性用于指定浏览器访问的域,设置domain的值必须以 “ . ” 开头。在默认情况下,domain属性的值为当前主机名,浏览器在访问当前主机下的资源时,都会将Cookie信息发送给服务器(主机)

例:传智播客的域为“itcast.cn”,则domain的值为domain=.itcast.cn

注意:domain属性的值不区分大小写

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值