java中级会话管理课堂笔记_第1页
java中级会话管理课堂笔记_第2页
java中级会话管理课堂笔记_第3页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、回顾重点内容:Servlet 编程:1)Servlet 的生命周期:构造方法:servlet 对象创建时调用。只调用 1 次。init 方法(有参):servlet 对象创建完之后调用,只调用 1 次。service 方法:每次发出请求时调用,调用 n 次。destory 方法: servlet 对象销毁时调用。项目重新部署或服务器停止,sevlet 对象会销毁。2)ServletContext对象 5 大作用:a)获取 web 上下文路径。context.getContextPath();简化版本: request.getContextPath();b)获取全局参数 context.getI

2、nitParameter(name);context.getInitParameterNames();c)作为域对象使用保存数据:获取数据:移除数据:context.setribute(name,Object);context.getribute(name)context.removeAttribute(name)d)用于转发context.getRequestDispatcher(路径).forward(request,response);/简化版本request.getRequestDispatcher(路径).forward(request,response);e)web 资源文件con

3、text.getRealPath(路径);得到资源文件的绝对路径context.getResourceAsStream(路径)得到资源,返回输入流context.getResource(路径) 得到资源,返回 URL会话管理1 会话管理入门1.1 生活中的会话我: 你最近有坐船吗?: 有啊,昨天才刚坐我: 这样啊!前几天有船沉了,你没事吧?: 不是吧?1.2 程序中的会话一次会话: 打开浏览器服务器 - 关闭浏览器-场景 1:打开浏览器- - 登录页面 - 输入用户名和(保存会话信息) - 提交到-校验成功- 返回用户首页(看到当前登录的用户名信息。)(取出会话信息)- 关闭浏览器使用什么技术

4、保存这些会话信息?场景 2:打开浏览器 - 浏览购物闭浏览器- 点击“” (把商品信息保存下来)-放入“购物车”- 关打开浏览器- 浏览器购物- 查看购物车 - 看到之前的商品信息- 付款-关闭浏览器使用什么技术保存这些商品信息?会话管理: 管理浏览器与服务器之间的会话过程中产生的会话数据!思考:可以使用域对象来保存会话信息?context 域:登录: 登录页面(context.setribute(name,) )用户主页(context.getribute(name))-使用 context 域会覆盖之前的数据request 域:登录: 登录页面(request.setribute(name

5、,tribute(name))) )用户主页(request.ge-使用 request 域之后,一定要使用转发技术来跳转页面。1.3 会话管理技术技术:会话数据保存在浏览器端。Ses技术: 会话数据保存在服务器端。技术22.1技术的使用对象:1)创建new 2)修改对象,用于会话数据(java.lang.String name, java.lang.String value)对象void setPath(java.lang.String uri)void setMaxAge(expiry)void setValue(java.lang.String newValue)3)把数据发送给浏览器保

6、存response.add4)浏览器带着request.get();服务器,服务器接收信息s();2.2技术原理1)服务器创建对象,保存会话数据,把数据发送给浏览器(响应头:set-response.add();: name=jacky)服务器时携带2)浏览器获取数据,保存在浏览器缓存区,然后在下次数据(请求头:3)服务器获取浏览器发送的request.get: name=jacky)数据s();2.3细节1)的数据类型一定是字符串,如果要发送中文,必须先对中文进行 URL 加密才可以发送。2)setPath(path): 修改所在的有效路径。有效路径? 如果把该数据给服务器。设置到某个有效路

7、径下,然后当浏览器这个有效路径的时候,才会携带3) setMaxAge(整数) : 设置的有效时间正整数: 表示超过了正整数的数值的时间,就会丢失!(保存浏览器的缓存目录):秒负整数: 表示如果浏览器关闭了,0: 表示删除同名的就会丢失!(保存浏览器内存)4)可以有多个,但是浏览器一般只允许存放 300 个,每个站点最多存放 20 个,每个的大小限制为 4KB。2.4 案例-用户上次时间2.5 案例-用户浏览过的商品技术3 Ses3.1 引入特点:会话数据放在浏览器端数据类型只能 string,而且有大小限制的相对数据存放不安全。Ses特点:会话数据放在服务器端(服务器内存),占用服务器资源数

