什么是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的作用?

  1. 获得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);
  1. 获得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);
  1. ServletContext是一个域对象(重要 重要 重要
  • 什么是域对象?什么是域?

    存储数据的区域就是域对象。

    ServletContext域对象的作用范围:整个web应用(所有的web资源都可以随意访问servletContext域中存取数据,数据可以共享)
  • 域对象通用的方法
    • setAttribute(String name, Object obj);
    • getAttribute(String name);
    • removeAttribute(String name);

ServletContext对象初识的更多相关文章

  1. 重温Servlet学习笔记--servletContext对象

    一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...

  2. mvc-servlet---ServletConfig与ServletContext对象详解(转载)

    ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...

  3. 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

    今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取Serv ...

  4. Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象

    本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...

  5. ServletContext对象

    **1 ServletContext对象   1)在web应用中,由服务器创建的唯一的一个对象是ServletContext   2)ServletContext对象在每一个Servlet中取得都是相 ...

  6. javee学习-通过ServletContext对象实现数据共享

    1,设置值. ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象 // ...

  7. ServletContext对象--三大域对象

    Servlet三大域对象的应用 request.session.application(ServletContext) ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器 ...

  8. ServletContext对象的应用

    由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯.ServletContext对象通常也 ...

  9. ServletContext对象(每个工程只有一个此对象)

    一]重点方法:        1>存取对象                        void setAttribute(String name, Object object);//将obj ...

随机推荐

  1. selenium 浏览器无界面模式运行

    以Chrome浏览器为例: 方法一: from selenium.webdriver import Chrome, ChromeOptions opt = ChromeOptions() # 创建Ch ...

  2. 用ASP实现文件下载

    <% '**************************************************************'**使用方法:                        ...

  3. 晋江年下文爬取【xpath】

    ''' @Modify Time @Author 目标:晋江年下文 爬取6页 ------------ ------- http://www.jjwxc.net/search.php?kw=%C4%E ...

  4. CodeForces - 587E[线段树+线性基+差分] ->(线段树维护区间合并线性基)

    题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线 ...

  5. EL表达式(三)自定义 EL 表达式

    自定义EL函数(静态方法): 编写步骤: 1.编写一个Java类,提供一个静态方法 import java.util.List; public class GetLength { public sta ...

  6. 上海站赛后总结&反思

    上海站赛后总结&反思 赛后反思一下,本应该做出3~4题的场,最后只出了2题. 先回顾一下比赛,比赛开始10分钟,队友dy就想出了B题是trie树的模板题,然后让mqy码,第一次交的时候有地方打 ...

  7. 使EasyUI的window、panel、dialog 不被拖出页面

    function easyuiPanelOnMove(left, top) {  var l = left;  var t = top;  if (l < 1) {    l = 1;  }  ...

  8. 23.协程的使用场景,高I/O密集型程序

    import time def one_hundred_millionA(): start_time = time.time() i = 0 for _ in range(100000000): i ...

  9. 阿里巴巴离线数据同步工具/平台datax安装、使用笔记

    废话不多说,直接上笔记,先来看下参考链接GitHub: https://github.com/alibaba/DataX.此链接有较详细的安装使用方法,还有json参数编写的文档说明,建议多看. Fi ...

  10. IDEA 光标显示注释