`

Session技术的理解

阅读更多
引用
3、Session技术

(1)什么是session

会话

在服务器端维护客户端状态的一种状态管理技术。

其基本思想是:当浏览器访问服务器时,服务器会

创建一个对象(session对象,该对象有一个唯一的

id,也称为session id)。服务器会将该id采用cookie的方式(默认情况下)。

发送给浏览器,浏览器下一次访问服务器时,会将

该id携带给服务器,服务器依据该id找到对应的

session对象。浏览器操作所涉及到的数据可以保存到

session对象里。

(2)session的使用

A.如何获得session?

session只能由服务器创建。

HttpSession session = request.getSession();

方法一:request.getSession();

方法二:request.getSession(boolean flag);



request.getSession(true):

执行过程:

当请求到达服务器,执行到这行代码,服务器

会查看请求中有无sessionId,若无,则创建一个

session对象。若有,还要看该sessionId所对应

的session对象是否还存在(服务器不会永久

保存一个session对象,sesion对象会有一个

失效时间,对于tomcat,30分钟,超过这个时间,就

会删除)。若不存在,再创建一个新的,否则,

返回原有的那个session对象。

request.getSession(false):

当请求到达服务器,执行到这行代码,服务器

会查看请求中有无sessionId,若无,返回null,

若有,如果sessionId对应的session对象还存在,

则返回该对象,若不存在,返回null。

request.getSession() == request.getSession(true)。

B. 如何存取数据

session.setAttribute(String key,Object value);

注意 value类应用实现序列化接口。

Object session.getAttribute(String key);

session.removeAttribute(String key)
//注意:向session中添加的对象必须是可序列化的,因为服务器在正常关闭时,会将内存中的session保存到硬盘中,然后在启动的时候在以流的形式反序列化成对象存放到内存当中,这样session中的sessionId和其他数据就会保持与服务器关闭之前的状态保持一至,这样不会影响到客户端的变化。


小例子

计数。

C. session的最大不活动时间

session.setMaxInactiveInterval(int seconds);

如果超过该时间,服务器会将session对象删除.

默认情况下,对于tomcat,默认是30分钟。

在conf\web.xml中配置

<session-config>

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

    </session-config>


   

    服务器默认情况下,是通过cookie机制,将

    sessionId发送给浏览器,服务器会通过如下

    代码:

    Cookie c = new Cookie("jsessionId","123");

    c.setPath("/appName");

    也就是说,浏览器一关闭, 该cookie就会删除,

    此时,即使服务器端的session对象还存在,

    该对象对浏览器也无意义了。

    D. 立即让session对象失效。(一般用于用户正常退出)

    session.invalidate()。
分享到:
评论

相关推荐

    session技术实现网上商城购物车

    **Session技术实现网上商城购物车** 在Web开发中,实现用户购物车功能是电商系统不可或缺的一部分。购物车允许用户在不立即购买商品的情况下,选择多个商品并存储它们以供后续结账。在这个小例子中,我们将探讨如何...

    servlet中关于session的理解

    ### 关于Servlet中的Session理解 在Web开发领域中,Servlet技术是Java Web开发的重要组成部分,而Session机制则是处理用户会话的关键技术之一。本文将基于提供的文件内容,深入探讨Servlet中Session的工作原理、...

    理解session机制

    【理解Session机制】 Session机制是Web应用程序中用来保持用户会话状态的一种技术。在HTTP协议中,由于其无状态特性,每次请求都是独立的,无法识别同一用户的不同操作。为了解决这个问题,服务器端引入了Session,...

    理解HTTP session原理及应用

    首先,理解"session"一词的含义至关重要。在一般语境中,session指的是有始有终的一系列动作或消息,例如打电话的过程。而在Web开发中,session则被赋予了更特殊的意义。它通常用来描述在用户打开浏览器并进行一系列...

    登录验证完整版(servlet及session技术支持)

    在这个“登录验证完整版(servlet及session技术支持)”项目中,我们主要关注的是使用Servlet和Session来实现这一功能。Servlet是Java服务器端编程的基础,而Session则是一种在HTTP无状态协议上维护用户会话状态的...

    深入理解session,cookie

    在这个场景下,Cookie和Session成为了关键的角色。接下来,我们将深入探讨这两种技术的工作原理及其在Servlet和JSP中的应用。 首先,我们来看Cookie。Cookie是由服务器端创建并在HTTP响应头中发送到客户端(通常是...

    Session实现购简单物车原理

    首先,我们需要理解JSP(JavaServer Pages)和Servlet的角色。JSP是一种动态网页技术,主要用于展示数据,而Servlet是Java编写的服务端程序,主要处理业务逻辑。在购物车场景中,JSP负责接收用户的交互请求,展示...

    在Java的web编程中关于session技术的使用详解

    通过深入理解和恰当使用Session技术,开发者可以在Java Web应用中实现更复杂的功能,提供更好的用户体验。在实际开发中,结合业务需求选择合适的用户状态管理策略,既能保证应用性能,又能确保用户数据的安全。

    对session和cookie的一些理解

    标题中的“对session和cookie的一些理解”提示我们,这篇内容将涉及Web开发中两种重要的用户会话管理技术:Session和Cookie。在Web应用中,Session和Cookie被广泛用于跟踪用户的登录状态、购物车信息等,确保用户在...

    c#实现cookie和session的登陆实例

    首先,我们要理解Cookie和Session的基本概念。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并存储在本地。每次用户访问同一网站时,浏览器会自动将Cookie发送回服务器,从而让服务器识别用户。Session则...

    sessionsession

    【session技术详解】 Session在计算机领域,特别是在Web开发中,是一种用于存储用户状态信息的关键机制。它是服务器端存储用户信息的方式,与Cookie不同,Cookie是在客户端存储数据。Session的使用通常涉及用户登录...

    session详解

    - **技术意义上的session**:在技术层面,“session”指的是客户端与服务器之间保持状态的一种机制。这包括通过HTTP协议进行的交互,以及为了跟踪用户的活动而设计的技术手段。 - **存储结构上的session**:有时...

    drools session理解.doc

    总结来说,理解 Drools 中的有状态和无状态 Session 是至关重要的,这有助于你正确选择适合的 Session 类型来处理各种业务场景,从而优化规则引擎的性能和效率。在设计系统时,应充分考虑规则的复杂性和依赖性,合理...

    SpringSession+Redis实现Session共享案例

    在现代Web应用开发中,Session共享是一个常见的需求,特别是在分布式系统中。...通过理解并掌握这两个技术的原理和配置,开发者可以轻松地在多服务器之间共享用户状态,提升系统的整体性能和用户体验。

    session实验

    因此,实验可能涉及了Session的管理策略,如Session的过期策略、容量限制以及使用缓存技术优化Session访问。 7. **Session在不同编程语言中的实现**:实验可能使用了某种编程语言(如Java、Python、PHP等)来实现...

    有关session的技术原理及其应用

    ### 有关Session的技术原理及其应用 #### 一、引言 ...为了解决这个问题,Web开发中引入了多种解决方案,其中最为人...对于开发者而言,理解Session的工作原理及其背后的技术细节对于构建稳定、安全的Web应用至关重要。

    iframe 跨域访问session

    然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的同源策略(Same-Origin ...通过理解上述技术,开发者可以更好地处理这种场景,提供无缝的用户体验。

    Session浅析

    理解Session ID的工作原理对于解决如`Session_Start`和`Session_End`事件触发问题至关重要。 总的来说,理解和正确使用Session是构建动态、状态感知的ASP.NET应用的基础。合理地管理Session可以提高应用程序的性能...

    判断session过期的方式

    在Web开发中,Session是用于跟踪用户状态的一种技术。当用户登录网站后,服务器会创建一个Session对象,并将其关联到用户的浏览器。这个Session对象通常包含用户的一些关键信息,如用户名、权限等。然而,为了安全...

Global site tag (gtag.js) - Google Analytics