A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 武汉分校-小舞 于 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!




推荐阅读:



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马