`
liu1028701143
  • 浏览: 36105 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

会话与状态

 
阅读更多

会话与状态

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基础会话与状态讲解

    ### Java基础会话与状态详解 #### 一、会话管理概述 在Web开发中,会话管理是一项关键的技术,特别是在Java Web应用中。会话指的是用户与服务器之间的一系列交互活动,通常从用户打开浏览器并请求某个Web资源开始...

    JSP动态网页设计:第5章 会话与状态管理.ppt

    会话状态则是指用户在会话期间所处的状态,比如已登录的用户身份、购物车中的商品等。 【Cookie】是实现客户端状态管理的一种技术。当服务器响应客户端请求时,可以通过Set-Cookie响应头将Cookie信息发送给浏览器。...

    asp.net 会话状态

    ASP.NET 会话状态是Web开发中用于保持用户在浏览多页应用时的状态信息的关键机制。由于HTTP协议的无状态特性,服务器无法自动记住不同请求之间的用户信息。为了解决这个问题,ASP.NET提供了会话状态功能,使得开发者...

    EJB3 示例有状态和无状态会话bean

    有状态会话Bean保持了与客户端的会话状态,这意味着它可以记住客户端在一系列交互过程中的状态。每个客户端请求都会被映射到一个特定的SSB实例,允许bean在多个方法调用之间存储和管理数据。在EJB3中,实现SSB通常...

    如何在ASP和ASP.NET中共享会话状态

    ***默认的HttpSession对象允许存储任何类型的数据,但是在与ASP进行会话共享的时候,这种自由度会成为障碍,因为ASP的会话数据存储在内存中,其存储机制与***不兼容,从而使得不同技术间的会话状态共享变得复杂。...

    会话状态跟踪技术选择

    ### 会话状态跟踪技术选择 在Web应用开发过程中,会话状态跟踪是实现用户个性化体验和服务连续性的重要环节。所谓“会话状态跟踪”,即系统通过某种方式记录并跟踪用户的活动状态,以便于在不同请求之间保持一致性...

    实战EJB之三 开发会话Bean(有状态会话Bean).doc

    实战EJB之三开发会话Bean(有状态会话Bean) 本文主要讲解了有状态会话Bean(Stateful Session Bean)的概念、特点、生命周期和开发过程。下面是相关知识点的总结: 1. 什么是有状态会话Bean? 有状态会话Bean...

    如何用SQL Server保持会话状态

    在网页开发中,保持会话状态是一个至关重要的任务,尤其是对于需要存储用户特定信息的应用程序。ASP.NET 提供了多种状态管理方式,其中包括利用 SQL Server 作为存储媒介。这篇文章主要探讨了如何使用 SQL Server ...

    在asp.net中实现会话状态基础

    会话状态(Session State)是指服务器用来存储特定用户与Web应用程序之间交互数据的一种机制。这些数据通常包括用户输入的信息、个性化设置以及其他对于用户会话来说非常重要的信息。由于HTTP协议是无状态的,因此...

    无法序列化会话状态问题的解决办法

    在IT领域,尤其是在Web开发中,会话状态(Session State)管理是确保用户交互连续性和数据完整性的重要环节。然而,在实现这一功能时,开发者可能会遇到“无法序列化会话状态”这一常见问题,这通常发生在试图将非...

    从ASP到ASP.NET的会话状态管理

    ASP.NET还引入了ViewState和ControlState,它们是页面级别的状态管理工具,与会话状态不同,它们只在单个页面的生命周期内保持数据。 在ASP应用程序迁移到ASP.NET时,会话状态管理的兼容性是一个关键问题。开发者...

    无状态会话Bean实验指导.doc

    在EJB中,无状态会话Bean是最简单的类型,它不保持任何客户端会话状态。这意味着每次客户端调用方法时,Bean都不会记住之前的状态。这种设计模式使得无状态会话Bean特别适合执行轻量级的、不涉及用户特定状态的操作...

    关于有状态和无状态会话bean的解释

    当客户端与有状态会话Bean交互时,它会创建一个实例,并在整个会话期间保持该实例,直到客户端结束会话或者显式地将其注销。这使得有状态会话Bean能够跟踪和维护用户会话中的数据,如购物车信息、用户偏好等。 有...

    [解决]ASP.NET 的会话状态已禁用。报表查看器控件要求在本地模式下启用会话状态

    ASP.NET的会话状态在某些情况下可能会被禁用,这会导致报表查看器控件无法正常工作,特别是当它需要在本地模式下运行时。报表查看器控件是用于展示报表的一种组件,通常与SQL Server Reporting Services (SSRS) 或者...

    ChatGPT技术的多角色与多会话状态跟踪方法研究与流程控制策略.docx

    ChatGPT技术的多角色与多会话状态跟踪方法研究与流程控制策略 ChatGPT 是一种基于大规模预训练的对话生成模型,能够产生生动自然的对话内容,使得与之交流的用户很难分辨其是否为机器人。然而,目前的 ChatGPT 仍然...

Global site tag (gtag.js) - Google Analytics