什么是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. ES6中的export和import

    1.ES6中的模块加载 ES6 模块是编译时加载,编译时就能确定模块的依赖关系,以及输入和输出的变量,相比于CommonJS 和 AMD 模块都只能在运行时确定输入输出变量的加载效率要高. 1.1.严 ...

  2. Web上传文件的三种解决方案

    第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname =  ...

  3. 6 October

    P1514 引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个 \(N\) 行 \(\times M\) 列的矩形,如上图所示, ...

  4. [NOIP2015]运输计划 题解

    题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条 航道连通了 L 国的所有星球. 小 P 掌管一 ...

  5. jQuery AJAX and HttpHandlers in ASP.NET

    https://www.codeproject.com/Articles/170882/jQuery-AJAX-and-HttpHandlers-in-ASP-NET Introduction In ...

  6. JAVA数组的toString()方法不能直接输出数组内容?

    问题描述:我定义了一个类,类名是Job,当我输出Job.toString()是可以按我重载的toString方法输出的,但是如果输出jobs[]这个数组时,只会输出[Lmodel.Job;@45e22 ...

  7. 2017/2/27-Laravel_资源控制器命令

    用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器 : php artisan make:controller Photo ...

  8. Linear Regression and Gradient Descent

    随着所学算法的增多,加之使用次数的增多,不时对之前所学的算法有新的理解.这篇博文是在2018年4月17日再次编辑,将之前的3篇博文合并为一篇. 1.Problem and Loss Function ...

  9. 继承Process类,另一种方法计算累加和以及阶乘

    #定义一个类 继承Process类 from multiprocessing import Process import os import time class jiecheng(Process): ...

  10. Self-Attention 和 Transformer

    1.Self-Attention 之前的RNN输入是难以并行化的,我们下一个输入可能依赖前一个输出,只有知道了前面的输出才能计算后面的输出. 于是提出了 self-attention ,但是这时候 $ ...