当前位置: 首页 > news >正文

Cookie+Session详解

文章目录

  • 批量删除
  • 会话技术
    • 简介
    • Cookie
    • Cookie 查看
    • Cookie 的删除
    • Cookie 使用
    • 页面获取 cookie 信息
    • cookie 特点
    • Session
    • session 的使用
    • Session 登录权限验证
  • 过滤器
    • 简介
    • 过滤器的使用
    • @WebFilter 注解
    • 过滤放行
    • 登录权限验证


批量删除

servlet 类
在这里插入图片描述

dao 层
在这里插入图片描述

会话技术

简介

在计算机领域中,客户端与服务器之间的一次通话被称为会话。当打开浏览器去访问一个地
址,请求成功后就意味着开启了会话;会话期间可以多次访问站点内的其他资源;
会话技术有两种实现方式:
① 客户端会话 – Cookie
② 服务器会话 – Session
会话的根本目的:跟踪客户信息,保存客户信息实现数据共享;

Cookie

简介
用于判断用户是否登录过某网站,如果登录过用户的信息会被保存在客户端浏览器当中,下次
可以直接从 Cookie 中获取用户信息,直接填充到输入框中,实现自动加载用户信息的功
能;
还可以在购物车的模块进行使用,记录用户购物的习惯,做精准的推送服务;

Cookie 查看

查看浏览器 Cookie
在这里插入图片描述

Cookie 的删除

在这里插入图片描述

Cookie 使用

利用登录功能来实现 cookie 记录用户信息,并且在下一次用户登录系统实现用户信息的自
动加载;

在接受登录请求的 servlet 中使用 cookie 保存信息

在这里插入图片描述

页面获取 cookie 信息

在这里插入图片描述

cookie 特点

① Cookie 中以键值对方式进行用户信息的保存
② Cookie 是保存在客户端浏览器中,一般需要设置有效期,如果不设置浏览器在关闭时会清
空当前的 Cookie 信息;
③ Cookie 的安全是较低

Session

简介

session 为服务器提供的会话对象,只要会话建立服务器不关闭,整个站点内都能使用会话
对象;同时 session 也是第二大作用域对象;
seesion 在记录用户信息是有一个关键的属性 sessionID,而且 sessionID会储存在
cookie 中;我们依靠 sessionID 来跟踪用户信息;

在这里插入图片描述

① 客户在每次在发送请求时,都会携带 JSessionID 进行服务器访问,如果这个
JSessionID 不存在,到达服务器后会创建一个新的 JSessionID 并将其保存到客户端的
Cookie 中,如果存在就直接使用该 JSessionID;
② 如果关闭了浏览器或者主动结束会话,会话周期结束,客户端存放JSessionID 的
cookie 会自动销毁;再次打开浏览器访问时,需要重新创建 JSessionID。

session 的使用

正常登录后页面显示内容和 JSessionID
在这里插入图片描述

不关闭浏览器,重新打开一个窗口,访问 index 页面

在这里插入图片描述
此时,两次使用的是同一个 JSessionID,虽然是两个访问,但是会话中途并没有中断,所有
共有一个 JSessionID
如果关闭浏览器重新打开浏览器,得到结果如下

在这里插入图片描述

此时 JSessionID 和上一次登录的 JSessionID 就不在是一个

Session 登录权限验证

一个网站,在未登录的情况下不允许访问某些内容,就可以使用 session 进行登录后用户的
储存,然后在访问某些页面时,根据当前 session 对象中是否有用户信息进行判断能否进行
页面的访问;

在这里插入图片描述
但是,这种做法只适用于少量页面,如果需要验证登录权限的页面太多,这种方式就不再合
适,此时需要使用过滤器来实现权限验证

自动登录效果(cookie + session)
jsp 页面
在这里插入图片描述
LoginServlet
在这里插入图片描述
MainServlet
在这里插入图片描述

过滤器

简介

通常用于登录权限验证,以及编码格式设置操作;
Java 中提供 Filter 作为过滤器,也是在tomcat 启动后容器初始化时被加载;需要通过
web.xml 中添加配置,或者使用注解来实现过滤的功能;
过滤器可以有多个共存,可以配置过滤的顺序;

过滤器的工作原理

在这里插入图片描述
过滤器底层源码

在这里插入图片描述

过滤器的使用

自定义类实现 Filter 接口,重写 doFilter 方法

在这里插入图片描述
配置自定义过滤器让其生效

在这里插入图片描述

@WebFilter 注解

value、urlPatterns 表示过滤的请求;filterName 用来实现多个过滤器过滤顺序的比
较;
String[] value() default {};
String[] urlPatterns() default {};
String filterName() default “”;

过滤放行

在这里插入图片描述

登录权限验证

在这里插入图片描述

相关文章:

Cookie+Session详解

文章目录批量删除会话技术简介CookieCookie 查看Cookie 的删除Cookie 使用页面获取 cookie 信息cookie 特点Sessionsession 的使用Session 登录权限验证过滤器简介过滤器的使用WebFilter 注解过滤放行登录权限验证批量删除 servlet 类 dao 层 会话技术 简介 在计算机领域…...

