ServletContex对象学习
问题:
不同的用户使用相同的数据
解决:
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();
最新文章
- [转]ANDROID NOTIFICATIONS USING CORDOVA AND IONIC
- jQuery控制DOM对象
- Hightchart.js 的使用
- 注意 sizeof 中不要有复杂运算操作
- 简单的SqlHelper
- Entity Framework - Func引起的数据库全表查询
- 为什么 string.find()返回值是-1
- window忘记密码怎么办
- mysq建立索引的优缺点
- 201521123085 《Java程序设计》第8周学习总结
- 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)
- [Swift]LeetCode393. UTF-8 编码验证 | UTF-8 Validation
- 【jQuery】(1)---初次接触Jquery
- java生成二维码的几个方法
- Kaldi中的L2正则化
- Zephyr学习(五)线程和调度
- bootstrap 强调相关的类
- mybatis 生成 映射文件生成工具 mybatisGenerator 使用
- 03 linux命令的操作
- 【Elasticsearch】集群管理
热门文章
- ImportError: No module named git
- 手写一个简单版的SpringMVC
- Solr的原理及使用
- muduo源码解析2-AtomicIntegerT类
- python3.6和pip3:Ubuntu下安装升级与踩坑之路
- 一篇文章教会你使用Java8中的Lambda表达式
- [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module
- 模拟IIC总线多设备挂载(12864OLED屏幕+GY30光照传感器)
- 一篇文章高效定位iframe
- 【平台开发】— 8.前端-从[项目管理]来看vue