8、据类型任意类型,没有大小限制的。相对安全3.2 Ses使用步骤对象:1)创建 HttpSesses 2)修改 HttpSesHttpSes对象,用于保存会话数据创建或获取 ses对象= request.getSes对象();erval)设置 ses对象对象的有效时间void setMaxInactiveerval(void invalidate()手动销毁 ses 3)保存会话数据(作为域对象).setribute(name,Object);保存数据sesses sestribute(name)获取数据.ge.removeAttribute(name) 删除数据3.3 Ses原理问题:服务器怎

9、么区分不同的浏览器会话?前提:可以从 ses对象取出数据必须是存放数据的 sessinon 对象!1)浏览器 1-窗口 1(001):/1)创建 HttpSes对象= request.getSes();给 ses对象分配 001HttpSesses/2)保存会话数据ses.setribute(name, jacky);2)浏览器 1-窗口 2(001):/1)得到 ses对象();搜索 001 的 ses对象HttpSesses= request.getSes/2)获取会话数据String name =(String)ses.getribute(name);可以得到!3)浏览器 2(没有标记/

10、1)得到 ses对象001)HttpSesses= request.getSes();/2)获取会话数据String name =(String)sestribute(name);不可以得到!.ge4)新的浏览器 1(没有标记/1)得到 ses对象001)HttpSesses= request.getSes();/2)获取会话数据String name =(String)ses不可以得到!.getribute(name);1)服务器创建 Ses对象,服务器会给这个 ses发送给浏览器ID 保存下来,在下次对象分配一个唯一的标记 JSESID2)把 JSESID 作为浏览器得到 JSES服务器得

11、到 JSES时携带这个 JSESID 去服务器ID,在服务器内存中搜索是否存在指定 JSSESSINOID 的 ses对象,5)如果找到,则返回这个 ses对象6)如果找不到,可能直接返回 null,或者再创建新的 ses对象。HttpSesses= request.getSes();结论: 通过JSESID 在服务器中查询对应的 ses对象。3.4 Ses细节1)setMaxInactive问题:seserval(秒数): 设置 ses在什么销毁?对象的有效时间注意:不是浏览器关闭,ses对象就销毁!默认情况: 等待 30 分钟空闲时间,ses对象才会销毁。2)可以让 JSESID 不会随着

12、浏览器关闭而丢失!13)直接手动销毁 sessino 对象invalidate();4) 创建或得到 ses对象(true): 创建或得到 ses对象,查询 ses对象,request.getSes如果没有 sessino 对象,则 创建新的 sesrequest.getSes直接返回 null() / request.getSes对象得到 ses对象。 查询 ses对象,如果 ses对象,(false)3.5 案例-用户登录总结:1)会话管理: 浏览器与服务器之间会话过程中产生的会话数据2)技术:会话数据保存在浏览器的 API:a)创建对象c = new(name,value)b)发送给浏览

13、器 respone.addc)浏览器发送(c);给服务器,服务器接收s = request.gets()技术: 会话数据保存在服务器(内存中)API:3) Sesa)创建或得到 HttpSes对象= request.getSes= request.getSes(true)创建或得到(false)得到HttpSesHttpSes b)使用 HttpSessesses保存和获取,删除会话数据sesses ses.setribure(name,Object);.getribute(name);.removeAttrbute(name);servlet 总结:第一天:tomcat 服务器:1)tomcat 服务器如何使用/* 设置JSESID的时间,不会随着浏览器关闭而丢失!*/c = new(JSESID,ses.getId(); c.setMaxAge(1*30*24*60*60);/1个月response.add

温馨提示

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

评论

0/150

提交评论