初识ServletContext(域对象),ServletContext的配置方式以及常用方法

ServletContext介绍

  • ServletContext 是应用上下文对象。每一个应用中只有一个 ServletContext 对象。

  • 作用:可以获得应用的全局初始化参数和达到 Servlet 之间的数据共享。

  • 生命周期:应用一加载则创建,应用被停止则销毁。

    • 出生——活着——死亡
    • 出生: 应用一加载,该对象就被创建出来了。一个应用只有一个实例对象。(Servlet和ServletContext都是单例的)
    • 活着:只要应用一直提供服务,该对象就一直存在。
    • 死亡:应用被卸载(或者服务器挂了),该对象消亡。

域对象概念

  • 域对象指的是对象有作用域。也就是有作用范围
  • 域对象可以实现数据的共享
  • 不同作用范围的域对象,共享数据的能力也不一样
  • 在 Servlet 规范中,一共有 4 个域对象
    • ServletContext 就是其中的一个
    • 它也是 web 应用中最大的作用域,也叫 application 域
    • 它可以实现整个应用之间的数据共享

ServletContext的配置方式

  • ServletContext 并不属于某个 Servlet 的配置,而是针对于整个应用的配置,也叫全局的初始化参数

  • <web-app>标签中,通过<context-param>标签来配置。有两个子标签

  • <param-name>:代表全局初始化参数的 key

  • <param-value>:代表全局初始化参数的 value

  • 代码展示:

    package com.lichee.servlet;
    
    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 ServletContextDemo extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req,resp);
        }
    }
    
  • 配置Servlet,并且配置ServletContext

    <!--配置Servlet-->
    <servlet>
        <servlet-name>servletContextDemo</servlet-name>
        <servlet-class>com.lichee.servlet.ServletContextDemo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>servletContextDemo</servlet-name>
        <url-pattern>/servletContextDemo</url-pattern>
    </servlet-mapping>
    
    <!--配置ServletContext-->
    <context-param>
        <param-name>globalEncoding</param-name>
        <param-value>UTF-8</param-value>
    </context-param>
    <context-param>
        <param-name>globalDesc</param-name>
        <param-value>This is ServletContext</param-value>
    </context-param>
    
    • 注意ServletContext的配置是在wep-app节点下,与servlet配置同级别

ServletContext的常用方法

  • 常用方法

    返回值方法名说明
    StringgetInitParameter(String name)根据名称获取全局配置的参数
    StringgetContextPath()获取当前应用的虚拟访问目录
    StringgetRealPath(string path)根据虚拟目录获取应用部署的磁盘绝对路径
    voidsetAttribute(String name,Object value)向应用域对象中存储数据
    ObjectgetAttribute(String name)通过名称获取应用域对象中的数据
    voidremoveAttribute(String name)通过名称移除应用域对象中的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值