session的生命周期
2016-03-07 16:58
323 查看
过阵子准备面试,这几天重新复习了下JavaWeb基础的一些东西。之前学的时候没怎么注意,今天仔细研究了下session的生命周期。
session是依赖于cookie存在的。
1.Session的创建
当服务器接收到浏览器发来的第一次请求时session对象自动被创建。也可以通过 request.getSession(true)
手动创建。
服务器将客户端发来的数据放入session对象中,并将session的id通过 set-cookie:jsessionid=xxx
的头发送到浏览器中。客户端收到之后,将这个id存起来,再次访问服务器时会通过cookie头携带这个id访问服务器,服务器可以根据id找到对应的session对象,并获取数据。
2.Session的销毁
1)服务器关闭时
2)session超时了。超时时间可以在配置文件中配置,默认30分钟。
3)手动调用invalidate()方法销毁
3.Session的小细节
1)当服务器正常关闭时,session会被写入到硬盘上,服务器启动后,文件被还原为session对象。
2)若cookie被禁用,需要用重写URL的方法来解决。原理是将session的id重写到URL中,服务器能够解析URL来获取id。
3)如果客户端关闭了,服务器正常运转,那下次打开客户端时,两次的session是两个不同的session,因为cookie中的id没了。
session是依赖于cookie存在的。
1.Session的创建
当服务器接收到浏览器发来的第一次请求时session对象自动被创建。也可以通过 request.getSession(true)
手动创建。
服务器将客户端发来的数据放入session对象中,并将session的id通过 set-cookie:jsessionid=xxx
的头发送到浏览器中。客户端收到之后,将这个id存起来,再次访问服务器时会通过cookie头携带这个id访问服务器,服务器可以根据id找到对应的session对象,并获取数据。
2.Session的销毁
1)服务器关闭时
2)session超时了。超时时间可以在配置文件中配置,默认30分钟。
3)手动调用invalidate()方法销毁
3.Session的小细节
1)当服务器正常关闭时,session会被写入到硬盘上,服务器启动后,文件被还原为session对象。
2)若cookie被禁用,需要用重写URL的方法来解决。原理是将session的id重写到URL中,服务器能够解析URL来获取id。
3)如果客户端关闭了,服务器正常运转,那下次打开客户端时,两次的session是两个不同的session,因为cookie中的id没了。
相关文章推荐
- SQL语句优化
- 网格细分算法(Catmull-Clark subdivision & Loop subdivision)附源码
- 一些前端开发大牛
- JavaScript之数组
- 常用服务的端口
- BestCoder 74
- POJ 2311 (博弈 sg函数)
- SQL常用语句----提升
- Hibernate三种检索策略的优缺点对比
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- socket新特性之SO_REUSEPORT
- 集合竞价 CCF java实现 (大部分代码是借鉴的别人的,)
- JavaScript正则表达式
- Ext基础一(转载)
- 程序改错
- iOS图片裁剪
- Activation operating system
- hibernate实现多表联合查询
- Linux服务器通过AWS命令行上传文件至S3
- 3.7女生节:被程序员男友送的奇葩礼物宠哭了