Spring MVC入门4

你能学到什么

  • 如何存储cookie
  • 获取Cookie的两种方式
  • 如何存储Session
  • 获取Session的两种方式

当然,要想将理解变成掌握,肯定离不开自己动手实践。

正文

存储cookie

我们能不能手动添加cookie呢?答案当然是可以。

例:http://127.0.0.1:8080/classpath/getcookie 首先,我们在这个页面按下 F12会出现

看见上面的红框里的了吗,此时我们点击 》 就会出现Application

点击Application,在Application下面就会有cookie,点击cookie下面的网址就能找到所有的cookie了,此时我们就在这里添加和删除cookie

获取cookie的方式

下面是一些解释:

  • Spring MVC是基于 Servlet API 构建的原始 Web 框架, 也是在Servlet的基础上实现的。HttpServletRequest , HttpServletResponse是Servlet提供的两个类, 是SpringMVC⽅法的内置对象. 需要时直接在⽅法中添加声明即可.

  • HttpServletRequest 对象代表客⼾端的请求, 当客⼾端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的⽅法,可以获得客⼾端请求的所有信息.

  • HttpServletResponse 对象代表服务器的响应. HTTP响应的信息都在这个对象中, ⽐如向客⼾端发送的数据, 响应头, 状态码等. 通过这个对象提供的⽅法, 可以获得服务器响应的所有内容

    Spring MVC在这两个对象的基础上进⾏了封装, 给我们提供更加简单的使⽤⽅法.

  • 一个例子:

另外如果手动将cookie的Name或者Value改成中文的话,IDEA就打印不出来,具体原因不详。所以在代码中更推荐用英文来举例。

获取cookie的更加现代的方式(@CookieValue)
存储Session的方式
  • 注意
    这个代码中看不到 SessionId 这样的概念的. getSession 操作内部提取到请求中的Cookie ⾥的SessionId, 然后根据SessionId获取到对应的Session 对象, Session 对象⽤HttpSession来描述
获取Session的方式
  • 可以看到我们获取成功了,有一个小的注意点:我们一定要先进行储存再获取,这样才能正常获取Session。原因:没有使用数据库,我们代码的信息是直接储存在内存中的,如果改完代码重新运行之后,之前的我们已经储存过的数据就被刷掉了,此时需要我们重新运行setSession,重新储存。
  • HttpSession getSession(boolean create) : 参数如果为 true, 则当不存在会话时新建会话; 参数如果为 false, 则当不存在会话时返回 null
    HttpSession getSession(): 和getSession(true) 含义⼀样, 默认值为true.
  • void setAttribute(String name, Object value): 使⽤指定的名称绑定⼀个对象到该 session 会话
获取Session更加简洁的方式
相关推荐
浮游本尊8 分钟前
项目全景 + 第一条完整后端链路
java·前端
jeffer_liu8 分钟前
Spring AI 生产级实战:模型选择
java·人工智能·spring boot·后端·spring·语言模型·ai编程
User_芊芊君子9 分钟前
【JavaEE】线程入门:线程基础 + 安全机制一次讲透
java·安全·java-ee
未若君雅裁15 分钟前
JMM、volatile 与 CAS:并发安全三大问题
java·开发语言
hai31524754316 分钟前
# 矩阵算法·算子对齐工具 v6.1 — 技术规格与使用手册
java·开发语言·驱动开发·神经网络·spring·目标检测·矩阵
shelter32 分钟前
一文讲清楚Spring Aop失效场景以及失效背后的原理
java
奋斗的小方35 分钟前
Java基础篇09(2):项目实战之基于swing的石头迷阵
java·开发语言
暗夜猎手-大魔王44 分钟前
转载--Hermes Agent 08 | Agent 的自我进化:nudge、后台审查与轨迹数据
java·前端·人工智能
宸津-代码粉碎机1 小时前
Spring AI 企业级RAG实战|增量更新+文档去重+定时自动入库生产落地方案
java·大数据·人工智能·后端·python·spring