zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Cookie和Session的区别

2023-02-19 12:18:02 时间

??前言​ 友友们大家好,我是你们的小王同学?? 今天给大家打来的是 Cookie和Session的区别 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞? 收藏⭐ 评论? 小王的主页:小王同学? 小王的gitee:小王同学?? 小王的github:小王同学?

  • ​cookie是客户端的机制,Session是服务器端的机制
  • CookieSession经常在一起配合使用。但是不是必须配合
  • 完全可以用Cookie来保存一些数据在客户端 这些数据不一定是用户身份信息,也不一定是token/sessionid
  • session 中的 token /sessionid 也不需要非得通过Cookie/Set-Cookie传递

HttpServletRequest 类中的相关方法

方法

HttpSession

getSession() 描述 在服务器中获取会话,参数如果为true,则当不存在会话时新建会话,参数如果为false,则当不存在会话返回null

getSession() 描述 在服务器中获取会话,参数如果为true,则当不存在会话时新建会话,参数如果为false,则当不存在会话返回null

HttpServletResponse 类中的相关方法

方法 void addCookie(Cookie cookie) 描述 把指定的cookie添加到响应中

HttpSession 类中的相关方法

一个HttpSession对象里面包含多个键值对。我们可以往HttpSession中存任何我们需要的信息。 方法 Object getAttribute(String name) 该方法返回在该session会话中具有指定名称的对象,如果没有指定名称的对象,则返回null void setAttribute(String name, Object value) 该方法使用的指定的名称绑定一个对象到该session会话 boolean isNew() 判断当前是否新创建的会话

Cookie类的相关方法

每个Cookie对象就是一个键值对 方法 String getName() 该方法返回cookie的名称 名称在创建后不能改变(这个值是Set-Cookie给浏览器的)

String getValue() 该方法获取cookie关联的值

​HTTP 的 Cooke 字段中存储的实际上是多组键值对. 每个键值对在 Servlet 中都对应了一个 Cookie 对象.

  • 通过 HttpServletRequest.getCookies() 获取到请求中的一系列 Cookie 键值对.
  • 通过 HttpServletResponse.addCookie() 可以向响应中添加新的 Cookie 键值对.

cookie的工作流程: 客户端访问服务器,服务器调用response.addCookie()方法,产生响应时,会产生set-cookie响应头,将cookie文本发送给客户端,客户端会将cookie文本保存起来,当客户端再次请求服务器时,会产生cookie请求头,将之前服务器发送的cookie信息,再发送给服务器,服务器就可以根据cookie信息跟踪客户端的状态。