美文网首页
servlet学习(十一):会话之cookie

servlet学习(十一):会话之cookie

作者: 程序员三千_ | 来源:发表于2019-02-25 17:12 被阅读9次

cookie简介

    在登录某个网站时,比如登录163邮箱的网站,界面中有个十天免登陆的选项,先不勾选该选项,登录成功之后关闭浏览器或重启电脑,当再次访问163邮箱时会提示用户登录,这说明http协议是无状态的,在不同的请求之间是无法进行数据传递的。

而当勾选了十天免登陆的选项并登录成功之后,关闭浏览器或者重启电脑,之后再次访问163邮箱时就会自动登录了。这说明用户登录的一些信息保存到了该电脑的硬盘中(默认会存在浏览器的缓存中,可以设置保存在硬盘上),当访问163邮箱网站时,浏览器会将这些数据发送到服务器,从而实现了自动登录的功能,客户端电脑中用于保存这数据的资源,称为cookie。

用户在勾选十天免登陆的选项并登录成功之后,由服务器生成 Cookie,并将其封装到响应头中,以响应的形式发送给浏览器。浏览器接收到这个响应后,将 Cookie 保存到硬盘中。当浏览器再次发送同类请求后,在请求中会携带保存在硬盘的Cookie数据,发送到服务端,由服务器对解析该Cookie。

Cookie 技术并不是 JavaWeb 开发专属技术,而是属于 Web 开发的技术,是所有 Web 开

发语言均支持的技术。Cookie 是由若干键值对构成,这里的键一般称为 name,值称为 value。 Cookie 中的键值对均为字符串。

在web.xml中将上面的servlet的url-pattern设置为:/test/cookie01

    访问该servlet时,在上图中,我们看到响应头中携带了之前设置的cookie信息。此时两个cookie与默认资源路径http://localhost:8080/wdy/test/cookie01 进行了绑定,也就是url-pattern中的上一级路径,当再次访问路径包含以上资源路径的url时,会自动将cookie放到请求头中向服务器发出请求。也就是在不同应用间cookie是不共享的。

手动设置cookie路径


设置完成后运行,发现路径变为/wdy/aaa了

这是我们随便访问一个路径/wdy/test/12,是不会有cookie传递的

我们用/wdy/aaa/12访问,是有cookie传递的

设置cookie的有效时长

默认情况下, Cookie 是保存在浏览器的缓存中的,关闭浏览器后Cookie也就消失了。

    开发者可以通过设置Cookie的有效时长,将Cookie写入到客户端硬盘文件中。

可以通过下面的方法设置有效时长

public void setMaxAge(int expiry)

其中expiry的单位为秒,整型。

大于 0,则表示要将 Cookie 写入到硬盘文件中;

小于 0,则表示 Cookie 存放在浏览器缓存中,与不设置时长等效;

等于 0,则表示 Cookie产生后直接失效。

服务器端获取请求的cookie

在 HttpServletRequest 中有一个方法getCookies(),专门用于读取请求中所携带的 Cookie 数据,该方法的返回值类型是Cookie数组。

新建一个servlet:

相关文章

  • servlet学习(十一):会话之cookie

    cookie简介 在登录某个网站时,比如登录163邮箱的网站,界面中有个十天免登陆的选项,先不勾选该选项,登录成功...

  • 16.Cookie&Session

    主要内容 会话技术1. Cookie2. Session JSP:入门学习 会话技术 Cookie: ​2. 不同...

  • Day16--Cookie&Session&JSP

    会话技术 Cookie JSP:入门学习 Session

  • flask会话技术详解及模板使用

    一、会话技术cookie 概述 设置cookie 获取cookie 删除cookie 二、会话技术session ...

  • flask02

    一、会话技术cookie 概述 设置cookie 获取cookie 删除cookie 二、会话技术session ...

  • 会话之Cookie

    cookie简介 在登录某个网站时,比如登录163邮箱的网站,界面中有个十天免登陆的选项,先不勾选该选项,登录成功...

  • 03-flask会话技术

    一、 会话技术cookie 获取cookie 删除cookie 二、 会话技术session 一、 概述 如果要使...

  • Cookie

    Cookie类全路径:javax.servlet.http.Cookie Cookie是Servlet发送到Web...

  • servlet学习(十二):会话之session

    session简介 在WEB开发中,服务器可以为每个客户端浏览器创建一个session对象,默认情况下一个浏览器独...

  • [HTTP] Cookie

    可以笼统的将cookie分为两类:会话cookie和持久cookie会话cookie是一种临时cookie,它记录...

网友评论

      本文标题:servlet学习(十一):会话之cookie

      本文链接:https://www.haomeiwen.com/subject/keegyqtx.html