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工程都可以使用的。接下我们给他赋值:
这时他就有值了,现在我们重新看下其他的:
也就是刚开始看到那个:
这时就有值了,是不是很神奇。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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)