文档章节

ServletContext作用功能详解

Winnie007
 Winnie007
发布于 2015/12/14 16:41
字数 1141
阅读 550
收藏 5

一、ServletContext简介

当Servlet容器在启动一个web应用时,会为它创建唯一的ServletContext对象。当Servlet容器终止一个web应用,则就会销毁它的ServletContext对象。

ServletContext,是一个全局的存储信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可以多个,session,一个用户一个,而servletContext,所有用户公用一个。所以为了节省空间,提高效率ServletContext中要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。

换种方式说,运行在Java虚拟机中每一个web应用程序都有一个与之相关的Servlet上下文。ServletContext对象时Web服务器中的一个已知根路径,Servlet上下文被定位于http://localhost:8080/项目名。/项目名 称为上下文路径,一个ServletContext对象表示了一个Web应用程序的上下文。

Servlet上下文:Servlet上下文提供对应用程序中所有Servlet所共有的各种资源和功能的访问,Servlet上下文API用于设置应用程序中所有Servlet共有的信息,Servlet可能需要共享他们之间的共有信息,运行于同一服务器的Servlet有时也会共享资源,如jsp页面、文件和其他Servlet、

举例说明:

如,做一个购物类网站,要从数据库中提取物品信息,如果用session保存这些物品信息,每个用户都访问一遍数据库,效率就太低了;所以要用servlet上下文来保存,在服务器开始时,就访问数据库,将物品信息存入servlet上下文中,这样,每个用户只用从上下文中读入物品信息就行了。

另外在jsp文件中,application是ServletContext的实例,由jsp容器默认创建,在servlet中调用getServletContext()得到ServletContext的实例。每个应用都会有一个ServletContext对象与之关联,当容器分布在多个虚拟机上时,web应用在所分布的每个虚拟机上都拥有一个ServletContext实例。

二、ServletContext接口简介

ServletContext接口定义了运行servlet的web应用的servlet视图。容器供应商负责提供servlet容器内ServletContext接口的实现。设置ServletContext对象,servlet可以记录事件日志,获取资源的URL地址,并且设置和保存上下文内可以访问的其他Servlet的属性。

获取ServletContext实例:

1、通过ServletConfig接口的getServletContext()方法获得。

2、通过GenericServlet抽象类的getServletContext()方法获得,不过看源码发现这个方法其实也是调用了ServletConfig的getServletContext()方法。

3、HttpServlet类继承了GenericServlet抽象类,所以也可以通过getServletContext()获取。

三、ServletContext用途:

1、访问web应用的初始化参数和属性:

getInitParameter

getInitParameterNames

应用开发人员利用初始化参数传递配置信息,典型的例子是web管理员的e-mail地址或一个持有关键数据的系统名称。

在web.xml文件中配置初始化参数:

<context-param>
  <param-name>email</param-name>
  <param-value>xxxxxx</param-value>
 </context-param>

在servlet中访问初始化参数:

String email=this.getServletContext().getInitParameter("email");
  System.out.println(email);

2、上下文属性:

servlet可以通过名称将对象属性绑定到上下文,任何绑定到上下文属性都可以被同一个web应用的其他    servlet使用。

setAttribute

getAttribute

getAttributeNames

romoveAttribute

当信息需要在运行于分布式环境中的servlet之间共享时,信息被放入会话中,存储于数据库中,或者存储于EJB组件中。

3、访问web应用的静态资源

使用servletContext接口可以直接访问web应用中的静态内容文档接口,包括html,gif和jpeg文件。

getResource

getResourceAsStream

这两个方法的参数都是以"/"开头的字符串,表示资源相对于context根的相对路径。文档结构可以存在于服务器文件系统,或是在远程服务器上,或其他位置。但是不可以用来获得动态资源,比如getResource("/index.jsp"),这个方法将返回该jsp文件的源码,而不是动态页面。

web应用资源的完整列表可以使用getResourcePaths(String path)方法返回。

另外,每个servlet上下文都需要一个临时的存储目录,servlet容器必须为每个servlet上下文提供一个私有的临时目录,并且使它可以通过javax.servlet.context.tempdir上下文属性可用。

© 著作权归作者所有

Winnie007
粉丝 7
博文 36
码字总数 62847
作品 0
青岛
私信 提问
深入分析JavaWeb Item6 -- servletConfig 与servletContext详解

一、ServletConfig讲解 首先看ServletConfig API文档 1.1、配置Servlet初始化参数   在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数。 例如: 1.2、通过Servl...

小平果
2017/11/29
0
0
servletConfig servletContext

ServletConfig与ServletContext对象详解 (2011-01-17 18:48:25) 转载▼ 标签: javaee 分类: 我爱java ServletConfig与ServletContext对象详解 一、ServletConfig对象 在Servlet的配置文件中...

李永china
2016/08/02
7
0
ServletContextListener详解

一、简介: ServletContext的最大应用时web缓存,把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。ServletContextListener是ServletContext的监听者,他...

Winnie007
2015/12/14
134
0
ServletContextListener使用详解

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

solar.xie
2015/10/13
685
0
深入分析Spring 与 Spring MVC容器

Spring经典详解 Spring事务机制详解 Spring配置事务五种方式 关于Spring加载classpath与classpath*的过程剖析 深入分析Spring 与 Spring MVC容器 Spring系列文章 【第1章 Spring概述与结构】...

陶邦仁
2015/10/30
3.3K
5

没有更多内容

加载失败,请刷新页面

加载更多

Spring Security 自定义登录认证(二)

一、前言 本篇文章将讲述Spring Security自定义登录认证校验用户名、密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Security...

郑清
26分钟前
2
0
php yield关键字以及协程的实现

php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象,也就是继承...

冻结not
40分钟前
3
0
servlet请求和响应的过程

本文转载于:专业的前端网站➥servlet请求和响应的过程 1.加载 Servlet类被加载到Java虚拟机中,并且实例化。在这个过程中,web容器(例如tomcat)会调用Servlet类的公开无参构造函数,产生一...

前端老手
40分钟前
3
0
golang 1.13 errors 包来了,不用写“err 气功波”代码

引 这篇是对 errors 包 的姿势挖掘 气功波错误代码 从 http.Get()返回的错误 判断 syscall.ECONNREFUSED 错误.以前要对 go 标准库 error 结构有点熟悉,才能写出下面的代码 func CmdErr(err ...

guonaihong
43分钟前
28
0
喜玛拉雅已听书单

时间倒序排 书名 作者 状态 唐砖 孑与2 进行中 死灵之书(克苏鲁神话合集) 阿卜杜拉·阿尔哈萨德 进行中 赡养人类 刘慈欣 完结 赡养上帝 刘慈欣 完结 中国太阳 刘慈欣 完结 中国太阳 刘慈欣...

Alex_Java
45分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部