iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Javacookie和session会话技术介绍
  • 267
分享到

Javacookie和session会话技术介绍

Javacookie会话技术Javasession会话技术Javacookiesession 2023-05-14 17:05:43 267人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、cookie1、cookie的概念2、cookie的创建3、获取cookie4、修改cookie5、设置cookie的有效时间6、设置cookie的有效路径二、session

Http无状态协议的解决:

HTTP 是一种无状态协议。 无状态协议不要求服务器在多次请求期间保留有关每个用户的信息或状态。

但是某些 WEB 应用程序可能必须跟踪用户从一个页面到另一个页面的进度,例如,当需要 Web 服务器为用户自定义网页内容时。 这些情况的解决方案包括:

  • HTTP cookie 的使用。
  • 服务器端会话。
  • 隐藏变量(当当前页面包含表单时)
  • 使用 URI 编码参数的 URL 重写,例如,/index.PHP?session_id=some_unique_session_code。

使协议无状态的原因是服务器不需要跟踪多个请求的状态,而不是它如果愿意就不能这样做。 这简化了客户端和服务器之间的合同,并且在许多情况下(例如通过 CDN 提供静态数据)最大限度地减少了需要传输的数据量。 如果要求服务器维护客户端访问的状态,则发出和响应请求的结构将更加复杂。 事实上,模型的简单性是其最大的特点之一。

一、cookie

1、cookie的概念

cookie是一种在服务器中创建并维护,但是保存在浏览器端的会话技术

cookie的应用场景:记住用户名和密码、七天免登陆

2、cookie的创建

//创建cookie
Cookie cookie = new Cookie("username", "admin");
//将cookie响应到浏览器
response.addCookie(cookie);

cookie在报文中的表示方式:

若在服务器中创建cookie,并响应到浏览器,此时在响应报文中会出现:Set-Cookie: username=admin

此后,每次浏览器向服务器发送请求,都会携带此cookie,在请求报文中会出现:Cookie: username=admin

把cookie响应到浏览器之后,会保存在浏览器的运行内存中,当浏览器关闭时,浏览器的运行内存会被释放,因此cookie会被清空。因此会话默认的有效时间就是浏览器开启到浏览器关闭

3、获取cookie

//获取浏览器发送请求所携带的所有cookie
Cookie[] cookies = request.getCookies();
if(cookies != null){
    for (Cookie cookie : cookies) {
        System.out.println(cookie.getName() + "," + cookie.getValue());
    }
}

4、修改cookie

a>因为cookie是键值对格式的数据,因此只需要创建相同的键不同的值的cookie,响应浏览器,就会将相对应的cookie的值进行覆盖

b>使用cookie.setValue()


Cookie[] cookies = request.getCookies();
if(cookies != null){
    for (Cookie cookie : cookies) {
        if(cookie.getName().equals("username")){
            cookie.setValue("zhangsan");
            response.addCookie(cookie);
        }
    }
}

5、设置cookie的有效时间

把cookie响应到浏览器之后,会保存在浏览器的运行内存中,当浏览器关闭时,浏览器的运行内存会被释放,因此cookie会被清空。因此会话默认的有效时间就是浏览器开启到浏览器关闭

但是可以通过cookie.setMaxAge()设置cookie的有效时间

a>当设置的有效时间为负整数时,没有任何效果,即有效时间为浏览器开启到浏览器关闭

b>当设置的有效时间为0时,表示立即删除该cookie

c>当设置的有效时间为正整数时

​ 若有效时间小于一次会话,cookie到了指定时间,就会自动从运行内存中删除

​ 若有效时间大于一次会话,当浏览器关闭,会将cookie中的数据保存到磁盘中,当浏览器再次开启时,会将磁盘中的数据重新加载到运行内存中

6、设置cookie的有效路径

cookie.setPath();

当创建了cookie,并响应到浏览器之后,设置了有效路径的cookie,只有在访问指定路径时才会携带该cookie

二、session

1、session的概念

session是一种在服务器中创建并维护并保存在服务器端的会话技术

session的应用场景:记录用户的登录状态

2、观察获取session时的报文变化情况

通过request.getSession()获取session对象

当此次会话中第一次访问request.getSession()获取session对象时,响应报文中会出一个键为jsESSIONID的cookie

之后每次通过浏览器发送请求到服务器,都会携带此JSESSIONID的cookie

哪怕访问服务器时,使用的request.getSession()再次获取session对象,只要请求报文中有JSESSIONID的cookie,响应报文中就不会再出现此cookie

3、session的原理

问:

session的原理?

session和cookie的关系?

为什么在一次会话中,获取的session都是同一个?

答:

当通过request.getSession()获取session时,会获取请求报文中键为JSESSIONID的cookie

若请求报文中没有键为JSESSIONID的cookie,此时表示当前的会话刚刚开始,是当前会话中第一次获取session对象。此时在服务器内部会创建session对象,并且会创建一个cookie,键为JSESSIONID,值为UUID随机序列;然后会将创建session对象存储到一个由服务器所维护的map集合中,以UUID随机序列为键,以session对象为值,最终将JSESSIONID的cookie响应到浏览器

若请求报文中存在键为JSESSIONID的cookie,此时获取该cookie的值,即UUID随机序列,以UUID随机序列为键,从服务器所维护的map集合中就可以获取唯一的session对象

4、session的常用方法

4.1、session存在域对象的数据

void setAttribute(String name, Object value);

Object getAttribute(String name);

void removeAttribute(String name);

4.2、设置session的时效

session的时效指在指定时间内,若没有对session进行任何的操作,此时session会自动失效

a>通过web.xml设置,单位是分钟

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

b>通过session.setMaxInactiveInterval()设置,单位是秒

