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 是 Servlet API 中的一个接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当 Servlet 容器启动或终止 Web 应用时,会触发 ServletContextEvent 事件,...
`FilterConfig`对象提供了关于Filter的配置信息,包括获取Servlet上下文(`ServletContext`)和初始化参数。如果在此方法中抛出`ServletException`,则表示Filter无法正常工作。 2. `destroy()`:在Servlet容器关闭...
`ContextLoader`将WebApplicationContext存储在`ServletContext`中,`ServletContext`是Web应用全局共享的信息存储,类似于一个全局的Map。 相比之下,Struts是一个基于MVC(模型-视图-控制器)设计模式的Web应用...
注解配置SpringMVC原理简述1. 准备知识1.1 两个应用上下文1.2 ServletContext配置方法(Configuration Methods)1.3 运行时插拔1.4 SpringServletContainerInitializer1.4.1 AbstractContextLoaderInitializer1.4.2 ...
Application 对象是javax.servlet.ServletContext类型,“Application”对象负责提供应用程序在服务器运行中的一些全局信息,常用的方法有getMimeType和getRealPath等,servlet的循环通过调用getServletConfig()....
* 如何使用 ServletContext 对象来存储和获取数据 * 如何在 Servlet 中读取配置信息和获得参数值 该文档涵盖了 JavaWeb 程序开发入门的多方面知识点,包括 XML、XML Schema、Web 应用发布、Tomcat 配置、HTTP 协议...
以上只是Java面试中部分关键知识点的简述,完整的面试准备还需要涵盖更多领域,如JVM原理、垃圾回收机制、设计模式、数据结构与算法、数据库操作、网络协议等。对于华为这样的大型科技公司,面试通常会更加深入,...
5. **application对象**:application对象是javax.servlet.ServletContext的实例,它在整个web应用的生命周期内有效,可用于共享全局信息。一旦数据被放入application域,所有用户和所有请求都能访问到,直到服务器...
此外,对于资源加载,Spring提供了如`ResourceLoader`、`Resource`等工具类和接口,如`ClassPathResource`、`FileSystemResource`和`ServletContextResource`等,用于从不同位置加载资源文件,这些在实际项目开发中...
它是ServletContext的实例,可以用来存储全局变量。 7. **exception对象**:当JSP页面出现异常时创建,是一个Throwable对象,只有在isErrorPage属性为true的JSP页面中才能访问。 8. **pageContext对象**:提供了对...
监听器是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和概念的简述,实际使用中还需要了解更多的细节,如异常处理、安全、事务管理等。查阅`j2ee_api_6`文档将有助于深入理解这些技术,并在实际项目中灵活运用。
### Web开发JSP笔记知识点概览 ... - **GET** 方法:GET 方法通常用于从服务器检索...同时,还介绍了JSP范围对象的概念及它们之间的区别,并简述了JNDI的作用及其应用场景。这些知识点对于理解和掌握JSP技术至关重要。
- **application**: `ServletContext` 类型,表示整个Web应用的上下文环境,可以用于共享应用级别的信息。 - **config**: `ServletConfig` 类型,包含初始化参数,可以在部署时配置Servlet。 - **page**: 表示当前的...
- **Application**:也称为ServletContext作用域,存储在此处的数据在整个应用生命周期内都是可见的,除非应用重启。 - **答案解析**:题目要求在多个页面间共享数据,因此应选择`request`和`session`作用域。因为`...
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...