一、什么是ServletContext

  • ServletContext代表是一个web应用的上下文对象(web应用对象)
  • 里面封装的都是web应用信息
  • 一个ServletContext对应一个应用

二、ServletContext的生命周期

  • 在服务器一启动的时候就会创建
  • 在服务器关闭的时候销毁

三、如何获得上下文

  • 通过init方法当中一个参数ServletConfig来获取
public void init(ServletConfig config) throws ServletException {
System.out.println(config);
ServletContext context = config.getServletContext();
System.out.println(context);
} /** 运行结果
* org.apache.catalina.core.StandardWrapperFacade@3e478880
* org.apache.catalina.core.ApplicationContextFacade@24391b1e
*/
  • 直接在HttpServlet当中获取

    • this.getServletContext
    • 这种方法本质还是通过config来去获取的

四、获取全局的初始化参数

初始化参数不能再某一个Servlet当中来去配置。在最外层来去配置

获取全局初始化参数

五、获得Web应用中某一个资源的绝对路径

各文件的结构

获取 WebContent 下的文件

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String realPatha = context.getRealPath("a.txt");
System.out.println(realPatha);
String realPathb = context.getRealPath("WEB-INF/b.txt");
System.out.println(realPathb);
}

获取 Java Resources 下的文件

  • 方法一:和获取 WebContent 下的文件一样,先获取根目录,然后拼接。
  • 方法二:通过类加载器获取字节码目录
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = this.getServletContext(); String pathc = one.class.getClassLoader().getResource("c.txt").getPath();
System.out.println(pathc);
// 解决路径中 空格显示为 %20
pathc = URLDecoder.decode(pathc, "utf-8");
System.out.println(pathc); String pathd = one.class.getClassLoader().getResource("com/xzh/servlet/d.txt").getPath();
pathd = URLDecoder.decode(pathd, "utf-8");
System.out.println(pathd); String pathe = one.class.getClassLoader().getResource("e.txt").getPath();
pathe = URLDecoder.decode(pathe, "utf-8");
System.out.println(pathe);
}

六、ServletContext是一个域对象

  • 域 :能够存储数据。
  • 域对象 :能够存取数据数据就的对象。

ServletContext域对象的作用范围:

  • 整个web应用,所有的web资源都可以进行存取数据
  • 数据是可以共享的

获取完ServletContext之后向里面写数据

context.setAttribute(String name,Object value);

获取完ServletContext之后,通过name取出存放的数据

context.getAttribute(String name);

获取完ServletContext之后,删除指定名称的值

Context.removeAttribute(String name);

只要是一个域对象上,基本上里面都有这几个方法

ServletContext (上下文对象)的更多相关文章

  1. [07] ServletContext上下文对象

    1.上下文的概念 我们在说到Servlet的继承关系时,提到自定义Servlet实际上间接实现了Servlet和ServletConfig两个接口,其中ServletConfig接口中定义了一个方法叫 ...

  2. 上下文对象-请求对象-响应对象(ServletContext - response - request)

    目录 上下文对象-请求对象-响应对象 ServletContext response request 上下文对象-请求对象-响应对象 ServletContext 什么是ServletContext ...

  3. Context上下文对象(抄书的)

    Servlet上下文 ServletContext 上下文接口    ServletContext接口    每一个应用都有唯一的一个上下文对象,即为ServletContext对象    Servl ...

  4. Servlet配置对象、上下文对象、多线程问题

    一.Servlet配置对象(ServletConfig):Servlet初始化时,容器调用其init(ServletConfig)方法,传递该对象. 1.获得对象方法: (1).直接使用getServ ...

  5. EL的隐含对象(一)【页面上下文对象】

    页面上下文对象为pageContext,用于访问JSP内置对象(例如:request.response.out.session.exception.page等)和ServletContext.在获取到 ...

  6. EF上下文对象线程内唯一性与优化

    在一次请求中,即一个线程内,若是用到EF数据上下文对象,就创建一个,这也加是很多人的代码中习惯在使用上下文对象时,习惯将对象建立在using中,也是为了尽早释放上下文对象, 但是如果有一个业务逻辑调用 ...

  7. 【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建个数据模型,并且添加接口和实现类. 添加EF上下文对象 按照我们以前 ...

  8. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(七)

    使用 HttpRequest 对象 HttpRequest 对象描述的是一个正在被处理的 HTTP 请求.下表列举了 HttpRequest 中的属性,它们提供了当前请求的相关信息(HttpReque ...

随机推荐

  1. 【Codeforces629C】Famil Door and Brackets [DP]

    Famil Door and Brackets Time Limit: 20 Sec  Memory Limit: 512 MB Description Input Output Sample Inp ...

  2. 【BZOJ2815】【ZJOI2012】灾难 [LCA]

    灾难 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 阿米巴是小强的好朋友.  阿米巴和小强 ...

  3. 【NOIP】提高组2015 子串

    [题意]求从字符串A中取出k个互不重叠的非空子串顺序拼接形成B的方案数.n<=1000,m<=100,k<=m. [算法]动态规划 [题解]这题主要是将从i-l转移变成从i-1转移, ...

  4. 从C语言项目谈编程

    很多初学C语言的小伙伴,在学习之初并没有一个大概的概念,学习这门语言需要掌握多少知识点,怎么才算学的差不多? C语言的精髓点在哪? 学到多少东西才能够达到做项目的标准?学习的时候需要注意哪些细节点?疑 ...

  5. HDU 1026 Ignatius and the Princess I (广搜)

    题目链接 Problem Description The Princess has been abducted by the BEelzebub feng5166, our hero Ignatius ...

  6. bzoj 1503 平衡树

    我们可以用一颗平衡树维护每个人的工资,因为工资的变化会影响到后面所有的人,所以我们打一个标签,向平衡树里插入的时候减去这个标签的值,这样代表改变了之后的零点,,这样维护这个标签就好了,输出的时候要加上 ...

  7. 加overflow-hidden就可以解决高度塌陷问题,overflow-触发BFC

    1.BFC 全称是块级排版上下文,用于对块级元素排版,默认情况下只有根元素(body)一个块级上下文,但是如果一个块级元素 设置了float:left,overflow:hidden或position ...

  8. vsftp 服务的启动与问题

    一般系统用户是可以直接登入的如果不可以可能是selinux的原因 执行一下: 更改selinux的配置文件将其设为disable,可我不想重启服务器,有以下解决办法:执行命令:setenforce 0 ...

  9. [How to] 动态布局可变高度的cell的应用

    1.简介 代码:https://github.com/xufeng79x/DynamicChangeableCell 微博界面,微信和QQ聊天界面,这些界面的布局大都不确定,且每一条消息的高度也不一样 ...

  10. idea+spring+springmvc+mybatis+mybatis+maven

    使用SSM(Spring,SpringMVC和Mybatis) 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johns ...