1.1.  介绍

ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

1.2.  作用

1.      是一个域对象

2.      可以读取全局配置参数

3.      可以搜索当前工程目录下面的资源文件

4.      可以获取当前工程名字(了解)

1.2.1.   servletContext是一个域对象

1.2.1.1.           域对象介绍

域对象是服务器在内存上创建的存储空间,用于在不同动态资源(servlet)之间传递与共享数据。

1.2.1.2.           域对象方法

凡是域对象都有如下3个方法:

setAttribute(name,value);name是String类型,value是Object类型;

往域对象里面添加数据,添加时以key-value形式添加

getAttribute(name);

根据指定的key读取域对象里面的数据

removeAttribute(name);

根据指定的key从域对象里面删除数据

1.2.1.3.           域对象功能代码

域对象存储数据AddDataServlet代码

/**

* doGet

*/

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//往serlvetContext里面存数据

//1.获取ServletContext对象

//getServletContext()

//2.往对象里面设置数据

getServletContext().setAttribute("username", "admin");

response.getOutputStream().write("用户名写入到servletContext成功".getBytes());

}

获取域对象数据GetDataServlet代码

/**

* doGet

*/

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//获取ServletContext里面的用户名数据

Object valueObject = getServletContext().getAttribute("username");

if(valueObject!=null){

response.getOutputStream().write(("从servletContext读取到的用户名数据:"+valueObject.toString()).getBytes());

}

}

servletContext存储数据特点,

全局共享,里面的数据所有动态资源都可以写入和获取

服务器启动的时候创建,服务器关闭的时候销毁,因为这是全局应用程序对象,全局共享对象。

1.2.2.   可以读取全局配置参数

1.2.2.1.           servletContext读取全局参数核心方法

getServletContext().getInitParameter(name);//根据指定的参数名获取参数值

getServletContext().getInitParameterNames();//获取所有参数名称列表

1.2.2.2.           实现步骤:

1.      在web.xml中配置全局参数

<!-- 全局配置参数,因为不属于任何一个servlet,但是所有的servlet都可以通过servletContext读取这个数据 -->

<context-param>

<param-name>param1</param-name>

<param-value>value1</param-value>

</context-param>

<context-param>

<param-name>param2</param-name>

<param-value>value2</param-value>

</context-param>

2.      在动态资源servlet里面使用servletcontext读取全局参数代码

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//使用servletContext读取全局配置参数数据

//核心方法

/*getServletContext().getInitParameter(name);//根据指定的参数名获取参数值

getServletContext().getInitParameterNames();//获取所有参数名称列表*/

//打印所有参数

//1.先获取所有全局配置参数名称

Enumeration<String> enumeration =  getServletContext().getInitParameterNames();

//2.遍历迭代器

while(enumeration.hasMoreElements()){

//获取每个元素的参数名字

String parameName = enumeration.nextElement();

//根据参数名字获取参数值

String parameValue = getServletContext().getInitParameter(parameName);

//打印

System.out.println(parameName+"="+parameValue);

}

}

1.2.3.   可以搜索当前工程目录下面的资源文件

1.2.3.1.           核心方法

getServletContext().getRealPath(path),根据相对路径获取服务器上资源的绝对路径

getServletContext().getResourceAsStream(path),根据相对路径获取服务器上资源的输入字节流

1.2.4.   可以获取当前工程名字

1.2.4.1.           核心方法

getServletContext().getContextPath();

作用:获取当前工程名字

1.2.4.2.           代码

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//获取工程名字,getServletContext().getContextPath()

response.getOutputStream().write(("工程名字:"+getServletContext().getContextPath()).getBytes());

}

 
 
 

转载:https://blog.csdn.net/qq_36371449/article/details/80314024

