Cookie和Session的基础知识+高级编程+实际开发中的应用(经典)

Servlet基础知识Cookie和Session cookie用来在浏览器端存储用户的状态信息,然后再访问后端的时候将这部分信息带回到后端。cookie的主要内容包括:名字、值、过期时间、路径和域。Session是用来在服务器端保存用户的信息。比如购物车,在用户点击“下单”按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建特定的session,用于标识这个用户,并且跟踪用户,这样才知道购物车里面有什么。这个session是保存在服务端的,有一个唯一标识。 阅读详情
一、JSP
    1.jsp概述
    ~jsp是sun公司提供的动态web资源开发技术,出现的目的是解决Servlet不适合在java代码中输出html页面的问题。改变了Servlet在java代码中嵌入html代码的过程变为了在
H
TML页面中嵌入java代码,从而使组织页面的过程看起来就像在写一个html一样,而相对于html又可以嵌入java代码引入动态数据。
    
    ~jsp直接可以通过浏览器访问,jsp会在第一次被访问到时由服务器内部的jsp翻译引擎翻译为一个Servlet,从此每次对这个jsp的访问都是翻译过来的Servlet执行后输出
    
    2.jsp语法
        JSP模版元素:在jsp页面中直接书写的HTML内容就叫做jsp模版元素,在翻译过来的Servlet中模版元素被直接out.write()最终直接输出到浏览器上
        
        JSP脚本表达式: <%= java表达式%>  在翻译过来的Servlet中直接计算表达式的值,将计算出来的值输出到浏览器上
        
        JSP脚本片段:  <% 若干java语句 %> 在翻译过来的Servlet中直接被复制粘贴到了对应位置上
                                            多个脚本片段中的代码可以互相访问,一个脚本片段中的代码可以是不完整的但是所有的脚本片段加在一起应该是一个完整的
java代码
       JSP声明: <%! 若干java语句 %>  jsp声明中的内容在翻译过来的servlet中,会和Service方法平级,变为类的一个成员
        
       JSP注释: <%-- 被注释的内容 --%>  被jsp注释注释的内容,在翻译的过程中被遗弃掉,在翻译过来的Servlet中没有它
                // 被java注释注释的内容,被当作脚本片段翻译到了Servlet中,但是被注释掉了,在.java文件被编译成.class文件的过程中被遗弃掉
                <!-- --> html注释的内容被当作模版元素输出到了浏览器上,而浏览器认识html注释,最终不予显示而已
      
二、Cookie
客户端技术,基于set-Cookie 响应头和 cookie请求头,将会话产生的数据保存在客户端


Cookie cookie = new Cookie("","") -- 一个Cookie对象需要在创建的时候就指定好名字和值
setValue与getValue方法 
--  获取设置cookie的值
getName方法 
--  获取cookie的名字 ,cookie的名字一旦在创建的时候指定过,就不能再修改了.
setMaxAge与getMaxAge方法 
-- 用来设置cookie的保存时间的方法,一个cookie如果没有设置过maxage,那么这个cookie默认是一个会话级别的cookie,这个cookie信息会被浏览器保存在浏览器
的内存中,一旦浏览器关闭,内存销毁cookie信息也就消失了.也可以为一个Cookie设置maxage指定cookie要保存的时间,这样浏览器在接受到cookie后就会将cookie信
息以临时文件的形式保存在浏览器的临时文件夹中,保存的时间就是指定的时间,这样一来只要在过期时间之前,即使浏览器多次开关,cookie信息仍然会存在.
setPath与getPath方法
--用来设置在访问服务器中哪个路径及其子路径时带着当前cookie,如果没有明确设定过path,则默认的path是当前发送Cookie的Servlet的所在的路径
http://loclahost/Day05/servlet/Demo1 cookie 
setDomain与getDomain方法
--用来设置访问哪个域名时带着当前的Cookie,如果不设置则默认是当前发送cookie的域名
注意:现代的浏览器只要cookie设置过domain则认为这是一个第三方cookie,浏览器拒绝接受



response.addCookie(Cookie c);--向响应中增加一个cookie信息
Cookie [] cs = request.getCookies(); -- 从请求中获取所有cookie组成的数组
    
