Loading

ServletContext

1 什么是ServletContext

1. ServletContext是一个接口,表示Servlet上下文对象
2. 一个web工程,只有一个ServletContext对象实例
3. ServletContext对象是一个域对象
4. ServletContext是在web工程部署启动的时候创建,在web工程停止的时候销毁

1.1 什么是域对象

域对象,是可以像Map一样存取数据的对象,ServletContext的域对象是整个web工程

操作 存数据 取数据 删除
Map put() get() remove()
域对象 setAttribute() getAttribute() removeAttribute()

2 ServletContext

  • 作用

    1. 获取web.xml中配置的上下文参数context-param
    2. 获取当前的工程路径,格式:/工程路径
    3. 获取工程部署后在服务器硬盘上的绝对路径
    4. 像Map一样存取数据
    
  • 编码

    xml:

    <context-param>
      <!--上下文参数,属于整个web工程-->
      <param-name>username</param-name>
      <!--参数值-->
      <param-value>context</param-value>  
    </context-param>
    <context-param>
      <param-name>password</param-name>
      <param-value>1111</param-value>
    </context-param>
    

    Servlet:

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1、获取上下文参数
        System.out.println(getServletContext().getInitParameter("username"));
        System.out.println(getServletContext().getInitParameter("password"));
        //2、获取当前的工程路径
        System.out.println(getServletContext().getContextPath());
        //3、获取工程部署后在服务器硬盘上的绝对路径
        System.out.println("工程部署路径:"+getServletContext().getRealPath("/"));
        //工程下servlet目录下的MyServlet_04文件路径
        System.out.println(getServletContext().getRealPath("/servlet/MyServlet_04"));
        //4、像Map一样存取数据
        getServletContext().setAttribute("ServletContext","你好ServletContext!");
        System.out.println(getServletContext().getAttribute("ServletContext"));
    }
    
posted @ 2022-06-28 22:50  苏无及  阅读(36)  评论(0编辑  收藏  举报