【Web】ServletContext与ServletConfig

在Servlet相关的对象中还有一个ServletContext对象,很多时候我们分不清楚一些长得像的东东,是因为我们不了解它们的来历.解除疑惑,我们先来看看这个对象是什么时候产生的.

先来看个简单的图:

容器启动一个Web应用时为之创建ServletContext对象,每个Web应用都有唯一的ServletContext对象,它相当于Servlet们与容器通信的接口,管理访问容器的各种资源.如,在Web应用范围内共享数据,访问当前Web应用的资源,访问容器中的其它应用,访问服务器端的文件系统资源等.

而ServletConfig呢,也用一张简单的图来表示下:

容器启动Web应用也就是创建完ServletContext后,初始化所有的Filter,对需要启动时就初始化的Servlet进行初始化.对当前不要求初始化的Servlet在请求时初始化.在初始化一个Servlet对象时,创建一个ServletConfig对象,容器调用Servlet的初始化方法时会把包含这个Servlet的初始化参数信息的ServletConfig对象当做参数传进去.

可见,ServletConfig和ServletContext根本是在不同的时间,因为不同的情况才产生的.下面这张图更清楚地反映了这一先后顺序.

而且,我们还可以看出这里有一个Web应用,一个ServletContext,却有不止一个Servlet和ServletConfig.这说明了什么呢?

ServletContext能够在Web应用范围内活动,Web应用范围是什么意思呢?第一,表示由Web应用的生命周期构成的时间段.第二,表示在Web应用的生命周期内所有Web组件的集合.

ServletConfig可以在特定Servlet范围内活动,这么说,从该Servlet实例化ServletConfig就跟着它,其它Servlet访问不到这个ServletConfig.

想想我们之前在web.xml中的配置,有<context-param> 和<servlet>两个元素.如果一个参数要在整个Web应用中用呢,就写在<context-param> 节点下,如果只在一个Servlet中用呢,就写在<servlet>节点中.回忆下.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:config/applicationContext-common.xml</param-value>
  </context-param>
 <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-mvc.xml,classpath:config/applicationContext-common.xml</param-value>
    </init-param>
 </servlet>
时间: 2024-08-19 14:16:08

【Web】ServletContext与ServletConfig的相关文章

学习笔记--【转】Parameter与Attribute的区别&amp;servletContext与ServletConfig区别

原文链接http://blog.csdn.net/saygoodbyetoyou/article/details/9006001 Parameter与Attribute的区别 request.getParameter取得Web客户端到web服务端的http请求数据(get/post),只能是string类型的,而且HttpServletRequest没有对应的setParameter()方法. 如利用href(url)和form请求服务器时,表单数据通过parameter传递到服务器,且只能为字

ServletContext和ServletConfig

一.ServletConfig对象 1 .作用 ServletConfig对象: 主要是用于加载servlet的初始化参数. 在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象): 2.ServletConfig对象的创建和获取 创建时机: 在创建完servlet对象之后,在调用init方法之前创建.  得到对象: 直接从有参数的init方法中得到!!! ServletConfig config=this.getServletCo

Servlet基础知识,ServletContext,ServletConfig对象详解

Servlet的执行过程: 通过一个简单的Servlet程序开发,来说明Servlet程序的开发步骤和执行流程 开发Servlet的步骤: 1.1 步骤: 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行 3.1 servlet程序的class码拷贝到WEB-INF/classes目录 3.2 在web.xml文件中进行配置 Web.xml的配置一个Servlet的写法 <!-- 配置一个servlet --

ServletContext与ServletConfig

ServletContext -运行在JVM.上的每一个web应用程序都有一 个与之对应的Servlet 上下文(Servlet运行环境)Servlet API提供ServletContext接口用来表示Servlet上下文 ServletCo-ntext对象可以被web应用程序中的所有servlet访问 ServletContext对象是web服务器中的一个已知路径的根 原理: ServletContext对象由服务器进行创建,一个项目只有一个对象. 不管在项目的任意位置进行获取得到的都是同一

[Java][Web]ServletContext 方法的应用

由于一个 Web 应用中的所有 Servlet 共享同一个 ServletContext 对象,所以多个 Servlet 通过 ServletContext 对象实现数据共享. ServletContext 对象通常也被称之为 context 域对象.(还有 request session page) String data = "aaaa123"; this.getServletContext().setAttribute("data", data); Strin

servlet - seesion、servletcontext、servletconfig对象

servlet对象: 原文地址:https://www.cnblogs.com/pengranxindong/p/10070739.html

ServletConfig和ServletContext

一.ServletConfig 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. ServletConfig可以读取web中<init-param>中定义的参数值: ServletConfig config = null; String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数 二.ServletConte

JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用

[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140877.html 联系方式:[email protected] [正文] 一.ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多) String getServletName()  -- 获取当前Servlet在web.xml中配置的名字 String getInitParameter(String name) -- 获取当前S

JavaWeb:ServletConfig()和ServletContext()

ServletConfig()和ServletContext() 1.ServletConfig() ServletConfig是一个接口,它由服务器提供商来实现. ServletConfig封装了Servlet的配置信息,并且可以获取ServletContext对象. Servlet容器在初始化servlet的时候会初始化一个servletConfig对象,这个对象在任何可访问的客户端都是有效的,但是,需注意的是,该对象只能在本servlet中应用,不能在其他servlet中访问. 主要的方法