*想要删除一个cookie,只要发送和要删除的cookie同名同path同domaint(设置了就不接受了,所以不设置)cookie并且,maxage设置为0,这样浏览器在收到cookie后覆
盖旧的cookie,并且立即超时删除,就相当于删除了旧的Cookie
    


三、session
服务器端技术,将会话产生的数据保存在服务器端
1.session是一个域对象

作用范围:整个会话范围
生命周期:当浏览器第一次调用到request.getSession()时创建出对应浏览器的session.当session超过30分钟(这个时间是可以在web.xml中配置的)没人用服
务器认为session超时,此时销毁session.当调用session对象的invalidate方法则立即销毁session.当服务器非正常关闭是session会被销毁.
~服务器正常关闭时,还存活的session将被钝化起来,直到下次正常启动服务器时,再活化回来.


setAttribute
getAttribute
removeAttribute


2.session的原理
基于一个名叫JSESSIONID的特殊的cookie工作的,这个cookie名字叫JSESSIONID,值是创建处理的session的id编号,从而下次在带着这个cookie访问服务器
时,request.getSession方法可以从cookie中分析出session的id,找到对应的id的session为这个浏览器服务


*购物案例中手动发送jsessionid cookie并设置maxage,实现即使开关浏览器仍然能够使用session




3.URL重写解决禁用cookie时使用session
URL重写:如果浏览器禁用了cookie可以在网站所有超链接上都拼接一个特殊的参数JSESSIONID,从而利用URL将session的id带过来从而找到session为浏览器服务器.
这个过程叫做URL重写

在url重写之前一定要先获取session,有了session才能重写
response.encodeURL("") -- 如果地址是一个普通地址就用这个方法
response.encodeRedirectURL("") -- 如果这个地址是给重定向用的请用这个方法


*URL重写的方法非常的聪明,会自动检查浏览器有没有带着cookie信息来,如果浏览器带了任意的cookie访问服务器,URL重写的方法认为浏览器没有禁用cookie就不会进行URL重写的操作
了


*request.getSession() -- 首先检查cookie中有没有JSESSIONID cookie如果有找到他的值找到session为浏览器服务器
如果没找到接着找URL后有没有JSESSIONID,如果有拿着值找到session为浏览器服务器
如果还找不到,认为是一个新的来访者这行代码创建一个新的session,并将session的id值作为JSESSIONID cookie的值发送给浏览器




案例1:用户登录注销
案例2:一次性验证码
案例3:防止表单重复提交



cookie和session区别:
cookie是客户端技术,优点可以保存的时间比较长,缺点时随时可能由于用户的操作被删除掉
session是服务器端技术,优点十分可靠,由于占用服务器内存,一般存活的时间都比较短


【Golang】关于Gin框架中的Cookie和Session 在深入探讨Cookie和Session之前,我们需要了解HTTP协议的无状态特性。简单来说,HTTP是一种无状态协议,即每次请求与响应之间都是独立的,服务器不会记住之前的状态信息。这意味着,当用户从一个页面跳转到另一个页面时,服务器无法自动识别这是同一个用户的请求。为了实现跨请求的数据共享,我们可以使用Cookie和Session。本文将结合实际案例,详细介绍在Go语言的Gin框架中如何使用Cookie和Session。 阅读详情

相关推荐

HTTP协议、cookie、session超详细笔记整理,一篇就够了

HTTP协议、cookie、session超详细笔记整理,一篇就够了

Cookie和Session的各自作用、使用场景、java操作代码(创建、获取等操作)

Cookie和Session的各自作用、使用场景、java操作代码(创建、获取等操作)

每天八杯水的博客 578

基于MobileNet⁃DOA的无人机射频信号识别方法

本文提出了一种基于MobileNet-DOA模型的无人机射频信号识别方法,用于解决低信噪比环境下无人机型号和飞行模式识别率低的问题。该方法首先采用变分模态分解(VMD)进行信号预处理以降低噪声干扰,然后通过短时傅里叶变换(STFT)将信号转换为时频图。在模型设计上,将DOConv卷积融入MobileNetv4模型以增强特征提取能力并提高运算速度,同时引入FA注意力机制提升低信噪比环境下的识别精度。实验结果表明,该方法在-15~15dB信噪比范围内的平均识别准确率达到94.83%,显著优于现有方法,特别在-1

