Java的对象ServletContext

ServletContext(重要)
一个项目只有一个ServletContext对象!我们可以在N多个Servlet中来获取这个唯一的对象使用它可以给多个Servlet传递数据,这个对象在TomCat启动时就创建,在TomCat关闭时才关闭
1、ServletContext概述:
服务器会为每个应用创建一个ServletContext对象

  1. ServletContext对象的创建是在服务器启动时完成的
  2. ServletContext对象的销毁是在服务器关闭时完成的
    ServletContext对象的作用是在整个Web应用的动态资源之间共享数据!例如AServlet中向ServletContext对象中保存一个值,然后在BServlet中就可以获取这个值,这就是共享数据了

2、获取ServletContext
通过以下四个获取ServlertContext方法

  1. ServletConfig##getServletContext();
  2. GenericServlet##getServletContext();
  3. HttpSession##getServletContext();
  4. ServletContextEvent##getServletContext();
    在Serlvet中获取ServletContext对象:
    ⑴ 在void init(ServletConfig config)中:ServletContextcontext=config.getServletContext();
    ServletConfig类的getServletContext()方法可以用来获取ServletContext对象;在GenericServlet或HttpSrevlet中获取ServletContext对象;
    ⑵ GenericServlet类有getServletContext()方法,所以可以直接使用this.getServletContext()来获取;

3、域对象的功能
域对象就是用来在多个Servlet中传递数据,域对象必须要有存数据功能和取数据功能
ServletContext是JavaWeb四大域对象之一:
⑴ PageContext、ServletRequest、HttpSession、ServletContext
所有域对象都有存取数据的功能,因为域对象内部有一个Map,用来存储数据,下面是ServletContext对象用来操作数据的方法
⑵ void setAttribute(String name,Object value):用来存储一个对象,也可以称之为存储一个域属性,例如:servletContext.setAttribute(“xxx”,“xxx”),在ServletContext中保存一个域属性,域属性名称为xxx,域属性的值为xxx。注意,如果多次调用该方法,并且使用相同的name,那么会覆盖上一次的值,这一特性与Map相同
⑶ Object getAttribute(String name):用来获取ServletContext中的数据,当前在获取之前需要先去存储才行,例如:String value=(String)servletContext.getAttribute(“xxx”);获取名为xxx的域属性
⑷ void removeAttribute(String name):用来移除ServletContext中的域属性,如果参数name指定的域属性不存在,那么本方法什么都不做
⑸ Enumeration getAttributeNames():获取所有域属性的名称
4、获取应用初始化参数
⑴ Servlet也可以获取初始化参数,但它是局部的参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备。
⑵ 可以配置公共的初始化参数,为所有Servlet而用,这需要使用SerlvetContext才能使用。还可以使用ServletContext来获取在web.xml文件中配置的应用初始化参数。应用初始化参数与Servlet初始化参数不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值