黑马程序员技术交流社区

标题: 【武汉校区】独家分享:session 在开发当中使用注意的细节 [打印本页]

作者: 武汉分校-小舞    时间: 2016-3-16 13:00
标题: 【武汉校区】独家分享:session 在开发当中使用注意的细节
本帖最后由 武汉分校-小舞 于 2016-3-16 13:01 编辑

【武汉校区】独家分享:session 在开发当中使用注意的细节

应用场景
   
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的时候也要考虑Session的转移,在大型的网站,一般会有专门的Session服务器集群,用来保存用户会话,这个时候 Session 信息都是放在内存的,使用一些缓存服务比如Memcached之类的来放 Session。
Session 的概念
       avax.servlet.http.HttpSession
接口表示一个会话,我们可以把一个会话内需要共享的数据保存到HttSession对象中!HttpSessionrequest.getSesssion():如果当前会话已经有了session对象那么直接返回,如果当前会话还不存在会话,那么创建session并返回;
HttpSessionrequest.getSession(boolean):当参数为true时,与requeset.getSession()相同。如果参数为false,那么如果当前会话中存在session则返回,不存在返回null;
Session的作用(域对象)
用来进行会话跟踪,进行会话跟踪的目的主要是用来传递数据.
什么是一个会话:我打开一个网站,在这个网站上面访问一个动态资源servlet,在servlet 里面调用request.getSession() 会话开始,什么时候会话结束
第一种:
  服务器端的session 超时。我们可以设置服务器端session 的超时时间。
默认时间为30分钟,在web.xml 里面进行设置
                   <session-config>
                                 <session-timeout>30</session-timeout>
                     </session-config>
第二种:客户端的cookie被清掉
1:打开浏览器,删除历史记录
2:我们使用在客户端使用杀毒软件也会清楚掉cookie
3:客户端的cookie  的生命周期超时.

本帖持续更新,想最快获取最新传智播客武汉讲师分享技术文章请加QQ  1641907557 ,后期会分享更多与实体班同步教程,助你冲击月薪20K!




推荐阅读:

黑马程序员Android实体班同步项目Demo源码汇总,挑战月薪20K!
《【武汉校区】Java/Android实体班同步笔记+配套面试/项目宝典》







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2