域对象ServletContext

ServletContext简介

  1. WEB容器在启动时会为每个Web应用程序创建一个对应的ServletContext,作用于该整个Web应用,并且被所有客户端共享。
  2. 因为一个Web应用中的所有Servlet共享同一个ServletContext对象,所以Servlet对象之间可以通过ServletContext对象来实现互相通讯。

使用ServletContext域对象

  1. 生命周期:服务器创建时开始,到服务器关闭时结束
  2. 获得ServletContext对象:
//1.直接获取
ServletContext servletContext = this.getServletContext();
//2.先获取config对象
ServletContext servletContext = this.getServletConfig().getServletContext(); 
  1. 常用方法

    • 添加属性: setAttribute(String name,Object obj);
    • 活得属性:getAttribute(String name),返回Object
    • 删除属性:removeAttribute(String name)

一个简单的访问页面次数计数器案例:
创建Servlet1和Servlet2,Servlet1用于在ServletContext中创建属性,Servlet2用于从ServletContext读取属性,先访问Servlet1再访问Servlet2。
Servlet1中:

@Override
	public void init() throws ServletException {
		//初始化时创建一个计数器,
		int count = 0;
		//将计数器存入域对象中
		this.getServletContext().setAttribute("count", count);
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取计数器
		Integer count = (Integer)this.getServletContext().getAttribute("count");
		//访问一次计数器加一
		count++;
		response.getWriter().write("servlet1: " + count);
		//更新计数器
		this.getServletContext().setAttribute("count", count);
	}

访问Servlet1:
在这里插入图片描述
Servlet2中:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取计数器
		Integer count = (Integer)this.getServletContext().getAttribute("count");
		response.getWriter().write("servlet2:" + count);
	}

访问Servlet2:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值