ServletContext是什么?

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

是不是觉得上面一段话有点听不懂?那么不要着急,要理解ServletContext就必须和Cookie、Session做一个对比,我们通过一张图来说明一下:

你可以把它想象成一个公共的空间,可以被所有的客户访问,也就是说A客户可以访问D,B客户也可以访问D,C客户也能访问D。

好了这下子知道ServletContext是怎么回事了吧?那既然知道ServletContext是什么了,我们该如何使用ServletContext呢?通常情况下我们可以分以下三步曲使用ServletContext:

1.如何得到ServletContext实例

this.getServletContext();

2.你可以把它想象成一张表,这个和Session非常相似,每一行就是一个属性,如图:

ServletContext

名字

String

Object

   
   
   
   

添加属性setAttribute(String name,Object obj);得到值 getAttribute(String name)返回Object,删除属性removeAttribute(String name);

3.生命周期

ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束。

那么在网站开发中,有很多功能需要使用ServletContext,比如:

(1)网站计数器(2)网站在线人数统计(3)简单的聊天系统.....

浅谈ServletContext的更多相关文章

  1. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

  2. 浅谈SpringBoot核心注解原理

    SpringBoot核心注解原理 今天跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到零配置 ...

  3. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  4. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  5. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  6. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  7. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  8. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  9. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

随机推荐

  1. UIImageView动画

    NSMutableArray *arrM = [NSMutableArray array]; // 2.加载所有图片 ; i <= ; i++) { NSString *imageName = ...

  2. iptables-过滤61开头的ip数据包

    iptables -F root@android:/system/bin # iptables -L -n iptables -L -n Chain INPUT (policy ACCEPT) tar ...

  3. Hadoop 文本分类 终于跑通了

    Training 入口 package org.wordCount; import java.util.ArrayList; import java.util.List; import org.apa ...

  4. Android WiFi管理(WIFI_SERVICE)

    Android WiFi管理(WIFI_SERVICE) 分类: Android2011-11-24 10:52 2000人阅读 评论(1) 收藏 举报 androidservicebuttonlay ...

  5. 基于js脚本的单机黄金点游戏

    题目描述 N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G( ...

  6. Jackson最简单用法

    jackson的包在:https://yunpan.cn/cu2b6eMaBjFpz  访问密码 753f 代码: ObjectMapper objectMapper = new ObjectMapp ...

  7. 关于flex4 list 高度适应内容

    Flex 4: Setting Spark List height to its content height How to set a Spark List height to the height ...

  8. springMVC和spring的集成

    主要是2点 1.web.xml里 配置spring所需的listener 2. 新增applicationContext.xml, 配置注入的bean 3. 使用注解获取bean @Resource ...

  9. PAT (Advanced Level) 1010. Radix (25)

    撸完这题,感觉被掏空. 由于进制可能大的飞起..所以需要开longlong存,答案可以二分得到. 进制很大,导致转换成10进制的时候可能爆long long,在二分的时候,如果溢出了,那么上界=mid ...

  10. SQL复习六(视图)

    视图是关系数据库系统提供给用户以多角度观察数据库中数据的一种重要方法.视图是从一个或者几个表中导出的虚拟表.视图一经定义就可以被查询和删除.也可以在视图上定义视图.用视图完成数据的更新(增,删,改)操 ...