【Java寒假打卡】JavaWeb-ServletContext

概述

  • ServletContext是应用上下文对象(应用域对象)。每一个应用中只有一个ServletContext对象
  • 作用:可以配置和获得应用的全局初始化参数,可以实现Servlet之间的数据共享
  • 生命周期:应用一加载则创建,应用被停止则销毁。

在这里插入图片描述

域对象

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

ServletContext的配置方式

在这里插入图片描述

注意:配置ServletContext不能再servlet标签下进行配置,必须在web-app标签下面进行配置 因为他是多个servlet资源的共享的配置,不是某一个独有的配置

<!--配置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的常用方法

在这里插入图片描述

 @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取ServletContext对象
        ServletContext context = getServletContext();

        // 根据key获取value
        String globalDesc = context.getInitParameter("globalDesc");
        System.out.println(globalDesc);

        // 获取应用的虚拟目录
        String contextPath = context.getContextPath();
        System.out.println(contextPath);

        // 根据虚拟目录获取绝对路径 getRealPath
        String realPath = context.getRealPath("/");
        System.out.println(realPath);
    }

ServletContext共享数据的方法

不同servlet共享数据的方法

在这里插入图片描述

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取ServletContext对象
        ServletContext context = getServletContext();

        // 根据key获取value
        String globalDesc = context.getInitParameter("globalDesc");
        System.out.println(globalDesc);

        // 获取应用的虚拟目录
        String contextPath = context.getContextPath();
        System.out.println(contextPath);

        // 根据虚拟目录获取绝对路径 getRealPath
        String realPath = context.getRealPath("/");
        System.out.println(realPath);

        // 设置共享数据 使得不同的servlet都可以访问到该共享数据
        context.setAttribute("username","xxx");

        // 根据key获取共享数据
        Object uesrname = context.getAttribute("uesrname");
        System.out.println(uesrname);

        context.removeAttribute("username");// 移除共享数据  根据Key
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少写代码少看论文多多睡觉

求打赏,求关注,求点赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值