SRV.3 Servlet Context
SRV.3.1 Introduction to the ServletContext Interface
ServletContext接口定义了一个web应用程序的servlet视图,这些servlet就运行在此web应用程序中。Container的提供者负责提供container中ServletContext接口的实现。使用ServletContext对象,servlet可以记录时间,取得资源的引用URL,设置并存储context中其它servlet也可以可访问的attribute(set and store attributes that other servlets in the context can access)。
ServletContext被root于web server中一个已知的路径。例如:一个servlet context可以被配置在http://www.google.com/catalog。作为context path,以request路径/catalog开始的所有请求,都会发送至与此ServletContext相关联的web application。
SRV.3.2 Scope of a ServletContext Interface
每个发布到container中的web application都有一个ServletContext的实例与之相关联。如果container是分布式的运行在多台虚拟机上,那么web application将在每一个JVM上有一个ServletContext的实例。
在container中,没有作为web application的一部分被部署的servlet,是“默认”web application隐含的一部分,并且有一个默认的ServletContext。在分布式container中,默认的ServletContext并不是分布式的,而是只存在于一个JVM中。
SRV.3.3 Initialization Parameters
下面的ServletContext接口的方法允许servlet访问存取与web application相关联的context初始化参数,这些参数由应用程序开发者在部署描述符中描述。
- getInitParameter
- getInitParameterNames
初始化参数被开发者用来传达配置信息。典型的情况是站点管理员的的email地址,或者持有关键资源的系统的名称(the name of a system that holds critical data)。
SRV.3.4 Context Attributes
Servlet可以通过名称将一个对象作为属性绑定到context。所有与context绑定的属性都对于同一个web application中其他任何的servlet都是有效的。以下是ServletContext接口中支持这种功能的方法:
- setAttribute
- getAtrribute
- getAtrributeNames
- removeAttribute
SRV.3.4.1 Context Attributes in a Distributed Container
Context的attribute只在对于context所在的JVM中有效。这防止了ServletContext的attribute在分布式container中成为共享的内存数据。当有信息需要在运行在分布式环境下的不同servlet之间共享时,这些信息应该被放到session中(参见SRV.7 Sessions),存在数据库中,或者set到一个EJB组件中。
SRV.3.5 Resourcess
ServletContext接口只对web application中静态内容文档的层次结构提供了直接的存取的功能。,包括html,gif和jpeg文件,通过ServletContext接口的以下方法:
- getResource
- getResourceAsStream
getResource和getResourceAsStream方法以一个以“/”开头的字符串作为参数,这个参数代表了资源相对于context的路径。这个文档的曾其结构可能会出现在server的文件系统里,web application存档文件里,或者一个远程服务器,甚至一些其他的位置。
这些方法不是用来获取动态内容的。例如,在支持JSP规范的container中,一个形式为getResource("/index.jsp")的方法调用会返回这个 jsp的源代码,而不是jsp执行后的输出结果。参见SRV.8 Dispatching Request,以获取关于存取动态内容的更多信息。
Web application中所有资源的列表可以通过使用getResourcePath(String path)方法获得。此方法的语法细则可以在servlet的API中找到。
SRV.3.6 Multiple hosts and Servlet Contexts
Web server可以支持在一台服务器上多逻辑主机共享一个 IP地址,这种能力有时被称为“虚拟主机”。在这种情况下,每个逻辑主机必须有它自己的servlet context或者servlet context 的集合。servlet context不能被多个虚拟主机共享。
SRV.3.7 Reloading Considerations
虽然container提供者不是必须为了方便开发者而实现class reloading的方案,任何这样的实现都必须明确,所有它们可能使用的servlet和class(An exception is system classes that the servlet may use in a different class loader),都只装载在单个class loader中,这样才能保证应用程序呈现出开发者所期望的行为。为了方便开发者,container应该提供完整的session绑定listener的通知,以便用来监控在class reloading之前的session终止(session termination upon class reloading)。
上一代的container创建新的class loader来装载servlet,不同于被用来装载servlet context中其他servlet或者class的class loader(distinct from class loaders used to load other servlets or classes used in the servlet context)。
SRV.3.7.1 Temporary Working Directories
每个servlet context都需要一个临时存储目录。Servlet container必须为每个servlet context提供一个私有的临时目录,并且通过javax.servlet.context.tempdir这个context attribute来使其可用。与这个attribute相关联的对象必须使java.io.File类型。
这一点被公认为是习惯做法,很多servlet引擎都提供了这样的实现。当container重启时,并不被要求去保持这个临时目录下的内容,但是必须保证临时目录中的一个servlet context的内容对与container中其他web application的servlet context使不可见的。
分享到:
相关推荐
Python双语言混合开发 中go语言版 mxshop_goods-srv.sql
首先很高兴VSuite.Ramdisk.Srv.Setup.4.6.7531.1240总算win 64位系统上实现永久使用了,虽然离完美破解还是很遥远,但是值得庆贺,特此说明: 1、64位系统较32位难破解原因主要在于数字签名上,由于rxvstor.sys是...
其他资料 ............................................................................................................................................................3 谁应该读此规范 .....................
标题中的“srv蓝屏解决补丁”指的是针对服务器运行过程中出现的蓝屏问题,特别是由于srv.sys驱动程序导致的问题,而提供的一种修复解决方案。在Windows操作系统中,srv.sys是服务子系统的主要驱动程序,它负责处理...
Primo Ramdisk(VSuite Ramdisk II) 内存虚拟硬盘软件 使用内存模拟出超快速的硬盘,突破系统IO瓶颈,飞速提升计算机性能 Primo Ramdisk软件的主要功能是通过独特的软件算法将物理内存模拟成一个超快速的硬盘,在这个...
安装Primo Ramdisk Srv Mui 5.6.0的过程相对简单,用户只需运行"Primo.Ramdisk.Srv.Mui.Setup.5.6.0.exe"这个安装文件,按照向导指示操作即可。值得注意的是,为了激活软件,可能需要使用到"PrDSrv56crk.reg"这个...
PrimoCache 是一款可以将物理内存、SSD 硬盘或闪存盘等虚拟成硬盘缓存的软件,它可以自动将硬盘中读取的数据存入物理内存等速度较快的设备,当系统再次需要该数据时它可以很快从缓存设备中读取,而无需再次访问速度...
VSuite.Ramdisk.Srv.Setup.zip VSuite+Ramdisk+.Crack.By.XLTH.rar 包含配置文件
VSuite.Ramdisk.Srv.Setup.4.6.7531.1240是一款专为服务器设计的内存虚拟硬盘软件,它充分利用了服务器内存的高速性来创建临时的虚拟硬盘,以此提升数据的读写速度并减轻对物理硬盘的磨损。这款工具的核心理念在于将...
3. **服务器优化**:VSuite.Ramdisk.Srv.Setup表明这款软件还针对服务器环境进行了优化,可以更好地服务于需要高性能存储服务的服务器应用,例如数据库服务器、Web服务器或者流媒体服务器。 4. **64位操作系统支持*...
嘿嘿。ipc入侵里开telnet需要用的srv 个人收集来的。。奉上
标题中的“srv.cpp.tar.gz_Server”表明这是一个与服务器端编程相关的项目,主要涉及C++语言,因为源代码文件“srv.cpp”通常代表C++程序。这个压缩包包含了一个名为“srv.cpp”的文件,我们可以推断这可能是服务器...
标题中的“srv.rar_srv”可能是指一个压缩包文件,其中包含了一个名为“srv”的服务器端程序。这个程序基于socket编程,用于实现简单的通信服务。在IT领域,socket编程是网络编程的基础,它允许两个或多个应用程序...
History_07_Srv.txt
【标题】"srv.rar_聊天工具" 涉及的核心知识点是聊天工具的服务器端开发,其中使用了winsock编程技术。Winsock是Windows操作系统中的一个API,它为应用程序提供了网络通信的能力,使得开发者能够创建基于TCP/IP协议...
SAS9.4,sid码更新日期到2020年5月30日。 sas工具9.4版本,的sid更新代码,直接把begin里的内容做替换 或者直接使用renewsas进行更新
《srv.rar_srv_服务端 DELPHI_服务端集合》是一个综合性的资源包,主要针对的是使用DELPHI开发服务端应用的初学者。这个压缩包包含了一系列与srv服务端相关的材料,旨在帮助用户理解srv服务端的工作原理,并提供...
tac_plus_srv.zip服务器源码。ubuntu下解压安装,方法都在对应的文档中
《PrimoCache v3.09:提升硬盘性能的秘密武器》 在当今的计算机领域,存储设备的速度对系统整体性能有着显著的影响。尤其对于那些依赖大量数据读取的应用程序,如游戏、视频编辑软件和数据库服务,硬盘的读取速度至...