qq_43416206的博客 1349

Cookie和Session的实际应用

1.记录登录时间 2.网页设置选项 3.购物车(cookie+数据库) 4.单点登录 5.记录每个用户访问数

passer's blog 643

【低空经济】无人机充电站设计方案

随着无人机技术的快速发展和广泛应用,其在物流、农业、巡检、救援等领域的应用日益普及。然而,无人机的续航能力一直是限制其大规模应用的关键因素之一。为了解决这一问题,无人机充电站的设计与建设显得尤为重要。本项目旨在设计一套高效、智能、可扩展的无人机充电站系统,以满足不同场景下无人机的充电需求,提升其作业效率和应用范围。无人机充电站的设计将围绕以下几个核心目标展开:首先,充电站应具备快速充电能力,以减少无人机的停机时间,提高作业效率;

2959

vasp计算练习1-Si

si的vasp训练流程

qq_41074165的博客 3295

js中cookie的实际应用

最近项目开发过程中遇到一个问题,需求是记录各个权限用户最后登录时间,之前没有细想只是一股脑的把当前时间,以及各种身份验证信息塞进方法验证,然后把该方法放在登录按钮旁边,结果测试发现,实际出现情况是,后台插入数据库操作还没走完,页面已经跳转,然后打开系统管理页面查看记录情况,果然没有保存成功。后来各种试验发现弹出登录页面后必须等上七八秒再点登录才能记录成功,但这明显不符合实际需求。再然后,想着退而求

linge-的博客 1462

YOLOv8 WIOU

本文介绍了如何在YOLOv8中实现WIOU(Weighted Intersection over Union)的修改方法。主要修改了ultralytics/utils/metrics.py文件中的bbox_iou函数,新增了WIoU_Scale类,支持单调性FM v2、非单调性FM v3两种模式,并提供了动态调整的动量参数。修改后的函数支持多种IoU变体(GIoU、DIoU、CIoU等),通过数学公式实现了更精确的边界框回归损失计算,特别针对小目标检测场景进行了优化。该实现使用了PyTorch框架,包含完整

FJN110的博客 2042

cookie机制及cookie的应用

cookie简介         一般来说,cookie通过HTTP Headers从服务器端返回到浏览器上。将不重要的信息存在cookie中,减轻服务器压力         cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cook

实践出真知 3947

2026年佰维存储数字IC笔试试卷带答案

建立时间是有效时钟沿到来前,输入数据必须稳定保持的最短时间。保持时间是有效时钟沿到来后,输入数据必须继续稳定保持的最短时间。

Open 103

基于QT与STM32的电力参数采集系统(华为云IOT)(211)

本项目构建一款集多功能于一体的电力参数采集系统,该系统以高性能、低功耗的STM32F103RCT6微控制器为核心,集成多种传感器与通信模块,实现对电力设施如电压、电流、功率、电能及环境温度等关键参数的实时精确采集,并通过GPS模块获取设备地理位置信息,满足了电力设备状态全面监控的需求。

2901

深入理解Web开发中的Cookie和Session管理

Cookie是一小段存储在浏览器(客户端)的文本信息。它由服务器在HTTP响应的Set-Cookie头部中发送给浏览器,并被客户端保存,并在后续的HTTP请求中发送回服务器。通常情况下,它被用来跟踪用户的状态、记录用户的偏好和实现购物车等功能。Cookie通常包括:名字、值、过期时间、路径、域和安全/HttpOnly属性。

qq_55482652的博客 3125

《QGIS快速入门与应用基础》009:国内镜像源(清华大学/阿里云)下载技巧

针对国内用户下载QGIS速度慢、易中断的问题,推荐使用清华大学和阿里云两大国内镜像源,提供3-10MB/s的极速下载方案。详细解析镜像源核心优势、分步骤下载指南及校验方法,对比清华(同步快、北方优选)与阿里云(南方节点多)的特点。针对常见问题如版本延迟、404错误等提供解决方案,并介绍搭配IDM等工具实现多线程加速的进阶技巧。通过镜像源+下载工具组合,用户可高效获取QGIS安装包,为后续系统安装奠定基础。

