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工程都可以使用的。接下我们给他赋值:

这时他就有值了,现在我们重新看下其他的:
也就是刚开始看到那个:

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

浙公网安备 33010602011771号