- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5cookie-session笔记.xls
Sheet3
Sheet2
Sheet1
Eclipse的动态Web项目
Http协议无状态带来的问题
会话跟踪:Cookie
简易购物车设计
小结
什么是会话?
可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一次会话。
会话跟踪:
会话是访问特定Web站点时用户执行的一组活动,记住不同会话过程称为会话跟踪.
--------------------------------------------------------------------------
HTTP协议时无状态:
当一个客户向服务器发出请求(request),在服务器返回响应(response)后,连接就关闭了。这时,在服务器端不保留连接相关的信息,因此当下一次请求连接时,服务器已没有以前连接的信息了,也就无法判断这一次连接和以前的连接是否属于同一客户,也就是说Web服务器无法跟踪客户状态。
--------------------------------------------------------------------------
正因为HTTP协议的无状态性:带来无法跟踪用户会话信息.
跟踪用户会话,解决方案:
1.在请求的资源后面,传递参数.
功能可行,但是参数全部暴露在地址栏,很不安全.
解决方案:还是传递信息,但是不在地址栏显示,把请求信息保存在请求头.---Cookie
2.Cookie
3.Session
---------------------
在 Servlet 规范中,常用以下两种机制完成会话跟踪:
Cookie:
是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
Session:
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
Cookie的操作:
1.创建Cookie:
Cookie cookie = new Cookie(String name,String value);
2.把Cookie放入响应中,保存在浏览中:
Cookie是客户端的技术,就是把请求信息保存在各自的浏览器中.
浏览器如何得到服务中Cookie对象中的数据.
response.addCookie(cookie);
3.从请求中获取Cookie:
Cookie[] cs = request.getCookies();
4.获取Cookie的名字和值
String cookieName = cookie.getName();
String cookieVal = cookie.getValue();
5.修改Cookie中的数据
方式1:
cookie.setValue(String val);
方式2:
创建一个同名的Cookie,覆盖效果.
Cookie cookie = new Cookie(String name,String value);
注意:必须在response.addCookie(cookie)之前
6.Cookie的分类:两种
会话Cookie: 把Cookie数据存放在浏览器的内存中,一旦关闭浏览器,Cookie就被销毁了.
默认情况下,Cookie属于会话Cookie.
持久化Cookie:把Cookie数据存在一个文件中(不是内存),可以供下次使用.
给Cookie设置最大的存活时间.
7.设置Cookie的最大存活时间
cookie.setMaxAge(int seconds);单位是秒
8.删除Cookie,设置Cookie的最大存活时间为0
cookie.setMaxAge(0);
response.addCookie(cookie);
9.在Cookie中存储中文数据
Cookie的name和value都不能存储中文.
解决方案:
使用URLEncoder编码,再存储.
String URLEncoder.encode(String msg,String env);
Cookie cookie = new Cookie(c
文档评论(0)