




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WEBWEB系系统开发与设计统开发与设计1第第7 7章章 动态信息的存储和访问动态信息的存储和访问第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计2问题引入问题引入P142P142 (1)当某一用户登录到某网站之后,该网站如何当某一用户登录到某网站之后,该网站如何得知得知该用户已经登录该用户已经登录?登录之后,只要网站的相关页面不关闭,则一直处登录之后,只要网站的相关页面不关闭,则一直处于登录状态于登录状态 (2)某些网站可以让用户选择某些网站可以让用户选择若干天不登录若干天不登录但仍可访但仍可访问网站的某些功能,系统是如何保存这些客户信息的?问网站的某些功能,系统是如
2、何保存这些客户信息的?登录之后,即使关闭,再次打开,仍处于登录状态登录之后,即使关闭,再次打开,仍处于登录状态第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计3保存信息的保存信息的2 2种方式:种方式: 在在Web应用中,有两种信息的保存方式应用中,有两种信息的保存方式临时保存临时保存:可以使用:可以使用应用服务器提供的功能应用服务器提供的功能保存保存 使用服务器在运行中的各种对象使用服务器在运行中的各种对象永久保存永久保存:保存到:保存到数据库或者文件数据库或者文件中。中。 使用数据库或者文件,一般多数使用数据库。使用数据库或者文件,一般多数使用数据库。第08章 动态
3、动态信息的存储储和访问访问WEB系统开发与设计统开发与设计4主要内容主要内容 一、内存中保存信息一、内存中保存信息 二、客户端保存信息二、客户端保存信息第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计5一、内存中保存信息一、内存中保存信息 需要临时保存的信息:需要临时保存的信息:与与服务器相关服务器相关的信息(环境、参数)的信息(环境、参数) 。与每个与每个用户相关用户相关的信息(登录信息、权限)。的信息(登录信息、权限)。与每次与每次请求相关请求相关的信息,仅在当前请求中有效。的信息,仅在当前请求中有效。每个每个页面使用页面使用的信息,仅在当前页面中使用。的信息,仅在
4、当前页面中使用。涉及这些信息的保存,一共有涉及这些信息的保存,一共有5 5种方式。种方式。(1)application (2)session(3)request(4)page(5)cookieWEB系统开发与设计统开发与设计6内部对象关系图内部对象关系图客客户户1 1 Cookie Cookie客客户户2 2 Cookie Cookie客客户户n n Cookie Cookie网络网络服服务务器器WebWeb应应用用1 application1 application对对象象sessionsession对对象象1 1sessionsession对对象象2 2sessionsession对对象象
5、n nrequestrequest对对象象1 1requestrequest对对象象2 2requestrequest对对象象n nJSPJSP对对象象1 1JSPJSP对对象象2 2JSPJSP对对象象n nServletServlet对对象象1 1ServletServlet对对象象2 2ServletServlet对对象象n nJSPJSP文件文件1 1JSPJSP文件文件2 2JSPJSP文件文件n nServletServlet文件文件1 1ServletServlet文件文件2 2ServletServlet文件文件n nWebWeb应应用用2 2applicationapplic
6、ation对对象象WebWeb应应用用3 3applicationapplication对对象象第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计7一、内存中保存信息一、内存中保存信息 1、application对象对象 2、session对象对象 3、request对象对象第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计81 1、applicationapplication对象对象 用来在用来在多个程序多个程序或者或者多个用户多个用户之间共享数据,用户使之间共享数据,用户使用的所有用的所有application对象都是一样的。对象都是一样的。 服
7、务器一旦启动,就会服务器一旦启动,就会自动创建自动创建application对象,并对象,并一直保持一直保持,直至服务器关闭后自动消失。,直至服务器关闭后自动消失。 该对象的该对象的功能功能:A、获取与容器相关的信息、获取与容器相关的信息B、存取共享信息、存取共享信息 具体使用方式:具体使用方式:JSP:是内部对象,可直接使用:是内部对象,可直接使用Servlet:先获取该对象,然后再使用:先获取该对象,然后再使用第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计91 1、applicationapplication对象对象 (1)在在Servlet中获取中获取appli
8、cation对象对象(注:在(注:在JSP中可直中可直接使用接使用application对象)对象)ServletContext application=this.getServletContext(); (2)对象的常用方法对象的常用方法getAttribute():得到:得到Servlet上下文属性上下文属性name所代表的所代表的对象。对象。public Object getAttribute(String name)setAttribute():将:将Servlet上下文指定的名称上下文指定的名称name所代所代表的对象设定为表的对象设定为attribute,若,若name已经存在,则
9、替换。已经存在,则替换。不存在则创建。不存在则创建。public void setAttribute(String name,Object attribute)第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计101 1、applicationapplication对象对象 例如例如/获取获取application对象对象ServletContext application=this.getServletContext();/设置设置application中的变量中的变量countapplication.setAttribute(“count”,new Integer(i
10、Count);/获取获取application中的变量中的变量count的值的值Object o=application.getAttribute(“count”);iCount=(Integer)o).intValue();使用使用application对象实现网页计数器对象实现网页计数器第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计11计数器代码计数器代码 index.jspindex.jsp第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计12计数器改良版本计数器改良版本 第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与
11、设计132 2、sessionsession对象对象 需要保持服务器与客户在整个会话期间的数据信息;需要在需要保持服务器与客户在整个会话期间的数据信息;需要在多个页面间共享信息时,可以使用多个页面间共享信息时,可以使用session。 session对象的对象的信息保存在服务器信息保存在服务器中,但中,但ID保存在客户机的保存在客户机的Cookie中中,若客户机不支持,若客户机不支持Cookie,则转为,则转为URL重写。重写。在使用时在使用时无需考虑这些细节。无需考虑这些细节。 具体使用方式:具体使用方式:JSP:是内部对象,可直接使用:是内部对象,可直接使用Servlet:先获取该对象,然
12、后再使用:先获取该对象,然后再使用 常用方法常用方法setAttribute()getAttribuet()removeAttribute()第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计142 2、sessionsession对象对象(1)在)在Servlet中获取中获取session对象对象HttpSession session=request.getSessioon();(2)在)在session中存储信息中存储信息session.setAttribute(“uid”,uid);session.setAttribute(“ugrade”,ugrade);注:若变
13、量已经存在,则注:若变量已经存在,则setAttribute()完成更新操作完成更新操作(3)在)在session中获取信息中获取信息String uid=(String)session.getAttribute(“uid”);String ugrade=(String)session.getAttribute(“ugrade”)注:若变量不存在,则注:若变量不存在,则getAttribute()返回值为返回值为null第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计15 (4)删除)删除session中的信息中的信息session.removeAttribute(“u
14、id”); (5)使)使session无效无效session.invalidate();Session的实例的实例A、记住会话的用户名、记住会话的用户名B、猜字母游戏:、猜字母游戏:guessCharEx1.jsp/guessResultEx1.jspC、改进网页计数器、改进网页计数器利用利用session对象的对象的isNew()方法:方法:如果服务器端尚未接收如果服务器端尚未接收过客户端关于当前会话的请示,则此方法返回过客户端关于当前会话的请示,则此方法返回true,否则,否则返回返回false。第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计16记住会话的用户名记
15、住会话的用户名在主页中登录在主页中登录判断用户名是否判断用户名是否正确正确结果提示页面结果提示页面check.jspcheck.jspindex.jspCheckServlet5秒后秒后转转向主向主页页;在;在主主页页中中显显示信息示信息1 1、获取用户登录信息、获取用户登录信息2 2、判断信息是否正确、判断信息是否正确(1 1)创建存放用户名的)创建存放用户名的sesssessionion变量变量(2 2)存放登录状态的)存放登录状态的sessiosession n变量变量3 3、转向结果提示页面、转向结果提示页面第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计17猜
16、字母猜字母/ /数字游戏数字游戏生成随机字母生成随机字母/ /数数字字存入存入sessionsession对象对象的变量中的变量中猜字母猜字母获取所猜的字母获取所猜的字母并比较并比较1 1、创建一个存放、创建一个存放2626个字母个字母(数字)的字符串变量(数字)的字符串变量2 2、生成一个用于表示字符位、生成一个用于表示字符位置的随机数(置的随机数(0-250-25)3 3、利用字符串的、利用字符串的charAt()charAt()方方法获取一个字符并赋值给某法获取一个字符并赋值给某个字符变量个字符变量需要:需要:1 1、游戏规则说明、游戏规则说明2 2、用以输入字母的表单(仅、用以输入字母
17、的表单(仅需文本框和提交按钮)需文本框和提交按钮)guessCharEx1.jspguessResultEx1.jsp第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计18生成随机数字生成随机数字String charString=new String(0123456789);int charNumber=(int)(Math.random()*10);Character TempCharacter=new Character(charString.charAt(charNumber); session.setAttribute(TempCharacter,TempCha
18、racter); -比较前要转换成字符串类型比较前要转换成字符串类型String result=session.getAttribute(TempCharacter).toString();第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计19关于浏览器进程间的共享机制关于浏览器进程间的共享机制浏览浏览器器进进程程1 1浏览浏览器器进进程程2 2浏览浏览器器进进程程3 3浏览浏览器器进进程程4 4第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计20 结论结论保存保存Session ID的的会话会话Cookie被保存在浏览器的内被保存在浏览器的内存中
19、,在浏览器关闭后就存中,在浏览器关闭后就被删除被删除,不能在多个浏览,不能在多个浏览器进程间共享。器进程间共享。IE浏览器:各个打开的浏览器:各个打开的IE浏览器浏览器具有不同的进程,具有不同的进程,不能共享内存中的不能共享内存中的Cookie。只有某些方式下打开的只有某些方式下打开的不同窗口不同窗口属于同一进程属于同一进程。FireFox浏览器:其打开的不同窗口浏览器:其打开的不同窗口。第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计21对于对于sessionsession使用的一种误解使用的一种误解 浏览器一旦关闭,浏览器一旦关闭,Session就消失了就消失了。
20、实际上实际上:在服务器端,原先的:在服务器端,原先的Session仍旧存在,直至仍旧存在,直至超时超时才被服务器删除才被服务器删除 对于客户端:保存对于客户端:保存Session ID的的Cookie保存在浏览器的保存在浏览器的内存中内存中,一旦浏览器关闭,一旦浏览器关闭,Cookie将被删除,则无法将被删除,则无法找到先前的找到先前的SessionID。 当再次打开浏览器连接服务器时,服务器没有收到当再次打开浏览器连接服务器时,服务器没有收到SessionID,因此就创建了一个新的,因此就创建了一个新的Session。第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计2
21、23 3、requestrequest 主要针对主要针对同一次请求的不同页面同一次请求的不同页面之间要共享信息之间要共享信息(1)信息的存储:通过)信息的存储:通过request对象的对象的setAttribute方法完方法完成成public void setAttribute(String name,Object o)例如:设第一个页面有一个例如:设第一个页面有一个String型变量型变量str,要在,要在第二个页面中使用,则可以通过下面方法保存第二个页面中使用,则可以通过下面方法保存request.setAttribute(“mystr”,str);例如:把计算结果例如:把计算结果int型
22、值保存型值保存request.setAttrubute(“re”, new Integer(result)第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计23(2)信息的获取:通过)信息的获取:通过request对象的对象的getAttribute方法方法完成完成public Object getAttribute(String name)返回值类型是返回值类型是Object,因此获取信息时需要进行类,因此获取信息时需要进行类型强制转换。型强制转换。若要获取的信息不存在,则返回值为若要获取的信息不存在,则返回值为null 例如:显示存储在例如:显示存储在request中
23、的中的str对象对象第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计245 5、相邻页面之间共享信息(自学)、相邻页面之间共享信息(自学) (1)通过表单提交完成,使用隐藏域)通过表单提交完成,使用隐藏域 (2)通过请求字符串完成,在请求的地址后面用)通过请求字符串完成,在请求的地址后面用“?”传递参数。传递参数。第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计25(1 1)使用隐藏域传递参数)使用隐藏域传递参数 隐藏域的基本格式隐藏域的基本格式 注:必须使用表单提交,值才会传递到服务器。注:必须使用表单提交,值才会传递到服务器。input ty
24、pe=“” name=“valuename” value=“value”第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计26(2 2)使用请求字符串传递信息)使用请求字符串传递信息 基本格式基本格式requesturl?pname1=“pvalue1”&pname2=“pvalue2”&requesturl?pname1=“pvalue1”&pname2=“pvalue2”&第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计27二、客户端保存:二、客户端保存:CookieCookie Cookie是服务器发送给客户端浏览器的体积较小的是服务器发送给
25、客户端浏览器的体积较小的纯纯文本信息文本信息,以后当用户访问,以后当用户访问同一个服务器同一个服务器时,浏览器时,浏览器会把它们发送给服务器。会把它们发送给服务器。 服务器读取原先保存在客户端的信息为浏览者提供一服务器读取原先保存在客户端的信息为浏览者提供一系列的方便。系列的方便。避免重复输入用户名和密码避免重复输入用户名和密码门户网站的主页定制门户网站的主页定制有针对性地投放广告有针对性地投放广告第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计281 1、CookieCookie的使用方法的使用方法 (1)创建)创建Cookie对象对象对应的构造函数:对应的构造函数:注意:注意:Cookie对象的名称和值都不能包括这些字符:对象的名称和值都不能包括这些字符: ( ) = , “ / ? :例如:例如:Cookie c=new Cookie(“Username”,”zhangsan”);public Cookie(String name,String value);Cookie 的的名字名字Cookie 的的值值第08章 动态动态信息的存储储和访问访问WEB系统开发与设计统开发与设计291 1、CookieCooki
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柳州职业技术学院《新型材料毒理学评价》2023-2024学年第二学期期末试卷
- 眉山职业技术学院《宝石工艺学》2023-2024学年第二学期期末试卷
- 铁岭卫生职业学院《食品制造与安全前沿科学》2023-2024学年第二学期期末试卷
- 德宏职业学院《果蔬加工工艺学》2023-2024学年第二学期期末试卷
- 嘉兴南湖学院《休闲学概论》2023-2024学年第二学期期末试卷
- 2025年煤矿市场分析:智能化与高效利用推动行业转型
- 2025年中考数学几何模型归纳训练:最值模型之胡不归模型解读与提分训练(全国版)
- 辽宁厨房排烟施工方案
- 甘肃省白银市2024-2025学年高二(上)期末生物试卷(含解析)
- 第12课 资本主义世界殖民体系的形成 课件- 课件-【知识精研】高一下学期统编版(2019)必修中外历史纲要下
- 重点流域水环境综合治理中央预算内项目申报指南
- 民用无人机操控员执照(CAAC)考试复习重点题库500题(含答案)
- 家族合伙企业合同协议书
- 工业机器人编程语言:URScript(UniversalRobots):UR机器人安全编程与碰撞检测
- 5.1 实数指数幂-中职数学教学设计(高教版2021基础模块 下册)
- 大学生心理安全教育(大学生安全教育课件)
- 岩土工程领域的前沿技术与未来发展
- 国家开放大学电大《现代汉语》形考任务参考答案
- 2024年天津市北辰城市资源开发利用有限公司招聘笔试冲刺题(带答案解析)
- 四年级美术测国测复习题答案
- 资料分析(历年国考真题)
评论
0/150
提交评论