`
Yinny
  • 浏览: 296348 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

理解ServletContext与ServletConfig

阅读更多
javax.servlet
   Interface ServletContext

  public interface ServletContext

  ServletContext定义了一些能够与Servlet控制器通信的方法。对于web容器来说,ServletContext接口定义了一个servlet环境对象,这个对象定义了一个在Servlet引擎上的Servlet的视图。通过使用这个对象,Servlet可以记录事件,得到资源并得到来自Servlet的引擎类。

  Servlet容器在启动时会加载web应用,并为每个web应用创建唯一的ServletContext对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据,它提供了读取和设置共享数据的方法,比如:

  getAttribute方法(定义:Object getAttribute(String name))根据指定的name返回一个Servlet控制器的属性。

  getAttributeNames方法(定义:Enumeration getAttributeNames())返回Enumeration枚举类型的对象,这个Enumeration对象包含了在servlet context中所有可以访问到的属性。

  setAttribute方法(定义:void setAttribute(String name,Object object))在ServletContext中为属性name绑定一个值。

  removeAttribute方法(定义:void removeAttribute(String name))从servlet context中移除name指定的属性。

  例如:

  public void destroy() {
         getServletContext().removeAttribute(Constants.DATABASE_KEY);
  }

  ServletContext定义了25个方法,可以详细参考帮助文档来获得信息。ServletContext对象只在web应用被关闭的时候才被销毁,也就是说ServletContext对象生命周期是Application。不同的web应用,ServletContext各自独立存在。

  一个web应用由jsp,Servlet,javabean等web组件的****构成,每一个web应用,容器都会有一个ServletContext对象,而javax.servlet.ServletContext接口就提供了访问这个ServletContext对象的途径。你可以通过一个Servlet实例的getServletContext()方法得到该Servlet运行其中的这个ServletContext对象,从这个对象中你可以访问如下信息资源:

  1.初始化参数
  2.存储在背景中的对象
  3.与背景关联的资源
  4.日志


javax.servlet
   Interface ServletConfig

  public interface ServletConfig

  对于ServletConfig对象来说,他与ServletContext相比,就有了很大的局限性。当ServletConfig对象在Servlet中被实例化后,对任何客户端在任何时候访问有效。但是一个Servlet的ServletConfig对象不能被另一个Servlet访问,也就是说,在本Servlet声明后的ServletConfig只能在本Servlet内被访问,属于内部持久有效的变量。

  Servlet引擎代表的Servlet容器的对象和Servlet的配置参数信息一并封装到ServletConfig对象中,并在Servlet的初始化中将ServletConfig传给Servlet。

  Servlet容器,我们可以理解为一个应用程序,它的一些配置信息也将可以从ServletConfig得到。这里的Servlet创建并装载Servlet实例对象后,调用int(ServletConfig)传对象。这就决定了,这个ServletConfig与Servlet的生命周期与servlet有关。

  Servlet引擎,Servlet,ServletConfig对象之间关系:Servlet引擎,我们就当是一个框架,而Servlet是一个被调用的成份,但是同时,我们也应该知道,主体框架程序是根据配置文件来创建ServletConfig对象,这里才创建Servlet对象,并通过init()传ServletConfig。

  ServletConfig接口定义了4个方法:

  getServletName()方法(定义:public java.lang.String getServletName()),该方法返回一个servlet实例的名称,该名称由服务器管理员提供。

  getServletContext()方法概(定义:public ServletContext getServletContext() ),返回一个ServletContext对象的引用。一个web应用有一个servletContext,全局的对象。

  getInitParameter()方法(定义:public java.lang.String getInitParameter(java.lang.String name)),返回一个由参数String name决定的初始化变量的值,如果该变量不存在,返回null。

  getInitParameterNames()方法(定义:public java.util.Enumeration getInitParameterNames()),返回一个存储所有初始化变量的枚举函数。如果servlet没有初始化变量,返回一个空枚举函数。
分享到:
评论

相关推荐

    ServletContext与ServletConfig的深度分析

    ### ServletContext与ServletConfig的深度分析 #### 一、概述 在Java Web开发中,`ServletContext`和`ServletConfig`是非常重要的两个接口,它们分别代表了应用级别的共享环境和单个Servlet的配置信息。理解这两个...

    ServletConfig与ServletContext.docx

    ServletConfig和ServletContext是Java Servlet API中的两个重要接口,它们在Web应用程序中扮演着关键角色,主要负责管理和传递初始化参数以及实现应用级别的通信。 ServletConfig对象主要用于装载Servlet的初始化...

    ServletContext与application异同.docx

    2. **ServletConfig与ServletContext的关系** - 每个Servlet在被创建时,都会得到一个与之关联的`ServletConfig`对象,`ServletConfig`包含了Servlet特定的初始化参数。相比之下,`ServletContext`是全局的,服务于...

    有关ServletConfig与ServletContext的访问

    ServletConfig和ServletContext是Java Servlet API中的两个重要概念,它们在Web应用程序中扮演着配置和通信的角色。理解并熟练使用这两个接口对于开发高效、可维护的Web应用至关重要。 ServletConfig对象代表了一个...

    javaWEB总结(3):ServletConfig对象

    4. **ServletConfig与ServletContext的区别** - ServletConfig对象是特定于每个Servlet实例的,而ServletContext对象在整个Web应用中是共享的。 - ServletConfig主要存储Servlet的个性化配置信息,而...

    ServletConfig

    ### ServletConfig与ServletContext的区别 虽然ServletConfig和ServletContext都与Servlet容器相关,但它们的角色不同。ServletConfig主要用于传递特定Servlet的初始化参数,而ServletContext则代表了整个Web应用...

    35、servlet--servletContext

    `servletContext`是Servlet API中的一个关键概念,代表了整个Web应用程序的上下文。在这个上下文中,Servlet可以共享信息,如全局属性、监听器等...理解和熟练使用`servletContext`对于提升Java Web开发能力至关重要。

    ServletConfig的描述

    ServletConfig是Java Servlet API中的一个重要...在深入理解ServletConfig的同时,我们还需要了解Servlet的其他核心概念,如Servlet生命周期、Servlet上下文以及请求处理流程等,以全面掌握Java Web开发的核心知识。

    Tomact容器相关知识

    **ServletContext** 和 **ServletConfig** 是Java Servlet API中两个关键的接口,它们提供了与Servlet容器交互的能力。 - **ServletContext**:这是一个全局的上下文,代表了一个Web应用程序的共享环境。每个Web...

    servletcontext详解

    - **通过`ServletConfig`对象**:每个Servlet都会有一个`ServletConfig`对象,该对象可以用来获取`ServletContext`对象。例如:`getServletConfig().getServletContext();` - **通过`GenericServlet`类**:继承自`...

    浅析javax.servlet.Servlet,ServletContext接口

    在Java Web开发中,`javax.servlet`包下的`Servlet`和`ServletContext`接口扮演着至关重要的角色。这两个接口是Servlet API的核心部分,它们为Web应用程序提供了一种标准的方式来处理HTTP请求并管理全局数据。 首先...

    sevlet生命周期,request web.xml 及ServletContext总结

    在`init()`方法中,Servlet可以通过`ServletConfig`对象访问`web.xml`文件中的配置信息,获取初始化参数。 3. **服务**: 当请求到达时,Servlet容器调用Servlet实例的`service()`方法。这个方法会根据请求的HTTP...

    Web实验报告一.docx

    通过本次实验,学生能够深入理解Servlet的工作原理,掌握Servlet生命周期中的初始化、服务和销毁过程,以及ServletConfig和ServletContext的应用场景。同时,实验还涵盖了HTTP请求的处理,以及如何利用Servlet实现...

    java笔记jsp,servlet.docx

    4)ServletConfig与ServletContext `ServletConfig`接口提供Servlet的初始化信息,例如Servlet的名称、上下文路径等。当`init()`方法被调用时,会传入一个实现了`ServletConfig`的实例,通常是由Servlet容器(如...

    实验3 Servlet基础.docx

    在这个实验中,我们将深入理解并实践Servlet的基础知识,包括HttpServlet的doGet()和doPost()方法、ServletConfig对象的使用以及ServletContext接口的数据共享功能。 首先,我们来看HttpServlet的doGet()和doPost()...

    servlet-API.docs

    五、ServletConfig与ServletContext - ServletConfig:每个Servlet都有一个ServletConfig对象,它在Servlet初始化时由服务器传递,包含Servlet的特定配置信息。 - ServletContext:代表整个Web应用的上下文,提供了...

    实验4-Servlet容器模型.doc

    实验的主要目标包括理解和使用DD文件web.xml,掌握ServletConfig的用法,理解ServletContext的概念,以及如何利用RequestDispatcher进行请求转发。 首先,web.xml文件是Web应用程序的部署描述符,它是容器启动时...

    深入 Java Servlet 网络编程

    2.1 ServletConfig 和 ServletContext:ServletConfig 对象存储了Servlet的初始化参数,ServletContext 则代表整个Web应用的共享环境,可用于全局信息交换。 2.2 HttpServletRequest 和 HttpServletResponse:这两...

Global site tag (gtag.js) - Google Analytics