Servlet中ServletConfig接口和ServletContext接口的作用

简介: Servlet中ServletConfig接口和ServletContext接口的作用

前言:
Servlet的作用:

  • Servlet 是接口,是 JavaEE 规范之一。接口起到了规范的作用。
  • Servlet 是 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
  • Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
  • 也就是说Servlet接口的实现类等待着Tomcat服务器来调用类中的方法,这个地方运用到了java中的多态。

一. ServletConfig接口的作用

知识点:

  • ServletConfig接口的实现类 是 Servlet 程序的配置信息类。
  • Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。
  • Servlet 程序默认是第一次访问的时候才创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象。

作用:

  • 可以获取 Servlet 程序的别名 servlet-name 的值
  • 获取初始化参数 init-param
  • 获取 ServletContext 对象

如下:

在这里插入图片描述
ps:
可能大家会有如下疑问,为什么如下截图的两个方法都可以取得ServletContext类的对象
在这里插入图片描述
这是因为getServletContext()方法内部也是调用了config.getServletContext(),我们可以点进getServletContext()方法体,如下:
在这里插入图片描述

web.xml内容如下:
在这里插入图片描述
输出结果:
在这里插入图片描述

二.ServletContext接口的作用

知识点:

  • ServletContext它表示 Servlet 上下文对象
  • 一个 web 工程,只有一个 ServletContext 对象实例。
  • ServletContext 对象是一个域对象。(域对象,是可以像 Map 一样存取数据的对象,叫域对象。 这里的域指的是存取数据的操作范围,整个 web 工程。)
  • ServletContext接口的实现类 是在 web 工程部署启动的时候由Tomcat创建。在 web 工程停止的时候就销毁。

作用:

  • 获取 web.xml 中配置的上下文参数 context-param
  • 获取当前的工程路径,格式: /工程路径
  • 获取工程部署后在服务器硬盘上的绝对路径
  • 像 Map 一样存取数据
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    ServletContext servletContext = getServletContext();

    //获取 web.xml 中配置的上下文参数 context-param
    System.out.println(servletContext.getInitParameter("contextName01"));
    //获取当前的工程路径,格式: /工程路径
    System.out.println(servletContext.getContextPath());
    //获取工程部署后在服务器硬盘上的绝对路径
    System.out.println(servletContext.getRealPath("/"));

    //像 Map 一样存取数据
    servletContext.setAttribute("key1","value1");
    System.out.println(servletContext.getAttribute("key1"));
}

web.xml部分内容:
在这里插入图片描述

目录
相关文章
|
6月前
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
|
1月前
|
Java 应用服务中间件 Spring
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
26 0
|
存储 应用服务中间件 API
JavaWeb 速通Servlet(ServletConfig和ServletContext)
JavaWeb——ServletConfig 和 ServletContext 内容分享。
64 1
|
前端开发 Java Spring
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
357 0
|
存储 安全 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
|
前端开发 JavaScript 小程序
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
57 0
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
74 1
|
Java 应用服务中间件 Apache
Servlet概述及接口
Servlet概述及接口
110 0
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
|
3月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
34 3