ServletContext对象初识
什么是ServletContext?
ServletContext代表一个web应用的环境(上下文)对象,ServletContext对象内部封装的是该web应用的信息。一个web应用只有一个ServletContext对象。但是一个web应用有多个servlet对象。
ServletContext的生命周期?
- 创建:该wwb应用被加载(服务器启动或发布web应用,前提是服务器是启动状态)
- 销毁:该wwb应用被卸载(服务器关闭或移除web应用)
如何获得ServletContext对象?
- ServletContext servletContext = config.getServletContext();(config对象是init()方法中的一个参数)
- ServletContext servletContext = this.getServletContext();(该方法必须是继承HttpServlet才可以)
ServletContext的作用?
- 获得web应用全局的初始化参数。(得先在web.xml中配置)
<!-- 配置全局的初始化参数 -->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
// 通过contex对象获取参数
ServletContext context = this.getServletContext();
String initParameter = context.getInitParameter("driver");
System.out.println(initParameter);
- 获得web应用中任何资源的绝对路径(重要 重要 重要)
ServletContext context = this.getServletContext();
// 获得abcd.txt的绝对路径,getRealPath()方法的参数是文件相对工程目录即WEB12的地址
// 获得a的绝对路径
String pathA = context.getRealPath("a.txt");
System.out.println(pathA);
// 获得b的绝对路径
String pathB = context.getRealPath("WEB-INF/b.txt");
System.out.println(pathB);
// 获得c的绝对路径
String pathC = context.getRealPath("WEB-INF/classes/c.txt");
System.out.println(pathC);
// 获得d的绝对路径(发布不过去,所以获取不到)
// 第二种获取资源绝对路径的方法
// 在读取src(classes)下的资源是可以通过类加载器-专门加载classes下的文件资源的
// getResource()方法的参数也是一个相对路径,但是是相对classes目录的
String path = ContextServlet.class.getClassLoader().getResource("c.txt").getPath();
System.out.println(path);
- ServletContext是一个域对象(重要 重要 重要)
- 什么是域对象?什么是域?
存储数据的区域就是域对象。
ServletContext域对象的作用范围:整个web应用(所有的web资源都可以随意访问servletContext域中存取数据,数据可以共享) - 域对象通用的方法
- setAttribute(String name, Object obj);
- getAttribute(String name);
- removeAttribute(String name);
ServletContext对象初识的更多相关文章
- 重温Servlet学习笔记--servletContext对象
一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...
- mvc-servlet---ServletConfig与ServletContext对象详解(转载)
ServletConfig与ServletContext对象详解 一.ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取Serv ...
- Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...
- ServletContext对象
**1 ServletContext对象 1)在web应用中,由服务器创建的唯一的一个对象是ServletContext 2)ServletContext对象在每一个Servlet中取得都是相 ...
- javee学习-通过ServletContext对象实现数据共享
1,设置值. ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象 // ...
- ServletContext对象--三大域对象
Servlet三大域对象的应用 request.session.application(ServletContext) ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器 ...
- ServletContext对象的应用
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯.ServletContext对象通常也 ...
- ServletContext对象(每个工程只有一个此对象)
一]重点方法: 1>存取对象 void setAttribute(String name, Object object);//将obj ...
随机推荐
- web高拍仪图片上传
公司引进高拍仪,想拍完照片点上传按钮直接上传图片.高拍仪接口能提供照片的本地路径,现在的问题是不用file控件选择,只有路径,不知道如何上传到服务器,求解决方案. 方法: 使用泽优Web图片上传控件( ...
- Harbor修改暴露端口
把原来的端口映射改成1180 一 修改docker-compose.yml [root@topcheer ~]# cat /mnt/harbor/docker-compose.yml version: ...
- oracle sql查询表外键关系
SELECT F.TABLE_NAME, F.CONSTRAINT_NAME, F.COLUMN_NAME, F.POSITION, P.TABLE_NAME, P.COLUMN_NAME, P.PO ...
- SSL异常javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
jdk 7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html jdk 8 http: ...
- xsxsxsxsxsxsxsxs
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- 「PHP开发APP接口实战009」日常安全防范之防SQL入和XSS攻击
防SQL注入和XSS攻击通用过滤 首先在 /app/library/ 目录下创建 Security.php 文件并添加以下代码: <?php /** * * 防SQL注入和XSS攻击通用过滤 * ...
- maven 依赖调解
项目A有两条依赖关系 A->B->C->X(1.0),A->D->X(2.0) ,X是A的传递性依赖,但是两条路径上有两个版本的依赖,会选择哪个呢? maven 依赖调 ...
- java 集合框架 List相关接口
AbstractCollection 此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作. 还有两个抽象方法,具体的迭代器,具体的Collection 的大小 pu ...
- 经常用到的meta标签的整理
1.设置页面关键词<meta name="keywords" content="输入具体的关键词">2.设置页面的描述<meta name=& ...
- pandas dataframe 一行变多行 (query pv统计term pv)
关键字: 用jieba切词 用expand 一列变多列 用stack 列转行 用group by + aggr 相同term的pv求和 上效果: query pv 今日新鲜事 今日头条 北京天气 上海 ...