`
softbear
  • 浏览: 39420 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

本人对session的愚见

    博客分类:
  • java
阅读更多

1。session是让客户端和服务端保持状态的一种方法。

2。服务端接收到用户的请求,先根据sessionID判断是否有该用户的session,有就从缓存中获取该用户session,否则创建一个session对象,并把sessionID保存到用户的cookies里。

3。如果保存sessionID的cookies过期或者服务端中的session被销毁,会新建一个session到服务端缓存中,当然sessionID也不会相同。

4。session是保存在服务端中。sessionID通常是保存在客户端的cookies中,如关闭cookies,可使用url重写(在url里加上sessionID)的方法发送sessionID给服务端。

5。sessionID默认是关闭浏览器后无效。

6。session的销毁由服务端控制,当session超过服务端设置的超时时间才会销毁。即使用户关掉浏览器,session也不会马上销毁,可在服务端设置session的超时时间。

7。J2EE中的session是指javax.servlet.http.HttpSession,这是一个接口,是由web服务器tomcat,resin等实现。

分享到:
评论
24 楼 shen5277 2010-12-14  
javax.servlet.http.HttpSession 和J2EE有关系吗?
23 楼 salouhim 2010-12-09  
楼主总结的很精辟,仔细阅读了郎云鹏的Session详解,之前一直认为‘浏览器关闭,session就消失了’,原来关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
22 楼 javacoreSZ 2010-12-09  
传统上的session是属于 http协议模块的。。。。和java无关
21 楼 flyfly98 2010-12-08  
我觉得lz说的session好像是没有什么错,而且我对session的理解也好像就这么多,说lz错误的朋友,请你指明嘛,纠正错误才是正道,别说错了又不指出,也不亮出自己的观点。请你们用自己的话来概括你对session的理解嘛
20 楼 xugang8289 2010-12-08  
楼主对session的理解是没有什么问题的, 可以说是实战派的最佳答案。很多开发人员都不能够理解到这个程度。所以说楼主理解完全错误,我是绝不认同的。靠别人的博客来说明问题,不代表你自己能理解到什么程度,不代表你是高手。
19 楼 lardern 2010-12-08  
楼主的理解很清晰啊,很有自己的理解。非得写那么详细才叫理解?
18 楼 dengzhangtao 2010-12-07  
lz概括的挺正确的呀,哪有错吗  ,有的话你就指明出来, 别弄个链接说:”好好读读这里面的“
17 楼 rentianchou 2010-12-07  
huangheyuan1229 写道
楼上介绍的果然是个好去处,受教了



杯具,楼主又误人子弟了
16 楼 harry_2013 2010-12-07  
chunquedong 写道
楼主到底那句说错了,没看出来。

没错,只是标题取大了点。
15 楼 chunquedong 2010-12-07  
楼主到底那句说错了,没看出来。
14 楼 dsjt 2010-12-07  
fangtianying 写道
楼主理解完全不对,有篇文章叫做 Sessoin详解,以前bea征文时郎云鹏写的,建议系统的看看。

http://leeldy.blog.163.com/blog/static/139853062009013105945194/


咋上不了这博客?如下提示: 输入N次验证码,也过不去

很抱歉,您的电脑或所在的局域网有异常的访问,请输入以下验证码,即可正常访问。

验证码:   
 
13 楼 qx8668 2010-12-06  
session cookie是存储于浏   览器内存中
12 楼 Easy_moon 2010-12-06  
我感觉楼主说的也没有错,每个人在不同阶段会对同一个问题产生不同的看法,所以只是自身的程度问题,希望楼主继续加油
11 楼 softbear 2010-12-06  
<p>可能是我表达不好,只整理出这几点愚见。但是有位大师说过,对于一个事物的理解,看别人写的好文是一回事,自己写出来又是一回事。用自己的语言描述出来才知道你对这个事物的理解有多深,分享出来,不仅能让大牛纠正你的错误观点,还能让大牛重新审视自己的观点,这样不是很好吗<br>特别感谢fangtianying分享的好文。<br></p>
<p> </p>
10 楼 2008lilewei 2010-12-06  
fangtianying 写道
楼主理解完全不对,有篇文章叫做 Sessoin详解,以前bea征文时郎云鹏写的,建议系统的看看。

http://leeldy.blog.163.com/blog/static/139853062009013105945194/

好文
9 楼 forestking 2010-12-06  
j2ee 的session好像有两种实现
1, 如果客户端允许cookies,就把jsessionid保存在mem cookies中
2, 如果不允许cookies,就把jsessionid添加在uri里。

不知道对不对?
8 楼 JE帐号 2010-12-06  
之所以说LZ没理解清楚,是因为LZ在解释HttpSession的时候,甚至没有使用"状态保持"或者类似的文字.
我不是教条主义,也不是在说什么标准化答案.只是对一个问题的理解,你总是会发现,它总有一个很关键的概念,所以的东西都是从这个概念引申或自然推导出来的.
所谓Cookie,HttpSession 出现的本质原因就是"http连接是无状态的".而当一个web站点企图提供流程服务或者说希望了解一些上下文信息时,就会希望去在http连接中去识别或标记用户.
这样就意味着,我们会通过一些约定去扩展http的语义.
如往Head里加Cookie,通过在Cookie中或者url 重写加上sessionID来在服务端中建立起一个http连接与业务上下文关系的关联.
7 楼 jackerxff 2010-12-06  
准确说楼主说的是HttpSession, 个人认为J2EE中的Session主要指Session Bean 包括stateful session Bean and  stateless session Bean,最好换个标题
6 楼 月落码农 2010-12-06  
JE牛人太多,楼主又被鄙视!默哀。所以最好还是别乱发帖,小心没讨好,还得了新手帖和隐藏贴!
5 楼 水痕2000 2010-12-06  
差不多理解就可以.
1 一般来说session第一次访问就产生了
2 浏览器关闭就没了
3 后台有超时时间
4 其他了解了对写代码没帮助.

相关推荐

    session session session szsessdifn

    【session session session szsessdifn】 在Web开发中,Session是一个至关重要的概念,尤其是在ASP.NET框架下。Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了...

    自己实现的spring-session

    就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId到cookie,cookie的maxAge设置为-1,仅对当前会话有效...

    js操作session例子

    本篇文章将详细讲解如何在JavaScript中实现对Session的操作,以及解决由此带来的挑战。 首先,理解Session的基本概念。Session是服务器端存储的一种会话状态,它可以保存用户在浏览网站时产生的临时数据,例如登录...

    session驱动类 session存入数据库

    session驱动类 session存入数据库 数据库存储session 用于session存入数据库

    spring session redis分布式session

    Redis是一个高性能的键值对数据库,常用于缓存和消息中间件。在分布式Session场景下,我们可以利用Redis的高可用性和持久化特性,存储用户的Session数据。Spring Session通过与Redis的集成,将Session数据序列化后...

    Spring Session + redis实现session共享

    可以考虑对session数据进行加密。 8. **测试与监控**:部署后,应通过测试验证session共享是否正常工作。此外,可以借助Redis的监控工具检查session操作的性能和内存使用情况。 总结起来,Spring Session与Redis的...

    Hibernate-nosession

    nosession模式并不意味着完全不使用Hibernate,而是尽量减少对Session的依赖,转而使用其他API,例如Query或Criteria API来执行数据库查询。 在实际的代码案例中,我们可以利用SessionFactory的openSession()方法来...

    Session丢失原因和解决方案

    这种方法减少了进程重启对Session的影响,但Session仍然可能在State Service重启时丢失。 **2. 使用SQLServer模式** 若需更高级别的可靠性,可以将`mode`设置为`SQLServer`,这将把Session数据存储在SQL Server...

    sessionsession

    - 使用无状态API(RESTful)设计,减少对Session的依赖,提高可扩展性。 总之,Session是Web开发中不可或缺的一部分,理解其工作原理和管理策略对于构建安全、高效的Web应用至关重要。正确使用Session能够帮助...

    js 销毁session,session

    js 销毁session,session js 销毁session,session

    C语言头文件 SESSION

    C语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言...

    iframe 跨域访问session

    然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的同源策略(Same-Origin Policy)限制了不同源之间的交互,包括`session`和`cookie`。 同源策略是...

    session共享 memcached-session-manager 1.9.6 jar

    在IT行业中,尤其是在Web应用程序开发中,Session共享是解决多服务器间用户状态一致性的重要技术。Memcached是一款广泛应用的高性能分布式内存对象缓存系统,它能够有效地缓解数据库的压力,提高系统的响应速度。`...

    SpringSession+Redis实现Session共享案例

    - `SpringSession` 提供了对原生Servlet API的透明支持,以及与Spring MVC的集成,使得开发者无需修改大量代码就能启用Session共享功能。 2. **Redis**: - Redis 是一个高性能的键值数据库,常用于缓存和消息...

    Springboot实现多服务器session共享

    如果开发者需要对项目进行横向拓展搭建集群,那么可以用一些硬件和软件工具来做负载均衡,此时,来自同一用户的HTTP请求有可能会被发送到不同的实例上去,如何保证各个实例之间的Session同步就成为了一个必须解决的...

    session实验

    5. **安全性**:实验可能探讨了防止Session劫持和Session固定攻击的方法,如使用HTTPS传输Session ID,定期更新Session ID,限制Session ID的长度和复杂性,以及对敏感操作进行二次验证。 6. **性能优化**:在高...

    对session和cookie的一些理解

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

    Jsp内置对象session总结

    JSP 内置对象 Session 总结 Session 对象是一种 JSP 内置对象,用于管理客户端与服务器端之间的会话期。下面是 Session 对象的详细介绍。 什么是 Session Session 对象是一个 JSP 内置对象,它在第一个 JSP 页面...

    报表session与应用session常识普及

    在Web开发中,session是用于存储特定用户会话所需的信息的一种机制。每个用户访问网站时,服务器都会为该用户创建一个唯一的会话标识(session ID),通过这个标识可以在多次请求之间共享数据。系统session和报表...

    退出页面自动清除session技巧

    - 性能问题:长期不清理的Session会占用大量内存资源,对服务器造成负担。 #### 如何清除Session 根据提供的内容,我们可以总结出两种主要方式来清除Session: 1. **使用`removeAttribute()`方法移除Session中的...

Global site tag (gtag.js) - Google Analytics