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部分内容:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/MrYushiwen/article/details/113605994