网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章 JSP技术4-会话管理.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 JSP技术4-会话管理

会话管理 Tip:会话 问题描述 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据。 例如:多个用户点击超链接通过一个servlet各自购买了一个商品,服务器应该想办法把每一个用户购买的商品保存在各自的地方,以便于这些用户点结帐servlet时,结帐servlet可以得到用户各自购买的商品为用户结帐。 提问:这些数据保存在request或servletContext中行不行? 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 请问:如果同一台客户机上同时开两个浏览器访问网站,那共开了几个会话? Tip:保存会话数据的两种技术: Cookie Cookie是当用户浏览某网站时,网站服务器存储到客户机上的一个小文本信息,它可以记录用户的会话ID以及登录名、密码等信息,当用户再次来到该网站时,网站通过读取该用户的Cookie,便可以得知用户曾经访问该网站的相关信息。 Session Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,并存放在服务器。 由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。 Tip:Cookie技术 Tip:session 会话的运作流程 Tip:session实现原理 疑问:服务器是如何实现一个session为一个用户浏览器服务的? Cookie举例 用request对象获取客户端的Cookie信息。 Cookie举例 设置cookie的过期时间setMaxAge 如果设置了Cookie的过期时间,浏览器就会把Cookie保存到硬盘上,关闭后再次打开浏览器访问该网站,这些Cookie仍然有效,直到超过设定的过期时间。 如果不设置cookie的过期时间,则表示这个cookie的生命周期为会话期间,只要客户端关闭浏览器,结束本次与服务器的会话,Cookie就消失了。这种Cookie被称为会话cookie。 cookie.setMaxAge(2*60*60); 两小时 cookie.setMaxAge(24*60*60); 一天 cookie.setMaxAge(365*24*60*60); 一年 http://localhost:8080/jsp_cookie_example/cookieDate.jsp的基础上修改 Cookie Session举例 例子: http://localhost:8088/jsp_session_example/buywasher.jsp Session的生命周期 什么时候创建: 并非是一访问网站就会创建,而是遇到了:request.getSession();这句话 另外:支持会话的网页: %@ page session=“true” 不支持会话的网页:%@ page session=“false” 为什么这样,查看相应的java文件,可发现:pageContext.getSession();自动创建了session 需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。 附加:request.getsession(false); 什么时候消亡? 不是浏览器关闭而是长时间没有活动的Session,服务器会把它从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为30分钟。 人为控制session的消亡: session.invalidate(); 只获取不创建,因session耗资源,若不需要,则不创建。   Session一些注意事项 遇到不支持cookie的浏览器怎么办? http://localhost:8080/jsp_session_example/encodeurl-example.jsp * 2个会话。 浏览器 服务器 servlet1 servlet2 Set-Cookie2: name=洗衣机 Set-Cookie2: name=洗衣机 name=洗衣机 IE缓存区 cookie: name=洗衣机 cookie: name=洗衣机 . 浏览器B 浏览器A 浏览器C Servlet1(购买) session = request.getSession() Session.setAttribute(na

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档