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

  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);

原文地址:https://www.cnblogs.com/zxfei/p/10992165.html

时间: 2024-08-08 13:11:37

ServletContext对象初识的相关文章

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

今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过

小谈-—ServletConfig对象和servletContext对象

一.servletContext概述 servletContext对象是Servlet三大域对象之一,每个Web应用程序都拥有一个ServletContext对象,该对象是Web应用程序的全局对象或者上下文.Tomcat服务器在启动时,会自动创建一个ServletContext对象,在关闭时,会自动销毁这个ServletContext对象.每个Web应用程序只拥有一个ServletContext对象,ServletContext对象可以在整个Web应用中共享数据资源. 生命周期很长 每个web应

servletContext对象

ServletContext对象 WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. 1)ServletContext对象应用1:多个web组件之间使用它实现数据共享 ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象.由于一个WEB应用中的所有Servlet共享

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

一]重点方法:        1>存取对象                        void setAttribute(String name, Object object);//将object存入ServletContext对象中,并取名为name(方便取出,与Map类似)                        Object getAttribute(String name);//获取name对应的对象        2>解析web.xml中<context-param&

ServletConfig与ServletContext对象详解

一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet.进而,程序员通过ServletConfig对象就可以

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

ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在 调用servlet的init方法时,将ServletConfig对象传递给

使用ServletContext对象读取资源文件

备注:本文以properties文件为例 一.通过ServletContext读取文件 1.通过ServletContext读取放置在src下的properties文件 package com; import java.io.IOException;import java.io.InputStream;import java.util.Properties; import javax.servlet.ServletException;import javax.servlet.annotation

[Servlet]研究ServletContext对象

ServletContext概述 ServletContext对象是Servlet三大域对象之一,每个Web应用程序都拥有一个ServletContext对象,该对象是Web应用程序的全局对象或者上下文.Tomcat服务器在启动时,会自动创建一个ServletContext对象,在关闭时,会自动销毁这个ServletContext对象.每个Web应用程序只拥有一个ServletContext对象,ServletContext对象可以在整个Web应用中共享数据资源. 下列是ServletConte

ServletContext对象的使用

得到web应用路径 getContextPath();用于请求重定向的资源名称中 1 public class ContextDemo extends HttpServlet { 2 @Override 3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 4 //1.得到ServletContext对象 5 //Servlet