`
black_angle
  • 浏览: 49595 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

先request.getsession(),当已有一个session与前request相关时就返回对这个session的引用,当没有时就生成一个.一个session在server通过一个sessionid来标识的。也就是说在一个server是不会有两个相同sessionid的session.

那么session为什么会和cookie扯在一起呢?

正如我所说对于一个session来说它的sessionid就是其身份的标识。若我们将这个sessionid保存到用户端,当同一个会话的后序请求来时都将这个sessionid放在request 的header中(也就是我们说的cookie)这样不就可以来验证这个request是否与之前的request是同一个会话了吗!

什么是会话呢?
我们可以通俗一点理解。只要你的browers不关我们就称这一系列的request与response为一个会话。一断你close就称这个会话已结束。虽然会话结束但并不代表你的session就被destroy.因为session是存活在server上的。它的生命完全由server来主宰(web.xml中的设定).
虽然你的session还存活在server上但你已无法再取得它。因为j2ee的api只给我们一种方法来取得与当前会话相关的session的引用:request.getsession() or reqeust.getsession(boolean)


这也就是为会什么会有"当浏览器关session就结束"这个错误的说法了!
session的创建和销毁由服务器端控制",服务器端才有session,客户端只是通过sessionid来匹配session.
那服务器端session如何建的呢? 普通htm不会创建,jsp默认是创建的,只要你访问一个任何一个jsp就会创建(不过只创建一次),你关闭浏览器从新访问又会创建一个,这些创建的session由服务器自己控制销毁,你也可以在服务器端代码中销毁。
什么情况下需要用上这种服务器端的session方式?
默认情况下,jsp被访问就会创建session(最开始是空的没有数据的),你的应用中的代码只是往session里面put数据。网上说可以 通过 <%@ page session="false"%>来不让jsp自动创session.我自己测试了一下(用sessionlistener),根本不起作用,session照样创建成功。
最后说一下,只有服务器端才有session.客户端被存到本地的是cookie.不过安全性低。所以不能放重要的数据。

<!----><!----><!---->深刻理解一下,  
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建,
注意如果JSP没有显示的使用 <%@page session="false"%> 关闭session,
则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);

这也是JSP中隐含的session对象的来历。

分享到:
评论

相关推荐

    session理解临床试验的项目管理医疗器械临床试验管理与统计分析培训班讲义PPT学习教案.pptx

    session理解临床试验的项目管理医疗器械临床试验管理与统计分析培训班讲义PPT学习教案.pptx

    drools session理解.doc

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

    servlet中关于session的理解

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

    理解session机制

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

    理解HTTP session原理及应用

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

    深入理解session,cookie

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

    对session和cookie的一些理解

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

    js操作session例子

    首先,理解Session的基本概念。Session是服务器端存储的一种会话状态,它可以保存用户在浏览网站时产生的临时数据,例如登录信息、购物车内容等。当用户访问网站时,服务器会为每个用户创建一个唯一的Session ID,并...

    Session丢失原因和解决方案

    在深入探讨解决方案之前,让我们先理解Session的基本原理。 Session是一种服务器端的状态管理机制,用于在用户的不同请求之间保持数据。在ASP.NET中,Session默认是保存在进程内(InProc模式),即存储在ASP.NET ...

    SpringSession+Redis实现Session共享案例

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

    Hibernate-nosession

    首先,理解什么是Hibernate Session。Session是Hibernate中的核心接口,它充当了应用程序和数据库之间的桥梁,负责对象的持久化操作,如保存、更新、删除和查询等。Session通常在一个事务中打开并在事务结束时关闭,...

    session实验

    在IT行业中,Session是一个至关重要的概念,特别是在Web开发领域。Session是服务器端用来跟踪用户状态的一种机制。...通过这个实验,学习者能够深入理解Session的工作原理及其在实际应用中的重要性。

    iframe 跨域访问session

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

    sessionsession

    【session技术详解】 ...总之,Session是Web开发中不可或缺的一部分,理解其工作原理和管理策略对于构建安全、高效的Web应用至关重要。正确使用Session能够帮助开发者有效地处理用户状态,提供更好的用户体验。

    判断session过期的方式

    在Web开发中,Session是用于跟踪用户状态的一种技术。当用户登录网站后,服务器会创建一个Session对象,并将其关联到用户的...通过理解这些方法,开发者能够更好地管理用户状态,提升用户体验,同时确保系统的安全性。

    .net core 6 使用session进行验证

    通过查看这个项目,你可以更深入地理解Session验证的实际应用和代码实现。 总之,.NET Core 6提供了一种简单而强大的方式来利用Session进行用户验证。正确配置和使用Session可以确保Web应用程序的安全性,并提供...

    Session浅析

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

    java中使用session模拟用户登陆

    首先,我们需要理解Session的工作原理。Session是服务器为每个客户端(浏览器)创建的一个数据存储结构,通常是一个HashMap。当用户登录时,服务器会生成一个唯一的Session ID,并将其通过Cookie返回给客户端。...

Global site tag (gtag.js) - Google Analytics