【JavaEE】cookie和session

cookie和session

  • cookie
    • 什么是 cookie
    • Servlet 中使用 cookie相应的API
  • Servlet 中使用 session 相应的 API
  • 代码示例: 实现用户登陆
  • Cookie 和 Session 的区别
  • 总结

cookie

什么是 cookie

  1. cookie的数据从哪里来?
    • 服务器返回给浏览器的
  2. cookie的数据长什么样?
    • cookie 中是键值对结构的数据, 并且这里的键值对都是程序员自己定义的
  3. cookie的作用是什么?
    • cookie就可以在浏览器这边存储一些 “临时性的数据”
    • 其中最典型的一种使用方式, 就是用来存储 “身份标识” – sessionID
  4. cookie 到哪里去?
    • cookie的内容会在下次访问该网站的时候, 自动被带到HTTP请求中
  5. cookie 怎么存?
    • 浏览器按照不同的"域名" 分别存储 cookie
    • 域名和域名之间的cookie是不能干扰的
    • cookie 存储在硬盘上的
    • cookie存储往往会有一个超时时间

Servlet 中使用 cookie相应的API

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用示例

在这里插入图片描述
在这里插入图片描述

Servlet 中使用 session 相应的 API

在这里插入图片描述
在这里插入图片描述

代码示例: 实现用户登陆

login.html

在这里插入图片描述

IndexServlet

在这里插入图片描述

LoginServlet

在这里插入图片描述


代码获取仓库

Cookie 和 Session 的区别

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

总结

  • cookie是客户端的机制, session是服务端的机制;
  • 在第一次登录的时候, 用户输入账号和密码发送服务端, 服务器此时读取HTTP请求中的cookie中的字段, 发现此时的请求没有cookie字段, 服务器就会为这个新的用户创建新的session, 建立起sessionID和session对象的联系, 并将sessionID作为Set-cookie字段填充响应HTTP, 最后将HTTP返回给客户端;
  • 客户端的游览器收到服务器的响应HTTP报文, 从中解析出来Set-cookie字段, 并将其内容保存在cookie文件中, 下次如果客户端再次访问该服务器, 浏览器就会将该域名中的cookie内容提取出来, 作为cookie字段的内容, 作为HTTP中header, 向服务器发送请求HTTP报文;
  • 此时服务器收到请求HTTP, 从cookie字段中提取到sessionID, 这样就可以找到已有的session了, 就可以进行后续的操作了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157081.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NI-9219 100 S/s/ch国产化4通道C系列通用多功能模拟输入模块,支持多种传感器

100 S/s/ch,4通道C系列通用模拟输入模块 NI-9219专为多功能测试而设计。NI-9219可用于测量来自多种传感器(如应变计,电阻温度检测器(RTD),热电偶,测压元件和其他有源传感器等)的信号,以及制作1…

基于tpshop开发多商户源码支持手机端+商家+门店 +分销+淘宝数据导入+APP+可视化编辑

tpshop多商户源码,tpshop商城源码,tpshop b2b2c源码-支持手机端商家门店 分销淘宝数据导入APP可视化编辑 tpshop商城源码算是 thinkphp框架里做的比较早 比较好的源码了,写法简明 友好面向程序猿。 这是一款前几年的版本 虽然后台看着好了些,丝毫不影响…

基于VPP的TCP/UDP协议栈加速方案

今天给大家带来英特尔高级软件工程师刘勇在2023英特尔网络技术研讨会上的分享:《基于VPP的TCP/UDP协议栈加速方案》。 随着互联网流量的持续快速增长,作为网络的基本底层组件,TCP/UDP协议栈成为加速网络性能的重点方向。保持和提高带宽增加的…

Flutter 02 基础组件 Container、Text、Image、Icon、ListView

一、Container容器组件: demo1: import package:flutter/material.dart;void main() {runApp(MaterialApp(home: Scaffold(appBar: AppBar(title: const Text("你好Flutter")),body: const MyApp(),),)); }// 容器组件 class MyApp extends St…

树形结构数据展示及返回上一级

11月1日&#xff0c;又是搬砖的一天&#xff0c;让我们红尘作伴&#xff0c;活的潇潇洒洒。。。。。。 html <template><view class"content"><view><input class"sreachTool" v-model"toolValue"/><van-icon name…

gRPC之grpcui界面工具

1、grpcui界面工具 简单的说&#xff0c;就是gRPC中的postman&#xff0c;grpcui官方地址&#xff1a;https://github.com/fullstorydev/grpcui。 1.1 安装 go get -u github.com/fullstorydev/grpcui go install github.com/fullstorydev/grpcui/cmd/grpcuiv1.2.0[rootzsx …

React Hooks的使用

目录 1.React Hooks使用注意事项 1.useState Hook&#xff1a; 2.useEffect Hook&#xff1a; 3.其他常用Hooks&#xff1a; 2.使用React Hooks需要遵循 1.安装React&#xff1a; 2.导入所需的Hooks&#xff1a; 3.使用Hooks创建组件&#xff1a; 4.在应用中使用组件&…

Redis入门指南学习笔记(1):初识Redis

一.什么是Redis? Redis全称为Remote Dictionary Server&#xff0c;即远程字典服务器&#xff0c;它采用字典结构来存储数据&#xff0c;并允许其他应用通过TCP协议来访问数据。 字典在众多开发语言中都很常见&#xff0c;其形式为键值对&#xff0c;根据键可以获取相应的值…

CHS零壹视频恢复程序监控版/海康版/大华版深入扫描功能演示

安防文件系统是一种嵌入式文件系统&#xff0c;一般情况下监控版程序扫描会基于文件系统进行扫描&#xff0c;如果想更深入的扫描一些数据建议开启深入扫描功能&#xff0c;具体方法如下: 适用版本:监控版/海康版/大华版/专业版/高级版 作用&#xff1a;舍弃嵌入式文件系统直…

利用两个栈s1,s2模拟一个队列时,如何用栈的运算来实现该队列的运算?写出模拟队列插入和删除的函数。一个栈s1用于插入元素,另一个栈s2用于删除元素

利用两个栈s1&#xff0c;s2模拟一个队列时&#xff0c;如何用栈的运算来实现该队列的运算&#xff1f;写出模拟队列插入和删除的函数。一个栈s1用于插入元素&#xff0c;另一个栈s2用于删除元素。 前置知识点&#xff08;栈定义&#xff0c;及出栈入栈函数&#xff09; #def…

GORM:在Go中轻松管理数据库

GORM综合介绍 - Go对象关系映射库 在现代软件开发中&#xff0c;高效的数据库管理对于构建强大的应用程序至关重要。GORM是Go开发人员寻求与数据库进行交互的简化方式的宝贵工具。GORM是Go对象关系映射的缩写&#xff0c;它为Go的面向对象世界与数据库的关系世界之间提供了桥梁…

2.2 - 网络协议 - IP协议,IP地址划分,报文格式,数据分片,抓包实战

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 IP协议 1、IP地址划分2、IP协议报文格式3、IP协议数…