LuckyHanMo的博客 1733

Cookie和Session介绍

通过实际应用详细介绍Cookie与Session的区别以及如何使用他们

qiaotl的博客 1793

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Cookie和Session的作用,区别和各自的应用范围,cookie、Session工作原理

一、cookie机制和session机制的区别   具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。   同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。 二、会话cookie和持久cookie的区别   如果不设置...

小羽飞的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

cookie和session的原理以及在Servlet中的应用

cookie保存在客户端,session保存在服务器端。二者均用于描述会话的状态。服务器端可以创建多个cookie对象响应到客户端并保存在客户端;浏览器客户端在发送请求时自动携带对应请求路径下的所有cookie信息供服务器响应使用。服务器端也可以获取每个客户端对应的唯一的一个session对象,并取得该对象中的某些属性用来验证用户的非法操作,这里只是大概讲一下二者的地位。

小S的博客 1320

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Web开发】cookie和session

在当今数字化的网络世界中,用户与网站之间的互动成为日常生活中不可或缺的一部分。为了实现用户状态的跟踪和信息管理,Web开发引入了两个关键的概念:Cookie和Session。这两者作为用户和服务器之间通信的关键元素,为构建个性化、安全性强、高效的网络体验提供了基础。本文将深入探讨Cookie和Session的概念、原理以及它们在Web开发中的应用,帮助读者更好地理解这两个在用户数据管理中扮演重要角色的机制。Cookie存储在客户端,Session存储在服务器端。

AliceNo的博客 4045

cookie和session请求

在 Web 开发中,都用于存储用户状态,解决的问题(即每次请求都是独立的,不会记住之前的状态)。

likeyi_lky的博客 1648

Cookie和Session原理详解

在web的发展史中,我们知道浏览器和服务器交互用的是http协议,但是http协议是一种无状态的协议,而这就将导致服务器并不知道是那个浏览器在访问服务器,这就将会出现了很大的问题,所以一些网页需要知道用户的状态,比如网站登录,购物车等等。为了解决上述的问题,Cookie和Session就出现了。Cookie和Session浏览器和服务器传输数据的一种方法,但是需要注意的是,Cookie是有长度限制的,并不能存储比较大的数据,只能存储一些关键的信息。

qq_63525426的博客 1648

C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session

本文主要是关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP读取Cookie内容两个方面讲述.主要结合自己的PHP课程从四个方面进行讲解.Cookie的基础知识、Session的基础知识、PHP使用Cookie、PHP使用Session.同时主要是对后面系统应用系列文章C#读取Cookie和清除Cookie的基础篇.希望该文章能对大家有所帮助,由于作者写得有点晚,如果有错误或不足之处,请海涵!

杨秀璋的专栏 9841

Servlet之Cookie和Session

会话技术 在了解cookie和session之前,需要先了解一个概念:会话 1. 概念 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。web应用中的会话过程类似于生活中的打电话过程,它指的是客户端(浏览器)与web服务器之间连续发生的一系列请求和响应的过程。例如:一个用户在某个网站上的整个购物过程就是一个会话。 2. HttpServletReques...

林大夏的专栏 4008

Cookie和Session在Servlet中的应用

Cookie和Session的区别是什么呢?他在Servlet中的应用是什么呢?

日常学习记录、分享,愿我们都遇见更好的自己,与诸君共勉 1183

cookie和session的区别和用法

cookie和session的区别和用法 一、总结 一句话总结: 1、存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、安全性:cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。 3、性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性...

weixin_34184158的博客 1万+

【编程基础知识】Cookie、Session和JWT(JSON Web Token)

每种状态管理机制都有其适用场景和优缺点。开发者应根据具体需求和安全要求选择最合适的状态管理方式。

Dylaniou的博客 1264

cookie和session的区别(Cookie与session的区别有哪些)

简述cookies和session的区别 1、数据存放位置不同: cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、安全程度不同: cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。 3、性能使用程度不同: sessi...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 7322
上一篇: Response和Resquest基础知识+实际开发中需要注意的点(经典)
下一篇: Jsp开发基础知识+九大隐式对象+11个内置对象+标签库(实际web开发中的典型)
escdelete
博客等级 码龄14年 37粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值