Session & Cookie

FPGA时序约束:从时钟树到数据路径的深度解析与优化策略 本文深入解析FPGA时序约束的核心技术与优化策略,涵盖时钟树结构分析、时序报告解读和数据路径优化。重点探讨Vivado工具中的时序约束方法,包括时钟定义、异常约束和物理优化,帮助工程师掌握寄存器级时序分析和系统级协同设计,实现高性能FPGA设计。 阅读详情

什么是会话跟踪技术

会话跟踪是Web程序中常⽤的技术,⽤来跟踪⽤户的整个会话。保持对⽤户会话期间的数据管理。常⽤
的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定⽤户身份
Session通过在服务器端记录信息确定⽤户身份。

Cookie

1.什么是cookie

Cookie是客户端(⼀般指浏览器)请求服务器后,服务器发给客户端的⼀个辨认标识,保存在客户端,当客
户端再次向服务器发送请求时,会携带着这个辨认标识,服务器就可以通过这个标识来识别客户端的身份或
状态等。
 Cookie的作⽤:跟踪会话,记录⼀次会话中(即Session,⼀次会话可能会有多次请求,当然也可以有
多个Cookie来跟踪不同的信息)的信息,这样服务器就会知道⽤户的状态,⽐如有没有登录成功,付款时购
物⻋中的东⻄等,就相当于贴在客户端脑⻔上的纸条,浏览器看不到,但服务器看得到。

2.Cookie的应⽤

2.1 保持⽤户登录状态

将⽤户的信息保存到Cookie中,并发送给浏览器,并且将有效时间设置为⼀个较⻓的时间,这样浏览器
在以后访问⽹站时,都会带着该Cookie,服务器以此来辨识⽤户,⽤户就不再需要输⼊⽤户名和密码等
信息。

2.2 记录⽤户名

⼀旦⽤户登录成功以后,下次再登录时,直接将Cookie中的⽤户名读取并显示出来,这样⽤户就不
需要再次输⼊⽤户名,只输⼊密码即可。

3. Cookie的设置和获取

3.1 、通过HttpServletResponse.addCookie的⽅式设置Cookie

注意:new Cookie()时两个参数都是字符串

Cookie cookie = new Cookie("jieguo","true");
response.addCookie(cookie);

3.3、服务端获取客户端携带的cookie:通过HttpServletRequest获取

<%
Cookie[] cookies = request.getCookies();
if(cookies != null)
for(Cookie c : cookies){
String name = c.getName();//获取Cookie名称
if("jieguo".equals(name)){
String value = c.getValue();//获取Cookie的值
bool = Boolean.valueOf(value);//将值转为Boolean类型
}
}
%>

4.删除Cookie

通过设置同名Cookie的最⼤存活时间为0,删除Cookie是指使浏览器不再保存Cookie,使Cookie⽴即失
效
举例:使name为username的Cookie⽴即失效

//1.创建⼀个name为username的Cookie
Cookie cookie = new Cookie("username", "aaa");
//2.设置Cookie的有效时间为0
cookie.setMaxAge(0);//删除cookie的关键
//3.将cookie发送给浏览器,来替换同名Cookie
response.addCookie(cookie);

Cookie的有效时间
Cookie发送给浏览器以后,浏览器并不会永久保存,也就是到了⼀定的时间以后浏览器会⾃动销毁
Cookie。Cookie的默认有效时间为⼀次会话(⼀次打开关闭浏览器的过程),我们也可以⼿动指定Cookie
的有效时间

//setMaxAge⽤来设置Cookie的最⼤有效时间,需要int型的参数,代表有效的秒数
cookie.setMaxAge(秒数);
//当参数⼤于0时,会设置为指定的秒数
cookie.setMaxAge(30);
//当参数等于0时,浏览器不会保存Cookie,Cookie⽴即失效
cookie.setMaxAge(0);
//当参数⼩于0时,和不设置是⼀样,当前会话有效
cookie.setMaxAge(-100);
//设置⼀个永久有效的Cookie,并⾮永久,只是使Cookie的⽣命很⻓⽽已
cookie.setMaxAge(60*60*24*365*10);

Session

1.什么是Session

Session是另⼀种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,⽽Session保存在服务
器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是
Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通⾏证”来确定客户身份的话,那么Session机制就是通过检查
服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建⽴的⼀份客户档案,客户来
访的时候只需要查询客户档案表就可以了。

2.创建Session的格式

Session对应的类为javax.servlet.http.HttpSession类。每个来访者对应⼀个Session对象,所有该
客户的状态信息都保存在这个Session对象⾥。Session对象是在客户端第⼀次请求服务器的时候创建
的。
Session也是⼀种key-value的属性对,通过getAttribute(Stringkey)和setAttribute(String key,
Objectvalue)⽅法读写客户状态信息。Servlet⾥通过request.getSession()⽅法获取该客户的 Session
例如:

