问题:

  不同的用户使用相同的数据

解决:

  ServletContext对象

特点:

  服务器创建

  用户共享

作用域:

  整个项目内

生命周期:

  服务器启动到服务器关闭

使用:

 1.获取SercvletContext对象

    //第一种

   ServletContext sc=this.getServletContext();

    //第二种

    ServletContext sc2=this.getServletConfig().getServletContext();

    //第三种

   ServletContext sc3=req.getSession().getServletContext();

  2.使用ServletContext对象完成数据共享

    //数据存储

  sc.setAttribute(String name, Object value);

    //数据获取

   sc.getAttribute("str") 返回的是Object类型

    注意:

       不同的用户可以给ServletContext对象进行数据的存取。

       获取的数据不存在返回null

  3.获取项目中的web.xml文件中的全局配置数据

  sc.getInitParameter(String name); 根据键的名字返回web.xml中配置的全局数据的值,返回String类型。如果数据不存在返回null   

  sc.getInitParameterNames();返回键名的枚举

 配合方式:注意 一组<context-param>标签只能存储一组键值对数据,多组可以声明多个  <context-param>进行存储。

   作用:将静态数据和代码进行解耦。

<context-param>
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</context-param>

  4.获取项目webroot下的资源的绝对路径。

  String path=sc.getRealPath(String path);  获取的路径为项目根目录,path参数为项目根目录中的路径

  5.获取webroot下的资源的流对象。

   InputStream is = sc.getResourceAsStream(String path);

  注意:
  此种方式只能获取项目根目录下的资源流对象,class文件的流对象需要使用类加载器获取。
  path参数为项目根目录中的路径

  6..显示目录下的资源

   Set<String> paths = sc.getResourcePaths();

最新文章

  1. [转]ANDROID NOTIFICATIONS USING CORDOVA AND IONIC
  2. jQuery控制DOM对象
  3. Hightchart.js 的使用
  4. 注意 sizeof 中不要有复杂运算操作
  5. 简单的SqlHelper
  6. Entity Framework - Func引起的数据库全表查询
  7. 为什么 string.find()返回值是-1
  8. window忘记密码怎么办
  9. mysq建立索引的优缺点
  10. 201521123085 《Java程序设计》第8周学习总结
  11. 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)
  12. [Swift]LeetCode393. UTF-8 编码验证 | UTF-8 Validation
  13. 【jQuery】(1)---初次接触Jquery
  14. java生成二维码的几个方法
  15. Kaldi中的L2正则化
  16. Zephyr学习(五)线程和调度
  17. bootstrap 强调相关的类
  18. mybatis 生成 映射文件生成工具 mybatisGenerator 使用
  19. 03 linux命令的操作
  20. 【Elasticsearch】集群管理

热门文章

  1. ImportError: No module named git
  2. 手写一个简单版的SpringMVC
  3. Solr的原理及使用
  4. muduo源码解析2-AtomicIntegerT类
  5. python3.6和pip3:Ubuntu下安装升级与踩坑之路
  6. 一篇文章教会你使用Java8中的Lambda表达式
  7. [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module
  8. 模拟IIC总线多设备挂载(12864OLED屏幕+GY30光照传感器)
  9. 一篇文章高效定位iframe
  10. 【平台开发】— 8.前端-从[项目管理]来看vue