ServletConfig、ServletContext概述、配置及ServletContext的三个作用

简介: ServletConfig、ServletContext概述、配置及ServletContext的三个作用

一、ServletConfig概述


● ServletConfig是一个接口


● 当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet,ServletConfig的生命周期与Servlet一样


● ServletConfig封装的配置信息是键值对的形式


常用方法


方法 说明
String getInitParameter(String
name)
根据参数名返回对应的参数值
Enumeration
getInitParameterNames()
返回一个Enumeration对象,其中包含了所有的参数名
ServletContext getServletContext() 返回代表当前web应用的ServletContext对象
String getServletName() 返回Servlet的名称


二、ServletConfig配置


● 配置ServletConfig也是在web.xml文件中的 <servlet></servlet> 标签下进行的,需要使用<init-param></init-param> 标签将参数名和参数值包住,表示一个键值对,其中使用 <param-name></para-name> 表示参数名, <param-value></param-value> 表示参数值


● 一个 <init-param></init-param> 只能表示一个键值对


范例:


<servlet-class>com.liaoxiangqian.ServletConfigDemo</servlet-class>
    <!--配置encoding参数,使用一个init-param标签-->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!--配置desc参数,使用一个init-param标签-->
    <init-param>
        <param-name>desc</param-name>
        <param-value>this is ServletConfigDemo</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>ServletConfigDemo</servlet-name>
    <url-pattern>/ServletConfigDemo</url-pattern>
</servlet-mapping>


三、ServletContext概述


● Servlet容器启动时会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用,ServletContext对象封装了当前Web应用的所有信息


● ServletContext可以配置和获得应用的全局初始化参数,可以实现多个Servlet之间的数据共享


● 生命周期:应用加载则创建,应用停止则销毁


四、ServletContext配置


● 在web.xml文件的 <web-app> 标签中,通过 <context-param> 标签来配置,其中他有两个子标签


● 子标签 <param-name> 表示全局初始化参数的key


● 子标签 <param-value> 表示全局初始化参数的value


范例:


<context-param>
    <param-name>globalEncoding</param-name>
    <param-value>UTF-8</param-value>
</context-param>
<context-param>
    <param-name>globaleDesc</param-name>
    <param-value>This is SevletContext</param-value>
</context-param>


五、ServletContext的三个作用


获取Web应用程序的初始化参数:


1、Enumeration getInitParameterName() 方法用于返回包含所有参数名的Enumeration对象


2、String getInitParameter(String name) 方法用于根据参数名获取参数值


实现多个Servlet之间的数据共享:


方法名 说明
Enumeration
getAttributeNames()
返回包含所有域属性名的Enumeration对象
Object getAttribute(String
name)
根据域属性名返回域属性值
void removeAttribute(String
name)
根据域属性名从ServletContext中删除对应的域属性
void setAttribute(String
name,Object obj)
设置ServletContext的域属性,其中name是域属性名,obj是域属性值


注意:域属性指的是可以共享的数据,即可以被多个Servlet访问到


读取Web应用下的资源文件:


实际开发中有时会需要读取Web应用中的一些资源文件,为此ServletContext接口定义了一些

读取Web资源的方法,这些方法由依靠Servlet容器实现,可以根据资源文件相对Web应用的

路径,返回关联资源文件的IO流、资源文件的绝对路径等


相关方法:


方法名 说明
Set getResourcePaths(String
path)
返回一个Set集合,集合包含path指定路径下的子目录名称文件名称但是不包含子目录下的文件名称,path以斜杠/开头表示Web应用的根目录
String getRealPath(String
path)
返回资源文件在服务器文件系统上的真实路径,参数path表示资源文件相对Web应用的路径,以斜杠/开头表示Web应用的根目录,如果不能将虚拟路径转为真实路径则返回null
URL getResource(String
path)
返回映射到某个资源文件的URL对象,参数必须以斜杠/开头表示Web应用的根目录
InputStream
getResourceAsStream(String
path)
返回映射到某个资源文件的InputStream输入流对象,参数path的传递规则与getResource()一致


总结:这四个方法中的path其实就是相对于Web应用的路径,以斜杆/开头

目录
相关文章
ServletContext和ServletConfig使用说明
ServletContext和ServletConfig使用说明
50 0
|
存储 对象存储
07JavaWeb基础 - ServletContext对象
07JavaWeb基础 - ServletContext对象
48 0
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
80 1
|
XML 关系型数据库 MySQL
ServletConfig和ServletContext 的介绍和代码实现
ServletConfig和ServletContext 的介绍和代码实现
86 0
Servlet学习(六):ServletContext对象的作用
Servlet学习(六):ServletContext对象的作用
118 0
Servlet学习(六):ServletContext对象的作用
Servlet学习(五):ServletConfig类的作用
ServletConfig的作用: 1、可以获取Servlet程序的别名servlet-name的值 2、获取初始化参数init-param 3、获取ServletContext对象
182 0
Servlet学习(五):ServletConfig类的作用
Servlet——ServletContext对象功能
Servlet——ServletContext对象功能
105 0
|
XML Java 应用服务中间件
谈谈 ServletConfig 和 ServletContext
我们都知道Servlet是框架的灵魂,学习web框架最底层离不开Servlet的支持,那么Servlet 是什么呢?如何创建一个Servlet 不是本文的重点,相关文章可以参考
99 0
下一篇
DataWorks