【转】ServletContext介绍及用法的更多相关文章

  1. ServletContext介绍和用法总结

    ServletContext介绍和用法总结 学习总结 一.ServletContext 介绍 1. 概念 2. 作用 3. 获取 3.1 在实现类中获取 3.2 在 Spring 容器中获取 二.Se ...

  2. java中的上下问解释以及ServletContext介绍使用

    摘抄的:所谓上下文,它是用来存储系统的一些初始化信息,例如在jboss中通过配置文件指定了数据源,那么在jboss启动的时候就把这个文件的相关信息上下文中,于是在我们使用这个数据源的时候,就需要先获得 ...

  3. oc-12-NSString 类简单介绍及用法

    // 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...

  4. WorkFlow介绍及用法

    WorkFlow介绍及用法 说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配 ...

  5. Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法

    Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法 1. BeanFactory BeanFactory,以Factory结尾,表示它是一个工厂类(接口),用于 ...

  6. vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)

    第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...

  7. 08_android入门_android-async-http开源项目介绍及用法

    android-async-http开源项目可以是我们轻松的获取网络数据或者向server发送数据.使用起来很easy,关于android-async-http开源项目的介绍内容来自于官方:http: ...

  8. JMS学习篇《一》ActiveMQ消息中间件的简单介绍与用法-概念篇

    原创说明:本篇博文为本人原创作品,转载请注明出处 1.何为消息中间件 消息中间件是一种在分布式应用中互相交换信息的一种技术,常见的成熟消息中间件有:RabbitMQ.SonicMQ,activeMQ. ...

  9. Cookie、Session登陆验证相关介绍和用法

    一.Cookie和Session 首先.HTTP协议是无状态的:所谓的无状态是指每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应直接影响,也不会直接 ...

随机推荐

  1. 趣谈Linux操作系统学习笔记:第二十八讲

    一.引子 磁盘→盘片→磁道→扇区(每个 512 字节) ext* 定义文件系统的格式 二.inode 与块的存储 1.块 2.不用给他分配一块连续的空间 我们可以分散成一个个小块进行存放 1.优点 2 ...

  2. golang--redis基本介绍

    redis(remote-dictionary-system)即远程字典服务器,是NoSQL数据库: 适合做缓存以及持久化: 免费开源,高性能的分布式内存数据库: redis的安装和使用: 下载Red ...

  3. 常用的app包名和类名

    应用 包名 启动类 QQ com.tencent.mobileqq com.tencent.mobileqq.activity.HomeActivity 微信 com.tencent.mm com.t ...

  4. 解决邮件发送错误:503 Error: need EHLO and AUTH first

    引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...

  5. HTTP常见的几种认证机制

    几种常用的认证机制 ===================转自https://www.cnblogs.com/xiekeli/红心李的文章====================== 我是一个测试人员 ...

  6. jQuery 源码分析(十六) 事件系统模块 底层方法 详解

    jQuery事件系统并没有将事件监听函数直接绑定到DOM元素上,而是基于数据缓存模块来管理监听函数的,事件模块代码有点多,我把它分为了三个部分:分底层方法.实例方法和便捷方法.ready事件来讲,好理 ...

  7. attention 汇总(持续)

    Seq2seq Attention Normal Attention 1.  在decoder端,encoder state要进行一个线性变换,得到r1,可以用全连接,可以用conv,取决于自己,这里 ...

  8. java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap报错解决

    在使用 commons-beanutils-1.9.2.jarcommons-logging-1.1.1.jar 的时候报错 java.lang.NoClassDefFoundError: org/a ...

  9. 无法打开锁文件 /var/lib/dpkg/lock-frontend - open

    转自:https://blog.csdn.net/sinat_29957455/article/details/89036005 在使用apt-get安装程序的时候报: E: 无法打开锁文件 /var ...

  10. Nginx+keepalived(高可用主备模式)

    Nginx+keepalived(高可用主备模式) 环境:centos6.7 准备:两台服务器(虚拟机).两台应用(Tomcat).Nginx.keepalived server1:192.168.2 ...