Cookie

什么是Cookie:Cookie是服务器通知客户端保存键值对的一种技术

创建一个cookie,cookie是servlet发送到Web浏览器的少量信息,这些信息由浏览器保存,然后发送回服务器。cookie的值可以唯一的标识浏览器客户端,因此cookie常用于会话管理

每个cookie的大小不能超过4kb。客户端有了cookie之后,每次请求都发送给服务器

创建Cookie并通知客户端保存

1、 创建Cookie对象

Cookie cookie=new Cookie("key","value");

2、 通知客户端保存Cookie

resp.addCookie(cookie);

服务器获取Cookie

req.getCookies();  //返回Cookie对象的数组Cookie[]

Cookie值的修改:服务器可以修改Cookie的值
方案一:
1、先在服务器创建一个同名(key)的Cookie对象
2、在构造器,同时赋予新的Cookie值
3、调用addCookie()方法

方案二:
1、先查找到需要修改的Cookie对象
2、调用setValue()方法赋予新的值
3、调用addCookie()方法通知客户端保存修改

Cookie的生命控制
Cookie的生命控制是指如何管理Cookie什么时候被销毁(删除)

主要由一个方法来决定:

setMaxAge(); //参数设置cookie的最大生存时间,以秒为单位
  • 正值:表示在指定的秒数后过期
  • 负值:意味着cookie不会被持久存储,将在web浏览器退出时删除(默认值是-1)
  • 0:表示马上删除cookie

Cookie有效路径Path的设置
Cookie 的path属性可以有效的过滤哪些Cookie可以发送给服务器。哪些不发

path属性是通过请求的地址来进行有效的过滤
设置path属性: setPath()

Session会话

什么是Session会话?
Session是一个接口:HttpSession

Session就是会话。它是用来维护一个客户端和服务器之间关联的一种技术

每个客户端都有一个自己的Session会话。Session会话中,我们常用来保存用户登录之后的信息

Session的创建和获取
创建和获取是使用同一个API:

request.getSession()

第一次调用此方法是创建Session,之后调用此方法是获取之前创建好的Session会话对象

我们可以通过调用isNew()方法判断这个Session是否是刚刚创建的:

  • true:表示刚创建
  • false:表示获取之前创建

每个会话都有一个唯一的id号码
getId() 方法获取得到Session会话的id值

Session也是一个域对象,可以往域中存取数据

Session的生命周期控制

public void setMaxInactiveInterval(int interval) ;//设置Session会话的超时时长(以秒为单位)。超过指定的时长Session就会被销毁
  • 参数值为正数时,是设定Session的超时时长
  • 参数值为负数时,表示永不超时(极少使用)

其他方法:

  • public void invalidate() 让当前Session会话马上超时无效
  • public int getMaxInactiveInterval() 获取Session的超时时长

Session的默认超时时长为:30分钟。因为在Tomcat服务器的web.xml配置文件中默认有以下的配置

  <session-config>
        <session-timeout>30</session-timeout>
  </session-config>

以上配置表面配置了当前Tomcat服务器下所有的Session会话的超时时长都默认为30分钟
如果我们想配置自己的web工程中的Session会话超时时长默认为其他时长,可以在工程中的web.xml
中做以上相同的配置

注意
1、Session超时的概念:客户端两次请求之间的最大间隔时长
2、Session技术底层是基于Cookie技术来实现的

最后修改:2021 年 06 月 06 日 02 : 27 PM
如果觉得我的文章对你有用,请随意赞赏