ServletContext

什么是ServletContext?

ServletContext是一个接口,他表示Servlet的上下文。

一个web工程只能有一个ServletContext对象实例。

ServletContext是一个域对象。

ServletContext是在web工程启动时创建,在工程结束时销毁。

 

什么是域对象呢?

域对象和Map对象一样,是可以存取数据的对象,这里的域指的是存取数据的操作范围,整个web工程。

 我们学习了ServletConfig的基础知识之后,那么我们就来学习ServletConfig的四个作用吧

第一个作用是获取web.xml配置的上下文参数context-param

第二个作用是获取当前工程路径,格式:/工程路径

第三个作用是获取工程部署后再服务器硬盘上的绝对路径

第四个作用是像Map一样存取数据

 

 

第一个作用的实现:首先我们需要在web.xml中写入他的上下文参数<context-param>,如下图所示:

 

 接下来我们在方法中获取即可:

 

 然后我们在运行中可以看到上下文参数username的值:

 

 第二个作用和第三个作用的实现:可以获取工程路径和工程文件部署在服务器硬盘上的路径:

 

 

 

 结果如上,工程文件路径也就是他运行在tomcat中的路径。

 

第四个作用的是实现:

首先我们需要创建一个Context的对象

 

 setAttribute是设置值,getAttribute是获取值,removeAttribute是删除值

在这里我们没有使用ServletConfig里面的SetvletContext,而是直接创建ServletContext的对象,这里是可以的。结果如下:

我们可以看到刚开始我们没有赋值的时候,他的值是null:

 

 然后我这个并不是在上面那个赋值的程序里写的,而是在额外的类中创建的,所以我们可以看出这个ServletContext是整个web工程都可以使用的。接下我们给他赋值:

 

 这时他就有值了,现在我们重新看下其他的:

也就是刚开始看到那个:

 

 这时就有值了,是不是很神奇。

 

posted @   漫步火星  阅读(41)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示