`
panlw
  • 浏览: 54129 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ServletContext简述(转)

    博客分类:
  • Java
阅读更多
ServletContext简述(转)  [转帖 2007-12-27 23:25:45]    
SRV.3.1 Introduction to the ServletContext Interface
Servlet Context,从Servlet的角度来看,可以理解为它所属Web应用程序,ServletContext是一个接口,Servlet容器的提供商必须要实现这个接口。
ServletContext能做什么呢?它可以把事件记录到日志中,获得资源的URL,还可以利用ServletContext存放一些所有Servlet都能共享的数据。
ServletContext有一个路径,例如http://www.mycorp.com/catalog,这里的cataqlog就是ServletContext的路径,所有的对catalog的请求都会关联到这个ServletContext.
SRV.3.2 Scope of a ServletContext Interface

在Servlet容器中,每个ServletContext通常只有一个实例。当Web容器是分布式的部署在多台机器上时,那一个ServletContext在每个JVM上都有一个实例。
在Servlet容器中,但没有部署的Servlet也是允许的,这种Servlet属于一个缺省的ServletContext,这种缺省的ServletContext不能被分布到多个JVM上。
SRV.3.3 Initialization Parameters
在ServletContext接口中,有两个方法可以用来获得初始化参数:
" getInitParameter
" getInitParameterNames
SRV.3.4 Context Attributes
在ServletContext中,有4个方法可以用来设置和管理ServletContext的属性:
" setAttribute
" getAttribute
" getAttributeNames
" removeAttribute
SRV.3.4.1 Context Attributes in a Distributed Container
ServletContext中的属性只在本地的JVM中有效,不能被分布式环境中运行于其它JVM中的Servlet访问,如果需要在分布式环境中共享数据,可以把数据存放在Session,数据库或EJB中。
SRV.3.5 Resources
资源指的是在Web应用程序中的一些静态的内容,如静态HTML页面,图片等等。ServletContext提供了两个方法来访问这些资源:
''getResource
''getResourceAsStream
这两个方法都接受一个String型参数,它指定了一个以"/"开头的相对于这个ServletContext的资源路径。资源可以放在同一服务器上,或者不同服务器上,或者在一个Web应用程序的WAR包中。
需要注意的是,这两个方法不能用来获取动态内容,如果我们用这两个方法去取一个JSP页面,返回的将是JSP页面的源代码。
getResourcePaths(String path)方法可以用来获取一个资源列表。
SRV.3.6 Multiple Hosts and Servlet Contexts
Web服务器可能支持多个域名分享一个IP地址,这种配置叫做“虚拟主机”。在这种情况下,每个虚拟主机必须要有自己的ServletContext,而不能共享一个ServletContext。
SRV.3.7 Reloading Considerations
所有的Servlet和它们引用的类必须都处于一个类装载器范围内。
SRV.3.7.1 Temporary Working Directories
每 一个ServletContext都需要一个临时目录,并且通过 javax.servlet.context.tempdir属性指定。Servlet容器不需要管理这个临时路径的内容,但是要确保一个 ServletContext的临时目录对其他的ServletContext是不可见的v

SRV.3.1 Introduction to the ServletContext Interface
Servlet Context,从Servlet的角度来看,可以理解为它所属Web应用程序,ServletContext是一个接口,Servlet容器的提供商必须要实现这个接口。
ServletContext能做什么呢?它可以把事件记录到日志中,获得资源的URL,还可以利用ServletContext存放一些所有Servlet都能共享的数据。
ServletContext有一个路径,例如http://www.mycorp.com/catalog ,这里的cataqlog就是ServletContext的路径,所有的对catalog的请求都会关联到这个ServletContext.
SRV.3.2 Scope of a ServletContext Interface

在Servlet容器中,每个ServletContext通常只有一个实例。当Web容器是分布式的部署在多台机器上时,那一个ServletContext在每个JVM上都有一个实例。
在Servlet容器中,但没有部署的Servlet也是允许的,这种Servlet属于一个缺省的ServletContext,这种缺省的ServletContext不能被分布到多个JVM上。
SRV.3.3 Initialization Parameters
在ServletContext接口中,有两个方法可以用来获得初始化参数:
" getInitParameter
" getInitParameterNames
SRV.3.4 Context Attributes
在ServletContext中,有4个方法可以用来设置和管理ServletContext的属性:
" setAttribute
" getAttribute
" getAttributeNames
" removeAttribute

SRV.3.4.1 Context Attributes in a Distributed Container
ServletContext中的属性只在本地的JVM中有效,不能被分布式环境中运行于其它JVM中的Servlet访问,如果需要在分布式环境中共享数据,可以把数据存放在Session,数据库或EJB中。
SRV.3.5 Resources
资源指的是在Web应用程序中的一些静态的内容,如静态HTML页面,图片等等。ServletContext提供了两个方法来访问这些资源:
" getResource
" getResourceAsStream
这两个方法都接受一个String型参数,它指定了一个以"/"开头的相对于这个ServletContext的资源路径。资源可以放在同一服务器上,或者不同服务器上,或者在一个Web应用程序的WAR包中。
需要注意的是,这两个方法不能用来获取动态内容,如果我们用这两个方法去取一个JSP页面,返回的将是JSP页面的源代码。
getResourcePaths(String path)方法可以用来获取一个资源列表。

SRV.3.6 Multiple Hosts and Servlet Contexts
Web服务器可能支持多个域名分享一个IP地址,这种配置叫做“虚拟主机”。在这种情况下,每个虚拟主机必须要有自己的ServletContext,而不能共享一个ServletContext。
SRV.3.7 Reloading Considerations
所有的Servlet和它们引用的类必须都处于一个类装载器范围内。
SRV.3.7.1 Temporary Working Directories
每 一个ServletContext都需要一个临时目录,并且通过 javax.servlet.context.tempdir属性指定。Servlet容器不需要管理这个临时路径的内容,但是要确保一个 ServletContext的临时目录对其他的ServletContext是不可见的

分享到:
评论

相关推荐

    ServletContextListener使用详解

    ServletContextListener 是 Servlet API 中的一个接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当 Servlet 容器启动或终止 Web 应用时,会触发 ServletContextEvent 事件,...

    Filter简介和工作原理

    `FilterConfig`对象提供了关于Filter的配置信息,包括获取Servlet上下文(`ServletContext`)和初始化参数。如果在此方法中抛出`ServletException`,则表示Filter无法正常工作。 2. `destroy()`:在Servlet容器关闭...

    spring在web.xml中和在struts中的不同配置..pdf

    `ContextLoader`将WebApplicationContext存储在`ServletContext`中,`ServletContext`是Web应用全局共享的信息存储,类似于一个全局的Map。 相比之下,Struts是一个基于MVC(模型-视图-控制器)设计模式的Web应用...

    SpringMVC中的RootApplicationContext上下文和WebApplicationContext上下文,通过注解配置SpringMVC的完整解决方案

    注解配置SpringMVC原理简述1. 准备知识1.1 两个应用上下文1.2 ServletContext配置方法(Configuration Methods)1.3 运行时插拔1.4 SpringServletContainerInitializer1.4.1 AbstractContextLoaderInitializer1.4.2 ...

    JSP的九个内置对象及四个作用域

    Application 对象是javax.servlet.ServletContext类型,“Application”对象负责提供应用程序在服务器运行中的一些全局信息,常用的方法有getMimeType和getRealPath等,servlet的循环通过调用getServletConfig()....

    (完整版)《JavaWeb程序开发入门》课后练习(含答案).docx

    * 如何使用 ServletContext 对象来存储和获取数据 * 如何在 Servlet 中读取配置信息和获得参数值 该文档涵盖了 JavaWeb 程序开发入门的多方面知识点,包括 XML、XML Schema、Web 应用发布、Tomcat 配置、HTTP 协议...

    Java面试题集锦6:华为面试题 管理资料.pdf

    以上只是Java面试中部分关键知识点的简述,完整的面试准备还需要涵盖更多领域,如JVM原理、垃圾回收机制、设计模式、数据结构与算法、数据库操作、网络协议等。对于华为这样的大型科技公司,面试通常会更加深入,...

    JSP的九大内置对象

    5. **application对象**:application对象是javax.servlet.ServletContext的实例,它在整个web应用的生命周期内有效,可用于共享全局信息。一旦数据被放入application域,所有用户和所有请求都能访问到,直到服务器...

    Spring框架中 @Autowired 和 @Resource 注解的区别

    此外,对于资源加载,Spring提供了如`ResourceLoader`、`Resource`等工具类和接口,如`ClassPathResource`、`FileSystemResource`和`ServletContextResource`等,用于从不同位置加载资源文件,这些在实际项目开发中...

    Jsp和Servlet试题带(答案).pdf

    它是ServletContext的实例,可以用来存储全局变量。 7. **exception对象**:当JSP页面出现异常时创建,是一个Throwable对象,只有在isErrorPage属性为true的JSP页面中才能访问。 8. **pageContext对象**:提供了对...

    java核心技术-java中监听器和过滤器的使用笔记

    监听器是Java Web中另一种重要组件,它监听特定的事件并作出反应,如Session创建、销毁,或者ServletContext事件等。监听器通过实现特定的接口(如`HttpSessionListener`,`ServletRequestListener`等)并配置在`...

    网络编程复习资料

    - **application**:`javax.servlet.ServletContext`类型,表示整个Web应用的上下文。 - **page**:代表当前JSP页面对应的servlet实例。 - **pageContext**:`javax.servlet.jsp.PageContext`类型,提供了对其他内置...

    java ee 1.5 1.6 api

    以上只是Java EE 1.5/1.6中部分关键API和概念的简述,实际使用中还需要了解更多的细节,如异常处理、安全、事务管理等。查阅`j2ee_api_6`文档将有助于深入理解这些技术,并在实际项目中灵活运用。

    Web开发JSP笔记.pdf

    ### Web开发JSP笔记知识点概览 ... - **GET** 方法:GET 方法通常用于从服务器检索...同时,还介绍了JSP范围对象的概念及它们之间的区别,并简述了JNDI的作用及其应用场景。这些知识点对于理解和掌握JSP技术至关重要。

    一些比较经典的java面试题

    - **application**: `ServletContext` 类型,表示整个Web应用的上下文环境,可以用于共享应用级别的信息。 - **config**: `ServletConfig` 类型,包含初始化参数,可以在部署时配置Servlet。 - **page**: 表示当前的...

    2021-2022计算机二级等级考试试题及答案No.12079.docx

    - **Application**:也称为ServletContext作用域,存储在此处的数据在整个应用生命周期内都是可见的,除非应用重启。 - **答案解析**:题目要求在多个页面间共享数据,因此应选择`request`和`session`作用域。因为`...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

Global site tag (gtag.js) - Google Analytics