session.setMaxInactiveInterval(1800);

4.3、强制使session失效

session.invalidate()

5、session的钝化和活化

session的钝化指服务器关闭,但是浏览器没有关闭,此时session中的数据会被序列化到磁盘上

session的活化指服务器启动,并且浏览器仍然没有关闭,此时会将序列化到磁盘上的数据重新加载到内存中

注意:若session中存储的是实体类对象,此时若要钝化,则该实体类和该实体类的成员变量也都要实现序列化的接口

三、cookie和session的区别

1、cookie存储在浏览器端,session存储在服务器端,因此cookie相对而言不安全

2、cookie只能存储字符串类型的键值对,session可以存储任意类型的数据,因此若存储相同的数据,cookie可能会产生大量的cookie

3、由于每次浏览器发送请求都会携带cookie,若有大量的cookie,就会造成网络负担

到此这篇关于Java cookie和session会话技术介绍的文章就介绍到这了,更多相关Java cookie和session内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Javacookie和session会话技术介绍

本文链接: https://www.lsjlt.com/news/203243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Javacookie和session会话技术介绍
    目录一、cookie1、cookie的概念2、cookie的创建3、获取cookie4、修改cookie5、设置cookie的有效时间6、设置cookie的有效路径二、session...
    99+
    2023-05-14
    Java cookie会话技术 Java session会话技术 Java cookie session
  • Java cookie和session会话技术怎么使用
    这篇文章主要介绍“Java cookie和session会话技术怎么使用”,在日常操作中,相信很多人在Java cookie和session会话技术怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-07-05
  • php session删除会话的方法介绍
    这篇文章主要讲解了“php  session删除会话的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php  session删除...
    99+
    2024-04-02
  • Java Web会话技术Session的简单使用
    目录什么是SessionSession如何工作结合代码理解Session什么是Session Session技术是将信息保存在服务端,而客户端需要接收、记录和回送Session的ID...
    99+
    2024-04-02
  • Javaweb会话跟踪技术Cookie和Session的具体使用
    目录前言一.会话引入二.Cookie1.Cookie的理解2.Cookie生命周期3.Cookie有效路径4.Cookie使用细节三.Session1.Session基本原理2.Se...
    99+
    2024-04-02
  • PHP(14)会话技术
    PHP(14)会话技术 一、概念二、分类三、cookie技术1. cookie的基本使用2. cookie的生命周期3. cookie的作用范围4. cookie的跨子域5. cookie的数...
    99+
    2023-09-17
    php 服务器 开发语言
  • 会话跟踪技术Cookieless
    会话跟踪技术Cookieless...
    99+
    2023-06-04
  • django会话跟踪技术
    目录 django中的会话跟踪技术 什么是会话跟踪技术 HTTP无状态协议 Cookie概述 什么是cookie ...
    99+
    2023-01-30
    技术 django
  • JavaWeb会话技术怎么用
    小编给大家分享一下JavaWeb会话技术怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.什么是会话:2.会话技术有哪些:什么是Cookie?Cookie,...
    99+
    2023-06-25
  • JavaWeb会话技术详解与案例
    1.什么是会话: 2.会话技术有哪些: 什么是Cookie? Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Sessi...
    99+
    2024-04-02
  • JavaWeb之会话技术案例详解
    会话技术     1. 会话:一次会话中包含多次请求和响应。          &...
    99+
    2024-04-02
  • AJAX技术的简单介绍
    这篇文章主要讲解了“AJAX技术的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“AJAX技术的简单介绍”吧!AJAX模式 许多重要的技术和AJAX开...
    99+
    2024-04-02
  • 自动驾驶技术之V2X技术的介绍
    目录一、V2X技术概二、V2X场景细分1、V2V2、V2I3、V2P4、V2N三、V2X通信关键技术一、V2X技术概  在环境感知方面,除了利用车辆自身的智能,还可以借助外...
    99+
    2024-04-02
  • JavaWeb之会话技术的示例分析
    这篇文章给大家分享的是有关JavaWeb之会话技术的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。会话技术    1. 会话:一次会话中包含多次请求和响应...
    99+
    2023-06-20
  • WEB核心【会话技术】第十五章
    目录 💂 个人主页: 爱吃豆的土豆🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 ...
    99+
    2023-09-20
    java 服务器 前端
  • 客户端会话跟踪技术 Cookie 浅谈
    文章目录 前言为什么之前浏览器和服务器不支持数据共享?会话跟踪技术Cookie的概念Cookie的工作流程Cookie的基本使用Cookie原理分析Cookie的存活时间Cookie存储中文 ...
    99+
    2023-08-31
    服务器 http 前端
  • 大数据技术体系介绍
    大数据技术体系是指在大数据环境下进行数据处理、存储、分析和挖掘的一系列技术方法和工具的集合体。大数据技术体系涵盖了数据采集、数据存储...
    99+
    2023-10-11
    大数据
  • 云服务器技术背景介绍
    云服务器(Cloud Drive)是一种基于云计算技术的服务器,它可以提供高性能、高扩展性、低成本、可靠和安全的云计算基础服务。云服务器主要有以下技术背景和优势: 高性能和高扩展性:云服务器可以提供强大的计算能力和数据处理能力,同时具备...
    99+
    2023-10-26
    背景 服务器 技术
  • PHP缓存技术的简单介绍
    本篇内容介绍了“PHP缓存技术的简单介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php缓存技术的应用时相当普遍的,也许有些人还对这项技...
    99+
    2023-06-17
  • mysql表分区技术详细介绍
    1、概述     数据库单表到达一定量后,性能会有衰减,像mysql\sql server等犹为明显,所以需要把这些数据进行分区处理。同时有时候可能出现数据剥离什么的,分区...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作