1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
j2ee资料ppt

HTTP协议无状态性 HTTP协议无状态连接的优点 Web服务器需要为潜在的大量的用户服务。对于一个服务器,接受一条网络连接就意味着通过一个套接字侦听进入的请求,这会消耗掉服务器大量的资源,包括线程和内存。为了能够服务于大量的用户,HTTP被设计成在每一次新请求中都使用新的连接。 HTTP协议无状态连接的影响 由于HTTP具有的这种无状态性,使得基于Servlet技术的Web应用也是无状态的。也就是说我们不能把任何数据存储在Servlet的实例变量中来表示客户的状态。 会话的特征 会话能够把同一用户发出的不同请求之间关联起来。不同用户的会话应当是相互独立的。 会话一旦建立就应当一直存在,直到用户空闲时间超过了某一个时间界限,容器才应当释放该会话资源。 在会话的存活期间,用户可能给服务器发送了很多请求,该用户的这些请求信息都可以存储在会话中。 URL重写技术建立在这样的一种思想之下: 客户第一次访问网站时,将会话信息添加或嵌入到由服务器发出的每一个响应的URL中。当用户再次访问网站时,URL中会把这个会话信息作为用户请求参数返回服务器端,服务器根据返回的会话信息来标识该客户,维护整个会话的信息持续性。 隐藏窗体技术原理 HTML表单允许把一些字段信息隐藏起来,而在浏览器上不被显示出来。例如: INPUT TYPE=“HIDDEN” Name=“session” Value =”…” 使用隐藏窗体技术实现会话管理 这种方式的工作机制为:在用户第一次请求时,服务器在为客户准备的页面上添加一个或多个隐藏表单,把一些要隐藏的信息如标识该客户的ID号存储在那里。当客户提交该表单时,这些信息会作为查询参数返回服务器,服务器可以利用HttpServletRequest对象的getParameter()方法读取出来。这样就达到了在服务器端维护会话信息持续的作用。 维护会话的方式----隐藏窗体技术比较 可以这样认为,同重写URL技术相比,隐藏窗体技术在表单参数中传递会话信息,而重写URL技术是在GET参数中传递会话信息。除了这点,二者并无根本区别。如: 都属于非持久化会话方案 都使用页面动态修改技术,因此不支持静态HTML 代码编写方式很相似 Servlet中的解决方案------HttpSession Servlet 2.3提供了一种较高级别的会话跟踪机制,使得程序员从中解脱出来。 Servlet2.3规范定义了一个HttpSession接口,允许Servlet容器针对每一个用户建立一个HTTP会话(即HttpSession对象),每个HTTP会话将会自动被赋予一个唯一的会话编号(session ID),而无需程序员编程实现。 HttpSession对象提供了和ServletContext对象相似的一组会话属性的方法,这样就可以很容易地在服务器端存放用户会话状态。 获取与请求关联的会话对象 HttpServletRequest对象提供了getSession方法,通过这个方法,Servlet就可以获得与当前请求关联的会话对象的引用。该方法为重载的方法,有两个版本: public HttpSession getSession(); 返回与当前请求相关联的会话,如果当前请求还没有一个相关联的会话,就创建一个并返回。 public HttpSession getSession(bool bCreate); 返回与当前请求相关联的会话对象。如果没有,且参数create的值为true,则创建并返回一个新的会话。如果create的值为false,且请求没有相关联的会话对象,将返回null。 可以利用这点判断用户是否为第一次访问站点:如果getSession(false)返回null,则表示用户是第一次访问站点,如果返回非null则表示用户不是第一次访问站点。 会话与请求的关系 ervlet容器在创建每一个新的HTTP会话对象时,都会赋予一个新的ID号。 servlet容器保证它在Web应用范围内是唯一的。 会话ID是实际包含在Http请求/响应报文中的会话数据。 这个ID号可以通过HttpSession对象的getId()获得。例如: HttpSession session=request.getSession(); String sessionId=session.getId(); HttpSession工作原理 1、当用户第一次发出请求时,Servlet容器会建立一个HttpSession对象,并自动分配一个Web应用范围内唯一的Session ID与之对应。这个Ses

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档