CAPL脚本要注意区分elcount和strlen求数组长度的区别,不然要吃大亏

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

CSS常用选择器

目录 1.CSS是什么 2.CSS的三种写法 2.1内部样式 2.2内联样式 2.3外部样式 3.CSS选择器 3.1标签选择器 3.2类选择器(更好的选择) 3.3ID选择器 3.4后代选择器 3.5子选择器 3.6并集选择器 3.7伪类选择器(复合选择器的特殊用法) 1.CSS是什么 CSS全称Cascding Style Sh…...

Registry与DGC的攻击利用

0x01 2022-02-03写的一篇文章。 0x02 Registry Registry指的是RMI的注册表,攻击的目标是注册表所在的机器,一般注册表和RMI Server在同一个机器上,特殊情况下也会在不同机器上。 在我们通过LocateRegistry#getRegistry获取到目标开启的注…...

赛道持续降温!又一家自动驾驶公司裁员,市值曾超50亿美元

从去年下半年开始,自动驾驶赛道的裁员、倒闭风潮盛行。 本周,美股卡车自动驾驶上市公司Embark Trucks(EMBK)宣布将裁员70%,同时大幅缩减业务。“痛苦可能还没有结束,”公司首席执行官Alex Rodrigues在给员…...

路径规划 | 图解动态A*(D*)算法(附ROS C++/Python/Matlab仿真)

目录0 专栏介绍1 什么是D*算法?2 D*算法核心概念一览3 D*算法流程图4 步步图解:算法实例5 算法仿真与实现5.1 ROS C实现5.2 Python实现0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详…...

GraphCut、最大流最小割定理

G(V,E);V为点集,E为边集; 节点集V中的节点分为: (1)终端节点。不包含图像像素,用S和T表示。S为源点,T为汇点。图像分割中通常用S表示前景目标&a…...

Word文档的密码忘记了怎么办?

Word文档可以设置两种密码,文件的“限制密码”和“打开密码”,今天来分享一下忘记这两种密码可以如何处理。 如果忘记的是Word文档的“限制密码”,文档就无法编辑及更改了,菜单目录中的相关选项也都是灰色状态,无法点…...

Java分布式事务(二)

文章目录🔥分布式事务处理_认识本地事务🔥关系型数据库事务基础_并发事务带来的问题🔥关系型数据库事务基础_MySQL事务隔离级别🔥MySQL事务隔离级别_模拟异常发生之脏读🔥MySQL事务隔离级别_模拟异常发生之不可重复读&…...

游戏项目中的程序化生成(PCG):算法之外的问题与问题

