IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 03_springboot整合cookie -> 正文阅读

[Java知识库]03_springboot整合cookie

HTTP Cookie(也称为web Cookie、浏览器Cookie)是服务器存储在用户浏览器中的一小块信息。服务器在返回浏览器请求的响应时设置cookies。浏览器存储cookies,并将它们与下一个请求一起发送回同一服务器。Cookie通常用于会话管理、用户跟踪和存储用户首选。Cookies帮助服务器跨多个请求记住客户机。如果没有cookies,服务器将把每个请求都当作一个新的客户机来处理。

1 Reading HTTP Cookie

Spring框架提供@CookieValue注释来获取任何http cookie的值,而无需迭代从请求中获取的所有cookie。此注释可用于将cookie的值映射到控制器方法参数。

    @GetMapping("/cookie")
    public String readCookie(@CookieValue(value = "username", defaultValue = "hust") String username,
                             @CookieValue(value = "password", defaultValue = "hust") String password,
                             @CookieValue(value = "age", defaultValue = "hust") String age) {
        return "hi, " + username + ", " + password + ", " + age;
    }

在这里插入图片描述
在这里插入图片描述
在上面的代码片段中,请注意defaultValue=“Atta”。如果未设置默认值,Spring将抛出java.lang.IllegalStateException异常在HTTP请求中找不到名为username的cookie时出现异常。

2 Setting HTTP Cookie

要在Spring Boot中设置cookie,可以使用HttpServletResponse类的addCookie()方法。您所需要做的就是创建一个新的Cookie类实例并将其添加到响应中。

    @GetMapping("/set-cookies")
    public String setCookie(HttpServletResponse response) {
        // create a cookie
        Cookie cookie = new Cookie("username", "Tom");
        // cookie.setMaxAge(7 * 24 * 60 * 60); // expires in 7 days
        // cookie.setSecure(true); //安全cookie是仅通过加密的HTTPS连接发送到服务器的cookie。安全Cookie不能通过未加密的HTTP连接传输到服务器。
        // cookie.setHttpOnly(true); //当为cookie设置HttpOnly标志时,它会告诉浏览器只有服务器才能访问此特定cookie。
        // cookie.setPath("/");
        //add cookie to response
        response.addCookie(cookie);
        return "username is set!";
    }

在这里插入图片描述

3 Reading All Cookies

我们也可以使用HttpServletRequest类作为控制器方法参数来读取所有cookie,而不是使用@CookieValue注释。此类提供getCookies()方法,该方法将浏览器发送的所有Cookie作为Cookie数组返回。

    @GetMapping("/all-cookies")
    public String readAllCookies(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            return Arrays.stream(cookies)
                    .map(c -> c.getName() + "=" + c.getValue())
                    .collect(Collectors.joining(", "));
        }
        return "No cookies";
    }

4 其他重要参数

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:22:29  更:2022-03-04 15:25:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:44:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码