- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 2017生物一轮对点训练5-1有氧呼吸与无氧呼吸aWord版含解析.doc
- 2017生物一轮对点训练5-1有氧呼吸与无氧呼吸bWord版含解析.doc
- 2017步步高大一轮复习讲义数学43.docx
- 2017考研无机化学专业详解.docx
- 2017步步高《单元滚动检测卷》高考数学精练三三角函数解三角形.docx
- 2017版高考地理一轮复习第五单元自然环境对人类活动的影响第四节地表形态与聚落及交通线路鲁教版.doc
- 2017年高考地理一轮考点训练自然环境中的物质运动和能量交换.doc
- 2017高考化学总复习同步训练第4章第9讲无机非金属元素的主角硅.doc
- 21__获取信息过程与方法教学设计.doc
- 21现代饭店管理的基本原理.doc
文档评论(0)