HttpSession session = request.getSession(); // 获取Session对象
session.setAttribute("loginTime", new Date()); // 设置Session中的属性
out.println("登录时间为:" +(Date)session.getAttribute("loginTime")); // 获取
Session属性

3.Session的⽣命周期

Session保存在服务器端。为了获得更⾼的存取速度,服务器⼀般把Session放在内存⾥。每个⽤户都会
有⼀个独⽴的Session。如果Session内容过于复杂,当⼤量客户访问服务器时可能会导致内存溢出。因
此,Session⾥的信息应该尽量精简。
Session在⽤户第⼀次访问服务器的时候⾃动创建。需要注意只有访问JSP、Servlet等程序时才会创建
Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未⽣成Session,也可以使
request.getSession(true)强制⽣成Session。
Session⽣成后,只要⽤户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。⽤户
每访问服务器⼀次,⽆论是否读写Session,服务器都认为该⽤户的Session“活跃(active)”了⼀次。
由于会有越来越多的⽤户访问服务器,因此Session也会越来越多。为防⽌内存溢出,服务器会把⻓时间
内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服
务器,Session就⾃动失效了。
Session的超时时间为maxInactiveInterval属性,可以通过对应的getMaxInactiveInterval()获取,通过
setMaxInactiveInterval(longinterval)修改。
Session的超时时间也可以在web.xml中修改。另外,通过调⽤Session的invalidate()⽅法可以使Session
失效。

<session-config>
<session-timeout>30</session-timeout>
</session-config>

4.Session常⽤的⽅法

在这里插入图片描述

5.Session和Cookie的区别

  • (1) Cookie数据保存在客户端,Session数据保存在服务器端。
  • (2) Session是由应⽤服务器维持的⼀个服务器端的存储空间,⽤户在连接服务器时,会由服务器⽣成⼀个唯⼀的SessionID,⽤该SessionID 为标识符来存取服务器端的Session存储空间。⽽SessionID这⼀数据则是保存到客户端,⽤Cookie保存的,⽤户提交⻚⾯时,会将这⼀SessionID提交到服务器端,来存取Session数据。这⼀过程,是不⽤开发⼈员⼲预的。所以⼀旦客户端禁⽤Cookie,那么Session也会失效。
  • (3) Cookies是属于Session对象的⼀种。但有不同,Cookies不会占服务器资源,是存在客服端内存或者
    ⼀个Cookie的⽂本⽂件中;⽽Session则会占⽤服务器资源。所以,尽量不要使⽤Session,⽽使⽤
    Cookies。但是我们⼀般认为Cookie是不可靠的,Cookies是保存在本机上的,但是其信息的完全可⻅性
    且易于本地编辑性,往往可以引起很多的安全问题Session是可靠地。但是⽬前很多著名的站点也都⽤
    Cookie。

过滤器(Filter)

1.什么是过滤器

过滤器实际上就是对web资源进⾏拦截,做⼀些处理后再交给下⼀个过滤器或servlet处理,通常都
是⽤来拦截request进⾏处理的,也可以对返回的response进⾏拦截处理
在这里插入图片描述

2.过滤器的语法格式

2.过滤器的语法格式

  • 2.1.创建⼀个类实现Filter接⼝
public class CharSetFilter implements Filter{}
  • 2.2.重写接⼝中的⽅法
