JavaWeb之【ServletContext接口详解】

一、ServletContext是什么

(1)接口名,是Servlet规范中的一员

(2)ServletContext还有另一个名字:应用域。

(3)如果所有的用户共享一份数据,并且这个数据很少的被修改,并且数据量少,可以放到ServletContext这个应用域中,可以提升效率。

二、ServletContext是什么实现的

(1)Tomcat(WEB服务器)实现了ServletContext接口

三、ServletContext对象的创建

(1)ServletContext对象是在WEB服务器启动的时候创建的。

(2)对于一个webapp来说,ServletContext对象只有一个。

(3)ServletContext对象在服务器关闭的时候销毁。

四、ServletContext的理解

1、Servlet对象的环境对象。(Servlet对象的上下文对象)

2、ServletContext对象其实对应的就是整个web.xml文件

3、Tomcat是一个容器,一个容器中中可以放多个webapp,一个webapp对应一个ServletContext对象。

五、ServletContext接口中常用的方法

1、通过初始化参数的name获取value

public String getInitParameter(String name)

2、获取所有的初始化参数的name

public Enumeration<String> getInitParameterNames()

注意:以上两个

3、获取项目的根路径【重要】

public String getContextPath()

注:(1)在源码中,不要将项目的根路径写死,因为最终项目部署时,名字可能会变

(1)动态地获取项目的根路径

4、获取文件的绝对路径(真实路径)

public String getRealPath(String path)

注:path是从web目录下开始找,加"/"是,不加"/"也是

5、记录日志

public void log(String message)和public void log(String message, Throwable t)

注:这个日志文件自动记录到CATALINA_HOME/logs目录下

6、向ServletContext应用域中存数据

public void setAttribute(String name, Object value);

7、向ServletContext应用域中取数据

public void getAttribute(String name);

8、从ServletContext应用域中删数据

public void removeAttribute(String name):

六、注意

1、以后编写Servlet类,实际上并不会继承GenericServlet类,因为JavaWeb是B/S结构的系统。这是基于HTTP超文本传输协议的,在Servlet规范中,提供了一个类叫HttpServlet,这是专门为HTTP协议准备的一个Servlet类,我们编写的Servlet类要继承HttpServlet。(HttpServlet是HTTP协议专用的)使用HttpServlet处理HTTP协议更便捷。

2、HttpServlet继承结构

jakarta.servlet.Servlet(接口)【爷爷】

jakarta.servlet.GenericServlet implements Servlet(抽象类)【儿子】

jakarta.servlet.HttpServlet extends GenericServlet(抽象类)【孙子】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值