会话与状态
web会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
会话过程中要解决的一些问题?
每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。
例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐。
保存会话数据的两种技术:
Cookie
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
Cookie细节
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除
下边是用cookie来实现返回上次访问时间的代码:
//你得到上次访问的cookie对象
//记录这次cookie信息,记录你这次访问日期
Session
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
session
在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。
Session和Cookie的主要区别在于:
Cookie是把用户的数据写给用户的浏览器。
Session技术把用户的数据写到用户独占的session中。
Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
分享到:
相关推荐
### Java基础会话与状态详解 #### 一、会话管理概述 在Web开发中,会话管理是一项关键的技术,特别是在Java Web应用中。会话指的是用户与服务器之间的一系列交互活动,通常从用户打开浏览器并请求某个Web资源开始...
会话状态则是指用户在会话期间所处的状态,比如已登录的用户身份、购物车中的商品等。 【Cookie】是实现客户端状态管理的一种技术。当服务器响应客户端请求时,可以通过Set-Cookie响应头将Cookie信息发送给浏览器。...
ASP.NET 会话状态是Web开发中用于保持用户在浏览多页应用时的状态信息的关键机制。由于HTTP协议的无状态特性,服务器无法自动记住不同请求之间的用户信息。为了解决这个问题,ASP.NET提供了会话状态功能,使得开发者...
有状态会话Bean保持了与客户端的会话状态,这意味着它可以记住客户端在一系列交互过程中的状态。每个客户端请求都会被映射到一个特定的SSB实例,允许bean在多个方法调用之间存储和管理数据。在EJB3中,实现SSB通常...
***默认的HttpSession对象允许存储任何类型的数据,但是在与ASP进行会话共享的时候,这种自由度会成为障碍,因为ASP的会话数据存储在内存中,其存储机制与***不兼容,从而使得不同技术间的会话状态共享变得复杂。...
### 会话状态跟踪技术选择 在Web应用开发过程中,会话状态跟踪是实现用户个性化体验和服务连续性的重要环节。所谓“会话状态跟踪”,即系统通过某种方式记录并跟踪用户的活动状态,以便于在不同请求之间保持一致性...
实战EJB之三开发会话Bean(有状态会话Bean) 本文主要讲解了有状态会话Bean(Stateful Session Bean)的概念、特点、生命周期和开发过程。下面是相关知识点的总结: 1. 什么是有状态会话Bean? 有状态会话Bean...
在网页开发中,保持会话状态是一个至关重要的任务,尤其是对于需要存储用户特定信息的应用程序。ASP.NET 提供了多种状态管理方式,其中包括利用 SQL Server 作为存储媒介。这篇文章主要探讨了如何使用 SQL Server ...
会话状态(Session State)是指服务器用来存储特定用户与Web应用程序之间交互数据的一种机制。这些数据通常包括用户输入的信息、个性化设置以及其他对于用户会话来说非常重要的信息。由于HTTP协议是无状态的,因此...
在IT领域,尤其是在Web开发中,会话状态(Session State)管理是确保用户交互连续性和数据完整性的重要环节。然而,在实现这一功能时,开发者可能会遇到“无法序列化会话状态”这一常见问题,这通常发生在试图将非...
ASP.NET还引入了ViewState和ControlState,它们是页面级别的状态管理工具,与会话状态不同,它们只在单个页面的生命周期内保持数据。 在ASP应用程序迁移到ASP.NET时,会话状态管理的兼容性是一个关键问题。开发者...
在EJB中,无状态会话Bean是最简单的类型,它不保持任何客户端会话状态。这意味着每次客户端调用方法时,Bean都不会记住之前的状态。这种设计模式使得无状态会话Bean特别适合执行轻量级的、不涉及用户特定状态的操作...
当客户端与有状态会话Bean交互时,它会创建一个实例,并在整个会话期间保持该实例,直到客户端结束会话或者显式地将其注销。这使得有状态会话Bean能够跟踪和维护用户会话中的数据,如购物车信息、用户偏好等。 有...
ASP.NET的会话状态在某些情况下可能会被禁用,这会导致报表查看器控件无法正常工作,特别是当它需要在本地模式下运行时。报表查看器控件是用于展示报表的一种组件,通常与SQL Server Reporting Services (SSRS) 或者...
ChatGPT技术的多角色与多会话状态跟踪方法研究与流程控制策略 ChatGPT 是一种基于大规模预训练的对话生成模型,能够产生生动自然的对话内容,使得与之交流的用户很难分辨其是否为机器人。然而,目前的 ChatGPT 仍然...