public void destroy() { //销毁的⽅法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain
chain) throws ServletException, IOException {
//过滤⽅法 主要是对request和response进⾏⼀些处理,然后交给下⼀个过滤器或
Servlet处理
chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException {
/*初始化⽅法 接收⼀个FilterConfig类型的参数 该参数是对Filter的⼀些配置*/
}
  • 2.3.在web.xml⽂件中配置
<filter>
<filter-name>过滤器名称</filter-name>
<filter-class>过滤器所在的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名称</filter-name>
<url-pattern>需要过滤的资源</url-pattern>
</filter-mapping>

3.使⽤场景

  • 3.1.如何防⽌⽤户未登录就执⾏后续操作
String name=(String)session.getAttribute("key");
if(name==null){
//跳转到登录⻚⾯
}
  • 3.2.设置编码⽅式–统⼀设置编码
  • 3.3.加密解密(密码的加密和解密)
  • 3.4.⾮法⽂字筛选
  • 3.5.下载资源的限制
    过滤器的特点:在servlet之前和之后都会被执⾏

监听器(Listener)

1.什么是监听器

监听器就是监听某个域对象的的状态变化的组件
监听器的相关概念:
事件源:被监听的对象(三个域对象 request、session、servletContext)
监听器:监听事件源对象事件源对象的状态的变化都会触发监听器
注册监听器:将监听器与事件源进⾏绑定
响应⾏为:监听器监听到事件源的状态变化时所涉及的功能代码(程序员编写代码)

2.监听器分类

第⼀维度按照被监听的对象划分:ServletRequest域、HttpSession域、ServletContext域
第⼆维度按照监听的内容分:监听域对象的创建与销毁的、监听域对象的属性变化的
在这里插入图片描述

3.监听三⼤域对象的创建与销毁的监听器

监听器的编写步骤(重点):
编写⼀个监听器类去实现监听器接⼝
覆盖监听器的⽅法
需要在web.xml中进⾏配置—注册

<listener>
<listener-class>监听器所在的路径</listener-class>
</listener>

ServletContextListener
监听ServletContext域的创建与销毁的监听器
Servlet域的⽣命周期
何时创建:服务器启动创建
何时销毁:服务器关闭销毁
ServletContextListener监听器的主要作⽤
初始化的⼯作:初始化对象、初始化数据(加载数据库驱动、连接池的初始化)
加载⼀些初始化的配置⽂件(spring的配置⽂件)
任务调度(定时器—Timer/TimerTask)
HttpSessionListener
监听Httpsession域的创建和销毁的监听器
HttpSession对象的⽣命周期
何时创建:第⼀次调⽤request.getSession时创建
何时销毁:服务器关闭销毁、session过期(默认30分钟,修改默认的30分钟是在
Tomcat的web.xml,修改当前项⽬的过期时间是在⾃⼰项⽬的web.xml中)、⼿动销毁
HttpSessionListener监听器的主要作⽤:
由于每次访问⽹站都会默认创建session对象(jsp⻚⾯中page指令中的session属性默认为
true,即被访问时创建session),可以⽤于计数⽹站访问过的⼈
ServletRequestListener
监听ServletRequest域创建与销毁的监听器
ServletRequest的⽣命周期
创建:每⼀次请求都会创建request
销毁:请求结束
⽤法同上,⽤处不是很⼤,此处省略。

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较 C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载 阅读详情

相关推荐

UVM仿真卡住了?别慌!手把手教你定位并解决PH_TIMEOUT超时错误

本文详细解析了UVM仿真中常见的PH_TIMEOUT超时错误,提供了从错误诊断到解决方案的完整指南。通过理解错误机制、分析调试技巧和常见问题场景,帮助验证工程师快速定位并解决这一棘手问题,同时分享了预防措施与最佳实践,提升仿真效率。

weixin_28683065的博客 370

javaWeb—4. cookie、Filter和Listener

Session和Cookie 什么是会话跟踪技术 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。保持对用户会话期间的数据管理。 常用的会话跟踪技术是Cookie与Session。 Cookie通过在客户端记录信息确定用户身份 Session通过在服务器端记录信息确定用户身份。 Cookie 更多:https://blog.youkuaiyun.com/hu19930613/article/details/71023092/ 1.什么是cookie Cookie是客户端(一般指浏览器)

不放手,不错过的博客 372

ANSYS Sherlock新手避坑:从ODB++文件导入到属性匹配的完整流程(附官方教程路径)

本文详细解析了ANSYS Sherlock从ODB++文件导入到属性匹配的完整流程,帮助新手避开常见陷阱。内容包括环境准备、官方教程使用技巧、ODB++导入关键检查点、属性验证策略及常见报错解决方案,特别强调了路径设置和材料匹配的重要性,提升仿真效率。

weixin_42519781的博客 456

Web配置过滤器,Cookie对象的简单使用

Web配置过滤器,Cookie对象的简单使用

小牛叹气生活不易的博客 613

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1009

Spring WebFlux响应式编程实战(三):优雅处理异常与高效调试技巧

本文深入探讨了Spring WebFlux响应式编程中的异常处理与调试技巧。文章通过电商订单流处理场景,详细解析了Reactor核心操作符onErrorReturn、onErrorResume和onErrorMap的实战应用,并介绍了如何构建@ControllerAdvice和WebExceptionHandler全局异常处理防线。同时,提供了使用.log()操作符、Hooks.onOperatorDebug()及BlockHound进行高效调试的方法,旨在帮助开发者构建健壮、可维护的响应式应用。

weixin_29252171的博客 67

过滤器Filter实现自动登录 cookie.setPath没有设置 /,引发客户端访问时候没带指定cookie的问题。

先说下问题: 1、客户端访问的时候,有时候没带指定的cookie。 这个是网上找到的path取值规则: 当cookie的path设置了值不为null的时候,以设置的值为准。 当cookie的path为null时候,获取请求的URI的path值 当URI的path值是以“/”结尾的时候,直接设置为cookie的path值 当URI的path值不是以“/”结尾的时候,查看path里面是否有“/” ...

91奔跑的蜗牛 753

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 674

vue 获取响应头里set-cookie的值_Vue实战045:Cookie的创建、读取、删除

前言之前在Django中分享了后台如何来设置Cookie的:Django实战006:Cookie设置及跨域问题处理,那么如果我们想在前端设置Cookie又该怎么来处理呢,今天为大家分享一篇vue中创建、读取、删除Cookie的方法,希望对大家有所帮助。Cookie的形式Cookie和localStorage的有点不同,localStorage可以看作一个对象,通过键直接获取到对应的值,而Cooki...

weixin_39802784的博客 5240

【首发独家】华为OD机试 - 服务中心选址、服务中心的最佳位置(C 语言解题)

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南 华为 od 机试,独家整理 已参加机试人员的实战技巧 本篇华为 OD 机试题解:服务中心选址、服务中心的最佳位置

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

【AUTOSAR-COM】-2.3_通过PduGroup批量控制CAN Frame/Pdu的接收

-->如果实现类似UDS诊断 $28服务,控制所有APP CAN Rx Frame/Pdu/报文接收; -->自定义过滤CAN信号的接收。

「汽车电子助手」的博客 1991

Spring boot配置过滤器filter,读取cookie 设置cookie,读取请求头等

首先 我们理解一下filter这个狗东西在项目中的作用 上图是filter在服务中的作用 spring boot 中添加filter分为两种 一种为自定义版 一种为注解版 这里我们先用自定义版,目录结构如下吊样 首先我们定义一个MyFilter类 并实现Filter接口,这里就是http入口和出口,所以我们可以在这里做一些业务上的操作 package com.filter; import lombok.extern.slf4j.Slf4j; import org.springfra..

wodebokecsdn的博客 3877

算法 | 基于MATLAB的增量式SVD技术综述:实现方法、代码示例与应用实践

效率提升:较传统SVD降低计算复杂度从On3O(n^3)On3至On2O(n^2)On2实时性:支持毫秒级动态数据更新资源友好:内存占用降低60%-80%[5]

尘世冰封的专栏 488

Cookie & Session

使用相对路径来解决, 一个非常重要的规则:页面所有的相对路径,在默认情况下,都会参考当前浏览器地址栏的路径 http://ip:port/工程名/ + 资源来进行跳转。

我的博客 1583

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an &ldquo;advanced algorithms&rdquo; book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【JavaWeb】之Cookie & Session

JavaWeb基础Session与Cookie相关知识详细介绍~

小新要变强的博客 2439

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PHP COOKIE & SESSION

cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。 cookie存放在客户端浏览器中,session保存在服务器上。它们之间的联系是session ID一般保存在cookie中。 cookie工作原理 当客户访问某个网站时,在PHP中可以使用setcookie函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在c:Doc

haoke 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Cookie & Session & Token

Cookie &amp; Session &amp; Token Cookie: 理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。 而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。(例:用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了)

gc_charl的博客 989

session & cookie

这里写目录标题会话技术CookieCookie对象Cookie的基本使用获取cookie信息Cookie的携带路径Cookie的生存时间如何清空Cookie案例-记住登录信息SessionSession对象使用session满足条件以及session和cookie的联系session原理:session 和 cookie 区别:session的基本使用持久化session对象销毁sessionsession生命周期 会话技术 概述:服务器与浏览器进行数据交互的时候往往会产生一些数据、将这些数据保存起来、就需

hxc2u的博客 212

cookie & session & localStorage & sessionStorage

由于HTTP是一种无状态的协议,服务器单从网络连接上是无法知道客户身份的。这时候服务器就需要给客户端颁发一个cookie,用来确认用户的身份。简单的说,cookie就是客户端保存用户信息的一种机制,用来记录用户的一些信息。原理:web服务器通过在http响应消息头增加Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器则通过在http请求消息中增加Cookie请求头字段将Cookie回传给web服务器。

pscool的博客 2247

cookie & session

这些都是基础知识,不过有必要做深入了解。先简单介绍一下。 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普...

weixin_38182535的博客 140

cookie & session

cookie和session的区别Cookie:从客户端访问数据,在服务器创建cookie,随着响应页面返回到客户端,保存在客户端的操作系统中,(每个浏览器有自己的cookie保存地址),Session:从客户端访问数据,在服务器创建session,保存在服务器上,然后会创建一个cookie(“JSESSIONID”,当前session对象的唯一标识id),此cookie的默认寿命是(-1),即在...

baidu_38714195的博客 210
上一篇: JavaWeb_Jsp (课堂笔记)
下一篇: JavaWEB MVC
githubbbb
博客等级 码龄7年 2粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值