网络编程会话管理.ppt_第1页
网络编程会话管理.ppt_第2页
网络编程会话管理.ppt_第3页
网络编程会话管理.ppt_第4页
网络编程会话管理.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章,会话管理,HTTP协议的主要特性,简单快速。客户从服务器请求服务时,只需发送请求方法和路径、所有内容和处理。敏捷。HTTP允许传输任何类型的数据对象。传播类型显示为Content_type。未连接。含义:限制每个连接只处理一个请求。服务器处理客户的请求,收到客户的答复,然后断开连接。这样既节省了传输时间,又减轻了服务器的负担。无状态。HTTP协议是无状态协议。无状态意味着协议对事务没有内存。“缺少”状态意味着后续处理需要以前的信息时,必须重新传输。这可能会导致每个连接发送的数据杨怡增加。相反,如果服务器不需要以前的信息,则快速响应。这在开发应用程序时会产生很多问题。这是因为一个连接经常

2、需要有关以前连接的信息。可用于在web应用程序中实现会话功能的解决方案:提供当前HTTP增强、新的web协议建议基于HTTP、专业算法或方法,以模拟实际会话机制。通常,同一客户打开浏览器,连接到服务器,然后客户关闭浏览器,这称为会话。会话机制分析,会话机制必须实现两个基本功能。也就是说,您必须能够维护用户的当前状态信息。可以徐璐区分其他用户。默认用户是web浏览器。实际应用程序中web程序管理会话需要解决的问题:会话如何设置、裴珉姬管理、终止?用户状态信息存储在哪里?如何访问会话信息?如何标识其他会话?使用传统方法管理会话。HTTP协议是无状态协议,因此服务器端不存储数据。跟踪会话,将客户信息

3、存储在客户端上,或将需要在两个HTTP连接上维护的数据存储在客户端上。传统的方法基本上遵循这个原理。技术包括URL重写、隐藏表单域和cookie。URL重写技术、URL重写原理:将参数信息附加到URL后,服务器端可以使用HttpServletRequest对象的getParameter()等方法读取来自HTTP的Get请求。示例:客户请求的URL的格式如下:链接限制:(1)机密裴珉姬问题。(2)URL的长度受到限制,表单域被隐藏。原理:类似于URL重写的原理。但是,仅将要提交的数据放置在隐藏的表单域中。格式:优点:可以传输大量数据。缺点:可能导致不必要的网络流量增加。项目数多,难以管理。安全问

4、题。cookie功能,cookie是HTTP请求和响应中可能包含的较小数据片段,在服务器上生成,并作为响应标头域的一部分返回给用户。浏览器收到包含cookie的响应时,cookie的内容将写入文本文件,该文件以“关键字/值”对的形式存储客户端的cookie。浏览器将cookie和后续请求发送到同一服务器,服务器可以重新读取cookie的内容。保存cookie可以设置有效期,过期的cookie不会发送到服务器。关于饼干的争论主要有三个原因。要记住,将数据写入计算机,通过破坏作用可以收集信息,将个人信息cookie保存为文本,隐私不好,有安全风险的用户可以决定自己的固有浏览器是否支持cookie

5、cookie。(莎士比亚、Northern Exposure(美国电视剧)、计算机)、cookie内容和cookie包含客户端状态的说明,例如服务器上创建的用户号、访问者浏览的路径和行为、访问日期、客户端地址等。该技术基于web服务器/客户端应用程序扩展了双向通信功能。cookie的基本工作方式,客户端计算机,cookie,服务器,客户端请求文档,服务器设置cookie,客户端再次请求文档。服务器读取cookie、cookie技术的应用、在线购物系统的内存功能。可以记录顾客订购的商品。按照个人意愿设置浏览器界面。此web节点必须包含提供此功能的cookie。WWW节点访问进程跟踪,servle

6、t API提供封装对cookie的某些操作的cookie类。servlet可以创建新cookie,设置关键字、值、有效期等属性,然后设置HttpServletResponse对象向浏览器返回cookie,并从HttpServletRequest对象获取cookie。编程思想:cookie在实际servlet编程中广泛使用。以下是从servlet获取cookie信息的示例:ShowCookie.java,注意:Cookie执行服务器端和客户端之间的双向通信,因此包含安全问题。import javax . servlet . *;import javax . servlet . http . *;

