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对象;

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

  1. 跨JavaScript对象作用域调用setInterval方法

    跨JavaScript对象作用域调用setInterval方法: var id = window.setInterval(function() {foofunc.call(this);}, 200);

  2. [PHP]获取静态方法调用者的类名和运用call_user_func_array代入对象作用域

    一.获取静态方法调用者的类名 方法一: class foo { static public function test() { var_dump(get_called_class()); } } cl ...

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

          作用域对象 Servlet上下文监听器 Servlet会话监听器 Servlet请求监听器     一:对象作用域 作用域对象 属性操作方法 作用域范围说明 ServletContext( ...

  4. JavaWeb response对象常用操作

      JavaWeb response对象常用操作 CreationTime--2018年7月18日10点42分 Author:Marydon 1.设置响应内容类型 方式一 response.setCo ...

  5. JavaWeb request对象常用操作

      JavaWeb request对象常用操作 CreateTime--2018年6月1日16点47分 Author:Marydon 一.前提 import javax.servlet.http.Ht ...

  6. JavaScript 执行环境(执行上下文) 变量对象 作用域链 上下文 块级作用域 私有变量和特权方法

    总结自<高程三>第四章  理解Javascript_12_执行模型浅析   JS的执行环境与作用域  javascript高级程序第三版学习笔记[执行环境.作用域] 在javascript ...

  7. Python学习之路——函数对象作用域名称空间

    一.函数对象 # 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 # 函数对象的应用 # 1 可以直接被引用 fn = cp_fn # 2 可以当作函数参数传 ...

  8. Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域

    Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...

  9. jsp内置对象作用域白话演示

    内置对象就是JSP中不需要自己定义和声明的对象,可以在JSP中直接使用.JSP中有9大内置对象,它们有两个常用的方法:setAttribute("key","value& ...

随机推荐

  1. 获取访问者ip的方法

    package com.mi.util; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.S ...

  2. 【final】站立会议---11.27

    名称:nice! 组长:李权 成员:于淼  刘芳芳韩媛媛 宫丽君 时间:11月27日 13:00 项目内容:约跑app(约吧) 地点:传媒西楼220室 内容: 新任务的分配 1.李权分配任务 2.韩媛 ...

  3. html5,表单

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. POJ - 2339 Rock, Scissors, Paper

    初看题目时就发了个错误,我因为没有耐心看题而不了解题目本身的意思,找不到做题的突破口,即使看了一些题解,还是没有想到方法. 后来在去问安叔,安叔一语道破天机,问我有没有搞清题目的意思,我才恍然大悟,做 ...

  5. ReactJs入门教程

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

  6. Flowplayer-Setup

    SOURCE URL: https://flowplayer.org/docs/setup.html 1. DOCTYPE At the top of your page declare the HT ...

  7. linux 防火墙配置

    vi /etc/sysconfig/iptables # Generated by iptables-save v1. :: *nat :PREROUTING ACCEPT [:] :POSTROUT ...

  8. linuxmint 默认不启动图形界面

    1.参考:http://garyu.blog.51cto.com/2838408/513772 修改/etc/X11/default-display-manager文件 该文件的内容一般是一个路径,比 ...

  9. 03-第一个C语言程序的分析

    本文目录 一.代码分析 二.开发和运行C程序的步骤 三.总结 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语 ...

  10. 解决lScrollView嵌套ListView只显示一行的问题,listvie显示全部的item

    ScrollView嵌套ListView只显示一行的问题 1.思路:给listview重新添加一个高度. listview的高度==listview.item的高度之和. 2.注意:关键是添加list ...