一文带你了解ServletContext

简介: ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放架构图示:我们可以把ServletContext当成一个公用的空间,可以被所有的客户访问,WEB容器在启动时,它会为每个Web应用程序都创建一个对应的ServletContext,它代表当前Web应用,并且它被所有客户端共享,公共聊天室就会用到它同时,多个Servlet也可以通过ServletContext来进行通信操作当web应用关闭、Tomcat关闭或者Web应用reload的时候,ServletContext对象会被销毁🙌


1.ServletContext是啥


ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放

架构图示:



我们可以把ServletContext当成一个公用的空间,可以被所有的客户访问,WEB容器在启动时,它会为每个Web应用程序都创建一个对应的ServletContext,它代表当前Web应用,并且它被所有客户端共享,公共聊天室就会用到它


同时,多个Servlet也可以通过ServletContext来进行通信操作


当web应用关闭、Tomcat关闭或者Web应用reload的时候,ServletContext对象会被销毁🙌


2.最简单的DEMO


首先我们编写一个Servlet用于向公共空间设置键值对信息:


import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        String say = "Hello!";
        servletContext.setAttribute("say", say);
    }
}


再编写一个Servlet用于读取公共空间中的信息:


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class GetSomething extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        String say = (String) servletContext.getAttribute("say");
        response.getWriter().println(say);
    }
}


这样就通过ServletContext实现了一个最基本的Servlet通信了!


3.ServletContext 应用实例之获取初始化参数


假设我们的web.xml中存在下面的参数内容:


<context-param>
    <param-name>url</param-name>
    <param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>


可以通过Servlet - getInitParameter获取初始化配置信息:


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    String url = servletContext.getInitParameter("url");
    response.getWriter().println(url);
}



目录
相关文章
|
存储 应用服务中间件 数据库
【JavaWeb】知识总结Ⅸ(ServletConfig, ServletContext)
ServletConfig 类是为 Servlet 程序的配置信息的类 2. Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建 3. Servlet 程序默认是第 1 次访问的时候创建, ServletConfig 在 Servlet 程序创建时,就创 建一个对应的 ServletConfig ServletConfig 类能干什么 1. 获取 Servlet 程序的 servlet-name 的值 2. 获取初始化参数 init-param 3. 获取 ServletContext 对象
|
5天前
ServletContext
ServletContext Servlet三大域对象: l ServletContext:范围最大,应用范围! l HttpSession :会话范围! l HttpServletRequest:请求范围!
|
存储 对象存储
07JavaWeb基础 - ServletContext对象
07JavaWeb基础 - ServletContext对象
47 0
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
74 1
|
应用服务中间件 容器
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
164 0
Servlet——ServletContext对象功能
Servlet——ServletContext对象功能
99 0
|
XML Java 应用服务中间件
谈谈 ServletConfig 和 ServletContext
我们都知道Servlet是框架的灵魂,学习web框架最底层离不开Servlet的支持,那么Servlet 是什么呢?如何创建一个Servlet 不是本文的重点,相关文章可以参考
96 0
ServletContext对象
ServletContext对象原理介绍
ServletContext对象