本篇讨论的是什么 从概念上讲,PCG(程序化生成)的含义很广:任何通过规则计算得到的内容,都可算作是PCG。但在很多游戏项目的资料,包括本篇,讨论PCG时特指是:用一些算法/工具(特别是H…...

【C++】位图+哈希切割+布隆过滤器

文章目录一、位图1.1 位图概念1.2 位图实现1.2.1 把x对应比特位0置11.2.2 把x对应比特位1置01.2.1 查看x对应比特位1.3 位图源码1.4 位图的应用二、哈希切割(处理海量数据)三、布隆过滤器3.1 布隆过滤器的概念3.2 布隆过滤器的应用场景3.3 布隆过滤器的实…...

python实现网络游戏NPC任务脚本引擎(带限时任务功能)

python实现NPC任务脚本引擎 一、简介二、简单示例三、实现任务限时的功能四、结合twisted示例一、简介 要实现面向对象的网络游戏NPC任务脚本引擎,可以采用以下步骤: 1.定义NPC类:该类应该包括NPC的基本属性和行为,如名字、位置、血量、攻击力等等。NPC还应该有任务的列表…...

C语言的原子操作(待完善)

文章目录一、什么是原子操作二、为什么需要原子操作三、API一、什么是原子操作 原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断,可以视为最小的操作单元,是在执行的过程中、不会导致对数据的并发访问的、最小操作&#x…...

JavaScript Boolean 布尔对象

文章目录JavaScript Boolean 布尔对象Boolean 对象Boolean 对象属性Boolean 对象方法检查布尔对象是 true 还是 false创建 Boolean 对象JavaScript Boolean 布尔对象 Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false&#xff0…...

删除链表元素相关的练习

目录 一、移除链表元素 二、删除排序链表中的重复元素 三、删除排序链表中的重复元素 || 四、删除链表的倒数第 N 个结点 一、移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头…...

3DEXPERIENCE Works 成为了中科赛凌实现科技克隆环境的催化剂

您的企业是否想过实现设计数据的统筹管理,在设计上实现标准化,并把每位设计工程师串联起来协同办公?中科赛凌通过使用3DEXPERIENCE Works 实现了上述内容,一起来看本期案例分享吧!中科赛凌 通过其自主研发的单压缩机制冷技术实现零下190℃制…...

少儿编程 电子学会图形化编程等级考试Scratch一级真题解析(选择题)2022年12月

少儿编程 电子学会图形化编程等级考试Scratch一级真题解析2022年12月 选择题(共25题,每题2分,共50分) 1、小明想在开始表演之前向大家问好并做自我介绍,应运行下列哪个程序 A、 B、 C、 D、 答案:D...

【完整版】国内网络编译,Ambari 2.7.6 全部模块源码编译笔记

本次编译 ambari 2.7.6 没有使用科学上网的工具,使用的普通网络,可以编译成功,过程比 ambari 2.7.5 编译时要顺畅。 以下是笔记完整版。如果想单独查看本篇编译笔记,可参考:《Ambari 2.7.6 全部模块源码编译笔记》 该版本相对 2.7.5 版本以来,共有 26 个 contributors …...

HTML 颜色值

HTML 颜色值 颜色由红 (R)、绿 (G)、蓝 (B) 组成。 颜色值 颜色值由十六进制来表示红、绿、蓝(RGB)。 每个颜色的最低值为 0 (十六进制为 00 ),最高值为 255 (十六进制为 FF )。 十六进制值的写法为#号后跟三个或六个十六进制字符。 三位…...

RabbitMQ-消息的可靠性投递

文章目录0. 什么是消息的可靠性投递1. confirm机制2. return机制3. 总结0. 什么是消息的可靠性投递 在生产环境中,如果因为一些不明原因导致RabbitMQ重启,RabbitMQ重启过程中是无法接收消息的,那么我们就需要生产者重新发送消息。或者在消息…...

Qdrant Python客户端全解析:从向量数据库连接到AI应用开发实战

1. 项目概述:从向量数据库到客户端,现代AI应用落地的关键拼图如果你最近在折腾大语言模型应用,或者想给自己的产品加上一个“智能大脑”,那你大概率已经听过“向量数据库”这个词了。简单来说,它就像一个专门为AI模型设…...

Supabase AI Agent技能库:安全集成数据库操作与边缘函数调用

1. 项目概述:当Supabase遇上AI Agent,一个技能库的诞生最近在捣鼓AI Agent应用开发,发现一个挺有意思的现象:大家都能用LangChain、LlamaIndex这些框架快速搭出个Agent的架子,但真想让这个Agent去干点具体、有用的活儿…...

UVa 366 Cutting Up

题目描述 拼布者经常需要将布料切割成 111 \times 111 的小正方形。他们有一种特殊工具(旋转切割刀),可以一次切割多层布料,切割层数的上限由布料类型决定(题目输入的第一个参数 KKK)。切割时,无…...

开源办公套件自动化部署与集成实战:基于OpenOffice的服务化解决方案

1. 项目概述:为什么我们需要一个“开源”的办公套件?如果你在GitHub上搜索过办公软件相关的仓库,大概率会看到过longyangxi/OpenOffice这个项目。乍一看,你可能会以为这是一个Apache OpenOffice的镜像或者某个分支。但点进去仔细研…...

为AI编程助手构建安全防线:Cursor自定义规则实战指南

1. 项目概述:为AI编程助手装上“安全护栏” 如果你和我一样,深度使用Cursor这类AI编程助手,那你一定体验过它带来的效率革命。它能帮你生成代码、重构函数、甚至解释复杂的逻辑,就像一个不知疲倦的编程伙伴。但硬币总有另一面——…...

Lingoose框架实战:构建智能客服工单处理AI工作流

1. 项目概述:从“Lingo”到“Goose”,一个AI应用编排框架的诞生如果你最近在折腾大语言模型应用,尤其是想把OpenAI、Anthropic这些API的能力整合到自己的业务流程里,那你大概率已经体会过那种“胶水代码”的烦恼了。今天要聊的这个…...

AI编程助手安全规则实战:从SQL注入防御到团队安全基线构建

1. 项目概述:当AI编程助手遇上安全红线最近在GitHub上看到一个挺有意思的项目,叫“cursor-security-rules”。光看名字,你大概能猜到它和Cursor这个AI编程工具有关,而且重点是“安全规则”。没错,这个项目本质上是一个…...

如何选蜂蜜品牌?2026年5月推荐靠谱蜂蜜品牌避坑指南

一、引言买蜂蜜怕踩坑?市面上的蜂蜜产品琳琅满目,但勾兑蜜、浓缩蜜、添加糖浆的“科技蜜”层出不穷,消费者往往花了高价却买不到真正的纯正好蜜。对于注重健康饮食、追求天然原生态食品的消费者而言,如何从海量品牌中筛选出真正无…...

基于CircuitPython与加速度计的魔法9号球:嵌入式交互项目实践

1. 项目概述:当硬件遇上玄学,用代码打造你的专属“决策神器”在嵌入式开发的世界里,我们常常与传感器、显示屏和逻辑代码打交道,构建着一个个解决实际问题的智能设备。但谁说硬件项目就一定要严肃刻板?今天&#xff0c…...

基于WLED分段功能与激光切割的多层智能艺术灯板制作全攻略

1. 项目概述与核心价值如果你和我一样,对那种能随着音乐呼吸、或者能独立变换不同区域色彩的智能灯光装置着迷,那么你一定会喜欢这个项目。它远不止是把LED灯条粘在板子后面那么简单,而是将激光切割的精密工艺、分层的艺术设计,与…...