JavaWeb chapter6 对象作用域

1、  对象属性所在作用域:谁能看到并使用这个属性,以及它能存活多久。

2、  应用上下文ServletContext对象作用域:

  • 对于整个Web应用,只有一个ServletContext对象,而且在Web应用中的所有地方都可以访问它;
  • ServletContext对象由Web容器创建并实例化,它可以多线程同时读/写属性;
  • 是线程不安全的,所以需要对属性的读/写进行同步处理或进行深度复制;
  • 当web容器关闭,会销毁ServletContext对象;
  • 建议:在ServletContext对象中尽可能少量保存不会被修改的数据,常用的方法是用单例模式来处理共享数据。

3、  HTTPSession对象作用域:

  • 用于维护服务器与一个客户的会话状态。在HttpSession对象中设置属性,不能被Web应用中的所有地方访问;
  • HttpSession对象在用户会话期间存在,只能在处理属于同一个HttpSession的请求的线程中被访问;
  • HttpSession对象的属性访问理论上是线程安全的,但当用户打开多个属于一个进程的浏览器窗口,在这些窗口的访问属于同一个HttpSession对象,会出现多次请求,需要多个工作线程处理请求,可能造成线程不安全,这时需要对属性的读写进行线程同步处理,一般使用同步块synchronized来处理;
  • 当会话被销毁,HttpSession的设置属性也会被销毁;

4、  HTTPServletRequest对象作用域:

  • HttpServletRequest对象用于一次客户端请求过程。对于每一个请求,由一个线程来执行,都会创建一个新的HttpServletRequest对象;
  • 所以HttpServletRequest对象只能在一个线程中被访问,它是线程安全的;

5、  三个对象的共同点:都是内置对象,都相当于容器,可以存取属性,拥有相同的属性操作方法。

6、  三个对象的不同点:

  • 作用域大小比较:ServletContext>HttpSession对象>HttpServletRequest对象;
  • 存活时间长短比较:ServletContext>HttpSession对象>HttpServletRequest对象;
  • 资源消耗多少比较:ServletContext>HttpSession对象>HttpServletRequest对象;
  • 线程安全性比较:ServletContext<HttpSession对象<HttpServletRequest对象;
时间: 2024-08-28 02:09:03

JavaWeb chapter6 对象作用域的相关文章

第六章 对象作用域与servlet事件监听器

作用域对象 Servlet上下文监听器 Servlet会话监听器 Servlet请求监听器 一:对象作用域 作用域对象 属性操作方法 作用域范围说明 ServletContext(上下文) void setAttribute(String, Object) Object getAttribute(Sting) void removeAttribute(String) Enumeration getAttributeNames() 整个Web应用程序 HttpSession(会话) 一个会话交互过

Web程序对象作用域

Web程序对象作用域:常用的有三个:请求作用域,会话作用域,应用上下文.请求作用域req范围最小,需要的资源最少,作用当前请求 session会话作用于本次对话,每个对话都有JSessionID, ServletContext作用域范围大:web应用中所有都能够访问,生命周期和web容器一样长,维护所需资源多. 在满足需求内耗费的资源越小越好 一.请求作用域: //得到页面的属性和值req.getParameter("userName");Enumeration<String&g

变量对象+作用域链+闭包

下文根据汤姆大叔的深入javascript系列文章删改,如果想深入理解请阅读汤姆大叔的系列文章.http://www.cnblogs.com/TomXu/... 变量对象 初步介绍 变量对象(缩写为VO)是一个与执行上下文相关的特殊对象,它存储着在上下文中声明的以下内容: 变量 (var, 变量声明); 函数声明 (FunctionDeclaration, 缩写为FD); 函数的形参 我们可以用普通的ECMAScript对象来表示一个变量对象: VO = {}; VO是执行上下文的属性(prop

JAVAWEB JSP对象

JSP的内置对象: 在JSP页面编程的时候不必声明这些对象就能直接使用的对象 Request:HttpServletRequest类中的,用于得到请求信息 Response:HttpServletResponse类中的,用于得到响应信息 Application:ServletContext中得到web应用运行环境 Config:ServletConfig中用于得到Servlet初始化参数 Session:HttpSession中用来保存每一个用户信息的对象 Page:JSP被翻译成.java文件

jsp中的四种对象作用域

page:当前页面,也就是只要挑到别的页面就失效了,可以近似理解为java的this对象 request:一次会话,简单的理解就是一次请求范围内有效,例如如果通过forward方式跳转,则forward目标页面仍然可以拿到request中的属性值,再例如如果通过redirect方式进行页面跳转,由于redirect相当于重新发出的请求,request中的值会消失 session:浏览器进程,只要当前页面没有被关闭(没有被浏览器强制清除),不管怎么跳转都是有效的(也可以说是存在一个会话周期中) a

JavaWEB域对象

PageContext: ServletRequest: HttpSession: ServletContext: void setAttribute(String name, Object value):用来存储一个对象,也可以称之为存储一个域属性,例如:servletContext.setAttribute(“xxx”, “XXX”),在ServletContext中保存了一个域属性,域属性名称为xxx,域属性的值为XXX.请注意,如果多次调用该方法,并且使用相同的name,那么会覆盖上一次

四大对象作用域及区别

page:当前页面,也就是只要跳到别的页面就失效了request:一次会话,简单的理解就是一次请求范围内有效session:浏览器进程,只要当前页面没有被关闭(没有被程序强制清除),不管怎么跳转都是有效的application:服务器,只要服务器没有重启(没有被程序强制清除),数据就有效 原文地址:https://www.cnblogs.com/2016-cxp/p/8654705.html

JavaWeb学习(三)----JSP内置对象详解

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4065790.html 联系方式:[email protected] [系列]JSP学习系列文章:(持续更新) JavaWeb学习(一)----JSP简介及入门(含Tomcat的使用) JavaWeb学习(二)----JSP脚本元素.指令元素.动作元素 JavaWeb学习(三)----JSP内置对象

JavaWeb中四大域对象的作用范围

JavaWeb的四大作用域为:PageContext,ServletRequest,Session,ServletContext: PageContext域:作用范围是整个JSP页面,是四大作用域中最小的一个:生命周期是当对JSP的请求时开始,当响应结束时销毁. ServletRequest域:作用范围是整个请求链(请求转发也存在):生命周期是在service方法调用前由服务器创建,传入service方法.整个请求结束,request生命结束. Session域:作用范围是一次会话.生命周期是在