javaweb之会话技术cookiesession.doc_第1页
javaweb之会话技术cookiesession.doc_第2页
javaweb之会话技术cookiesession.doc_第3页
javaweb之会话技术cookiesession.doc_第4页
javaweb之会话技术cookiesession.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会话技术1.什么是会话: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接、访问多少个资源,直到用户关闭浏览器,整个这个过程我们成为一次会话2. 实际情况: 张三打开浏览器,进入淘宝,买了2样东西;李四打开浏览器,进入淘宝,买了3样东西。当这两位结账时,结账的servlet如何得到张三和李四买的东西,并为他两分别结账?3. 使用会话保存数据 Session Cookie为什么需要Cookie? 情景1.张在访问某个网站的时候,看到了提示你上次登录网站的时间,而且不同用户上次登录时间不同,这个怎么实现没有会话技术前:user表 每次用户登录就更新user表里的时间IdNamePasswordLogin_timeviewHistory001AaAa2012-1-5 5:00:0022,33,25002BbBb2012-3-12 6:00:0012,24,56 情景2.访问购物网的时候,能够看到曾经浏览过的商品,当然不同用户浏览过的商品不同如果登录了,则可以用数据库但如果没有登录那又怎么办? 情景3.保存登录密码及用户名 v Cookie技术1.服务器把每个用户的数据以cookie的形式写给用户各自的浏览器 当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去 Servlet有一个Cookie类 Cookie(String name ,String value) 3.Cookie小结:1 Cookie在服务端创建 Cookie cookie = new Cookie(name,value);2 Cookie是保存在浏览器这端 response.addCookie(cookie);3 Cookie的生命周期可以通过cookie.setMaxAge(int second)来设置Cookie默认生命周期是会话级别(即存储在浏览器的内存中)如果没有设置setMaxAge(),则该cookie的生命周期当浏览器关闭时就挂了,setMaxAge(0)+response.addCookie(cookie),相当于删除Cookie 此时如果cookie文件内部只有该Cookie则,文件也一并删除;否则只删除该Cookie4 Cookie可以被多个浏览器共享5 Cookie可以想象成一张表 名字 String值 String此处读入的cookies只能是此web资源下设置的cookies而不是浏览器保存的所有的cookie如果cookie的名字相同啥情况? 则替换6 一个web应用可以保存多个cookie(放置在同一个文件内部) ,最多不要超过20个,每个Cookie的大小限制为4kB,因此Cookie不会塞满你的硬盘,更不会被作为拒绝服务的攻击手段。浏览器一般保存的Cookie不会超过300个7 Cookie存放中文,出现的乱码问题存放:String val = .URLEncoder.encode(中文名称,utf-8);Cookie cookie = new Cookie(name,val);读出:String val = .URLDecoder.decode(cookie.getValue(name),utf-8);out.println(name=+val);8 Cookie存放的时候是以明文方式存放,因此安全性较低,我们可以通过加密后保存(MD5算法)-被称为不可逆的算法. 数据库中存放的密码也必须是经过MD5加密后的密码. -用户时登陆先进行MD5加密,再到数据库验证4. Cookie可以用来做什么1) 保存上次登录时间等信息2) 保存用户名和密码,在一定时间不用重新登录3) 记录用户访问网站的喜好(背景色、背景音乐等等)4) 网站的个性化,比如定制网站的服务,内容等5) 购物车Cookie的应用实例:保存登陆名和密码。v Session1.问题1:如何实现在不同的页面,可以去查看信息,可以查看信息(比如说购物车),同时还要实现不同的用户看到的信息是自己的2.Session可以做什么?1)网上商城购物车2)保存登陆用户信息3)将某些数据放入到Session中,可供同一用户的各个页面使用4)防止用户非法登陆到某个页面。.3. session图列 session基本用法图列4.小结:1 Session是存放在服务器的内存中2 一个用户浏览器,独享一个session域对象3 Session中的属性的默认生命周期是30min,可以通过web.xml来修改-对比Cookie图a.修改tomcat/conf/web.xml修改则会对所有的web应用都修改b.修改该web应用下的web.xml修改 - 对当前web应用 如果和a冲突则以b为准minutec.在servlet中修改:session.setMaxInactiveInterval(int seconds)可是有深刻内涵:如果在seconds时间内没有访问,则此session就over,如果访问了,则又有seconds时间存活。4 Session中可以存放多个属性(包括对象)5 如果session.setAttribute(name,value);中name相同,则会替换掉。5. 深入理解Session用户服务器是如何实现一个session为一个用户浏览器服务的?实际案例:防止用户非法登陆 - 登陆成功后,可以把该用户信息存放到session,然后在需要验证的页面中获取用户信息,如果为null,则打回去Session和Cookie:1. 关闭浏览器后,再开浏览器,上次购买的商品还在-涉及到session的销毁时间2. IE禁用Cookie后,Session就不在有任何意义(why?如何解决?)由于session是借助cookie传递的 有图例分析。注意:没有cookie时是一个Cookie:JESSIONID有了Cookie时是两个Cookie:JESSIONID 一个是session一个是cookie。Session和Cookie的比较:1. Cookie是放在客户端的,Session存放在服务器端2. Cookie在客户端以文件形式存放,Session存放在web服务器内存中v Session VS Cookie1.存储位置不同Cookie存在在客户端(临时文件夹)Session存在服务器内存中,一个session域对象为一个用户浏览器服务2. 安全性Cookie以明文方式存放在客户端,安全较弱,可以通过MD5加密算法在存放Session存放在服务器端内存中,所以安全性较好3. 网络传输量Cookie会传递信息给服务器Session的属性值不会给客户端4. 生命周期Cookie的声明周期是累计时间Session的生命周期是访问session的间隔时间,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论