Cookie和Session

简介: Cookie和Session

前言

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

一、Cookie

1:Cookie是什么?

Cookie:是浏览器在本地持久化存储数据的一种机制。

2:Cookie的数据从哪来?

Cookie的数据是浏览器返回给浏览器的。

3:Cookie的数据长啥样 ?

Cookie中是键值对中的数据,并且这些键值对中的数据都是程序员自定义的。

4:Cookie的作用

5:Cookie到哪里去?

Cookie中的内容会在下次访问该网站的时候,自动被带到http请求中。

6:Cookie怎么存的?

浏览器按照不同的"域名"分别存储cookie.域名和域名之间的cookie是不同的。

 Cookie是存储在硬盘上。Cookie往往会有超时时间。

二.代码

我在springboot中写的代码

package com.example.demo.demos.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

@Controller
public class MyController {

    @RequestMapping ("/getCookies")
    @ResponseBody
    public String getCookies(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();

        if (cookies != null) {
            for (Cookie cookie : cookies) {
                System.out.println("Cookie Name: " + cookie.getName());
                System.out.println("Cookie Value: " + cookie.getValue());
            }
        } else {
            System.out.println("No cookies found");
        }

        // 这里可以返回视图或其他逻辑
        return "cookieView";
    }
}

刚打开8080的窗口肯定是没有cookie的

打开f12

我们自己加一个cookie的值,然后刷新

三、Session

package com.example.demo.demos.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

@Controller
public class LoginController {
    // 显示登录页面
    @RequestMapping("/login")
    @ResponseBody
    public String showLoginPage() {
        return "login";
    }
    // 处理登录请求
    @RequestMapping("/login2")
    @ResponseBody
    public String login(@RequestParam String username, @RequestParam String password, HttpSession session, Model model) {
        if (username == null || password == null || username.equals("") || password.equals("")) {
            model.addAttribute("message", "当前请求参数不完整");
            return "login";
        }

        // 验证用户名和密码是否正确,这里简单模拟一个合法用户
        if (!username.equals("zhangsan") || !password.equals("123")) {
            model.addAttribute("message", "当前用户名或密码错误");
            return "login";
        }

        // 登录成功,创建session
        session.setAttribute("username", username);
        session.setAttribute("time", System.currentTimeMillis());

        // 重定向到index页面
        return "redirect:/index";
    }

    // 显示首页
    // 显示首页
    @RequestMapping("/index")
    @ResponseBody
    public String showIndexPage(HttpSession session, Model model) {
        // 在index页面显示用户名信息
        String username = (String) session.getAttribute("username");
        Long time = (Long) session.getAttribute("time");

        // 如果用户名或时间戳为null,执行相应的处理逻辑
        if (username == null || time == null) {
            return "User information not available";
        }

        // 打印用户名和时间戳到控制台
        System.out.println("用户名: " + username + " 时间戳: " + time);

        // 返回一个字符串作为响应
        return "Welcome, " + username + "!";
    }


}

总结

好了,博客到这里结束

目录
相关文章
|
14天前
|
存储 前端开发 Java
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute
|
2月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
86 4
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
3月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
231 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
3月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
50 1
|
4月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
4月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
4月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
86 0
|
5月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
334 1
|
5月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
91 1