`

ServletConfig和ServletContext的区别及应用

阅读更多

一、区别

 

1、定义

 

    1)ServletConfig:Servlet的配置对象,容器在初始化Servlet时通过它传递信息给Servlet。

    2)ServletContext:上下文对象,提供了一系列方法供Servlet与Web容器交互。

 

2、创建时机

 

    1)ServletConfig:在容器初始化Servlet的时候,并为其提供上下文初始化参数的名/值对的引用。

    2)ServletContext:容器启动的时候,并为其提供Servlet初始化参数的名/值对的引用。

 

3、作用范围(可见性)

 

    1)ServletConfig:每个JVM中每个Web应用一个ServletContext

    2)ServletContext:每个JVM中每个Web应用的每个Servlet一个ServletConfig。

   

    所以ServletConfig=Servlet初始化参数,ServletContext=上下文初始化参数。

 

4、DD中的初始化参数配置

 

    1)ServletConfig配置如下(注意是在<servlet>标签中):

<servlet>
    <init-param>
    	<param-name>email</param-name>
  	<param-value>www.linwei.com</param-value>
    </init-param>
    <servlet-name>JarDownload</servlet-name>
    <servlet-class>com.linwei.servlet.JarDownload</servlet-class>
  </servlet>

   

    2)ServletContext配置如下(注意是直接在<web-app>标签下):

<context-param>
    <param-name>email</param-name>
    <param-value>www.linwei.com</param-value>
</context-param>

 

5、Servlet中的访问方法

 

    1)ServletConfig:getServletConfig().getInitParameter(“name”)。

    2)ServletContext:getServletContext().getInitParameter(“name”)。

 

二、个性

 

1、关于ServletConfig

   

    1)容器初始化Servlet时,会从DD中读出Servlet的初始化参数并为每个Servlet创建一个唯一的ServletConfig对象(保存有初始化参数的引用),然后把ServletConfig对象当做参数传递给Servletinit()。

   

     2)由上述1)推出:

        a)Servlet初始化前(比如构造函数中)不能使用Servlet的初始化参数(通过ServletConfig)。

        b)Servlet的初始化参数只会(也只能)读一次,就是在容器初始化Servlet的时候。

 

    3)ServletConfig中保存有ServletContext的引用(所以可以通过ServletConfig获得ServletContext)。

 

    4)一个“Servlet”要初始化完成之后,才成为真正的Servlet。(因为初始化时Servlet才能获得ServletConfig以及ServletContext的引用(ServletConfig中)),而不是构造函数完成后。也就是说,在“Servlet”获得ServletContext前,它还只是个普通的Java对象,而不是一个真正的Servlet

 

     5)在Servlet中可以通过两种方式获取到ServletConfig

        a)通过重载的init初始化方法参数中直接获取。

        b)直接调用getServletConfig ()方法(继承自GenericServlet)。

 

2、关于ServletContext

 

    1)Servlet中可以通过两种方式获取到ServletContext

        a)通过ServletConfig。(调用getServletContext()方法)

        b)直接调用getServletContext ()方法(继承自GenericServlet)。

    2)得到初始化参数和获取/设置属性

        a)getInitParameter(String)

        b)getInitParameterNames()

    3)操作上下文属性

        a)getAttribute(String)

        b)getAttributeNames()

        c)setAttribute(String,Object)

        d)removeAttribute(String)

    4)得到有关服务器(及容器)信息

        a)getMajorVersion()

        b)getServerInfo()

    5)访问资源文件

        a)getResource(String parh)方法:其中path必须是/开头,代表当前web应用程序的根目录。返回一个代表某个资源的URL对象。

    6)实现Servlet的转发

        a)context.getRequestDispatcher("/index.jsp").forword(request, response);  

    7)记录服务器(如tomcat)日志文件。

        a)log(String msg)

  

 三、典型应用(待补充。。。)

分享到:
评论

相关推荐

    ServletContext与ServletConfig关系

    在 Servlet 编程中,ServletConfig 和 ServletContext 两个对象经常被混淆,然而它们有着截然不同的作用域和用途。 首先, lets 看看 ServletConfig 对象。ServletConfig 对象是 Servlet 的配置对象,用于存储 ...

    ServletConfig与ServletContext.docx

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

    有关ServletConfig与ServletContext的访问

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

    ServletContext与ServletConfig的深度分析

    在Java Web开发中,`ServletContext`和`ServletConfig`是非常重要的两个接口,它们分别代表了应用级别的共享环境和单个Servlet的配置信息。理解这两个接口的工作原理对于构建高效、可维护的应用程序至关重要。 ####...

    ServletConfig

    ServletConfig主要用于传递特定Servlet的初始化参数,而ServletContext则代表了整个Web应用程序的上下文,它可以共享数据给所有Servlet或Filter,并且提供了获取Web应用级的初始化参数和资源的功能。 ### 源码分析 ...

    javaWEB总结(3):ServletConfig对象

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

    (源码)基于Java Servlet的会话管理与事件监听系统.zip

    项目涵盖了Servlet的生命周期管理、ServletConfig和ServletContext的使用、事件监听器的实现、过滤器的应用以及异步处理的实现。 ## 项目的主要特性和功能 1. Servlet生命周期管理 实现了Servlet的初始化、服务和...

    ServletContext与application异同.docx

    `ServletContext`是Servlet API中的一个接口,它代表了一个Web应用程序的全局共享区域,所有在同一个Web应用中的Servlet都可以通过`ServletContext`来共享数据和资源。而`Application`通常指的是`ServletContext`的...

    35、servlet--servletContext

    `servletContext`是Servlet API中...总结,`servletContext`是Java Web开发中的一个重要工具,它为Web应用程序提供了一种全局的通信和资源共享机制。理解和熟练使用`servletContext`对于提升Java Web开发能力至关重要。

    Web实验报告一.docx

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

    java单元测试 spring mock的使用

    在Java Web应用中,单元测试是非常重要的一步,它可以帮助开发者检测代码的正确性和可靠性。传统的单元测试方法需要部署到容器中,然而,这种方法存在一些缺陷,例如需要长时间的部署过程、对服务器资源的占用等。...

    ServletConfig的描述

    ServletConfig是Java Servlet API中的一个重要接口,它是Servlet容器(如Tomcat、Jetty等)向Servlet传递初始化参数和上下文信息的主要方式。在Servlet的生命周期中,ServletConfig对象会在Servlet实例化时由容器...

    全面实用的Java EE面试题

    ServletConfig和ServletContext是两种不同的对象: * ServletConfig:用于存储Servlet的初始化参数。 * ServletContext:用于存储ServletContext对象,提供了对应用程序的访问。 Filter和Listener Filter和...

    quartz servletcontext配置资料

    Quartz 是一个开源的工作调度框架,它允许开发者创建、安排和执行任务,广泛应用于Java Web应用中。在Servlet环境下,特别是在使用Spring MVC等框架时,Quartz与ServletContext的结合配置显得尤为重要,因为这能让...

    servletcontext详解

    ### ServletContext详解 #### 一、概述 `ServletContext`接口是...通过对`ServletContext`的学习和理解,开发者能够更好地管理和操作Web应用中的共享数据、配置信息和其他资源,从而提高应用程序的效率和可维护性。

    servlect常用对象的总结.pdf

    在ServletConfig 对象和 ServletContext 对象都是 Servlet 生命周期中的一部分,它们可以帮助开发者快速构建Web应用程序。通过这两个对象,我们可以获取到一些有用的信息,并且可以实现一些复杂的功能。

    实验3 Servlet基础.docx

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

    Java_Web总结

    ServletConfig 和 ServletContext 是指 Servlet 应用程序的配置和上下文信息。ServletConfig 提供了 Servlet 的配置信息,而 ServletContext 提供了 Servlet 的上下文信息。 3. HTTP 请求 HTTP 请求是指客户端向...

Global site tag (gtag.js) - Google Analytics