7、public class show cookies extends http servlet public void doget(http servlet request req,http servlet响应)throws servletcharset=GB 2312 );/获取要在响应中输出的文本流Java . io . print write rout=resp . getwriter();/获取包含所有cookie的数组cookie=req . get cookies()。/写入网页头的HTMLout.println(html )。Out.println(“头”);out . print

8、 ln(“title显示cookie的内容/title”);out . print ln(/head );out . print ln( body );/检查是否有cookie?if(cookie=null)| |(cookie .长度=0) out.println(没有cookie);Else out.println(centerh1响应消息中的cookie信息/h1);/cookie信息out.println(表生成器);out . print ln(trthname/thth value/th th comment/thth max age/th/tr);for(int I=0);I c

9、ookies.lengthI)cookie c=cookie;out . print ln(trtd c . get name()/tdtd c . get value()/tdtd c . get comment()/tdtd c . get maxage out . print ln(/)/HTML的结尾out . print ln(/body);out . print ln(/html);out . flush();使用Java servlet API管理会话,Java servlet API提供基于现有会话管理的抽象类和接口层。创建会话后,API开发人员在处理HTTP请求时,可以将特定

10、对象绑定到HTTP会话,然后检索到同一用户的请求中。Java servlet API提供两个会话相关的类和接口:cookie和http会话。HttpSession接口、javax.servlet.HTTP.HttpSession接口封装在一段时间内与特定web客户的web服务器的多个请求相关的HTTP会话的详细信息。HttpSession对象可以通过HttpServletRequest对象的getSession()方法获取会话对象。主要方法:管理会话数据、管理会话数据主要包括三个方面:会话交换、会话重新定位和会话持续性。只能交换、重新定位和保留实现java.io.Serializable接口的

11、数据对象。此接口主要提供序列化功能,该功能将对象的状态信息写入所有输出流(文件、网络连接等)。会话数据管理、会话交换可用于存储所有servlet引擎会话信息的资源有限。servlet引擎定义在特定时间点内存中驻留的会话数的上限。超过时,最旧的会话对象将序列化到磁盘。必须存储在会话中的所有对象都必须序列化(java.io.Serializable接口实现)。会话数据管理,2 .会话重新定位对必须使用运行其他Java虚拟机的多个服务器响应对servlet的请求,并且可以重新定位会话对象。3.会话持久性web服务器在关闭时将所有会话对象和其中的数据保存到磁盘,然后在启动时重新加载。使用会话对象的读写

12、数据,将数据写入会话对象:putValue()方法。httpsessionsession=request . getsession(true);integer session item=new integer(1234);Session.putvalue (item1 ,session item);从会话对象获取数据:使用getValue()方法。httpsessionsession=request . getsession(true);integersessionitem=(integer)session . get value( item 1 );intmy value=session i

13、tem . int value();购物车实例,编程思想:以下是简单的在线购物示例。用户将商品(电视、冰箱、计算机)放入购物车时,可选商品信息会被存储。ShowCart.java、ShowCart.html、编程技术说明:在servlet中管理会话时,必须首先导入会话对象。HttpServletRequest.getSession()对象返回与请求相关的当前HttpSession对象,如果该对象不存在,则创建新对象。httpservletrequest . getsession(true)执行相同的功能。如果参数为false,则没有会话对象时返回null值。/获取会话对象httpsession

14、session=req . getsession(true);/获取选定商品的数量integer item count=(interger)session . get value(item count);创建http servlet、创建http servlet,通常包括以下四个步骤:1)展开http servlet抽象类。2)重新加载相应的方法。这相当于复盖或重写DoGet()或doPost()方法。3)获取HTTP请求信息(如果有)。使用HttpServletRequest对象检索在HTML表中提交的数据或URL中的查询字符串。4)生成HTTP响应。HttpServletResponse对象生成响应,并将其返回给发送请求的客户端。具体地说,如果用户选择商品后单击“添加到购物车”按钮,servlet将输出用户选择的商品。要创建servlet,请使用项目向导创建项目。要在项目中创建web应用程序:web应用程序是一系列静态页和servlet、JSP的组合。将servlet添加到web应用程序。使用servlet创建向导。指定servlet必须实现的方法。必须在web服务器上设置servlet的名称和URL映射名称。一般缺勤设定。功能:在浏览器的地址栏中输入web应用程序的名称,然后输入URL映射名称,就可以请求servlet了。必须输入需要由此servlet处

温馨提示

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

评论

0/150

提交评论