ServletContext对象

1,作用:JavaWeb应用的一个全局变量,一个应用只有一个ServletContext对象,在应用启动时,容器就会创建该对象

2,获得ServletContext对象的引用

3,应用ServletContext的特点,可以将该对象看做是整个web应用的总管家

4,应用

  实现多个Servlet之间的数据共享

  配置web应用的全局参数

Demo1向对象中存入参数

package com.itheima;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ServletContextDemo1 extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//获取ServletConfig对象
ServletConfig config=getServletConfig();
//根据ServletConfig对象创建ServletContext对象
ServletContext context=config.getServletContext();
//向Servletcontext对象中添加属性和属性值
context.setAttribute("abc", "你好");
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req,resp);
} }

Demo2取数据

package com.itheima;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ServletContextDemo2 extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//创建ServletContext对象
ServletContext context=getServletContext();
//得到ServletContext对象中的属性名,用Object接收
Object o=context.getAttribute("abc");
//打印
System.out.println(o);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { } }

如果先取数据(执行Demo2),则取出的是null,如果先存数据(Demo1),则取出存入的内容。

定义全局变量

web.xml中的代码
<!-- 定义全局参数-->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql:///test</param-value>
</context-param>
<context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>123</param-value>
</context-param> //java中的获取
Enumeration name=context.getInitParameterNames();
while(name.hasMoreElements()){
System.out.println("Demo2:"+context.getInitParameter((String)name.nextElement()));
}

ServletContext当全局变量的使用的更多相关文章

  1. cookie session URL重写 与考试

    状态管理.Cookie.Session.URL重写 HTTP协议:无状态的连接(每次连接都是新的请求)1.隐藏字段 <input type="hidden" name=&qu ...

  2. 0001 - Spring 框架和 Tomcat 容器扩展接口揭秘

    前言 在 Spring 框架中,每个应用程序上下文(ApplicationContext)管理着一个 BeanFactory,BeanFactory 主要负责 Bean 定义的保存.Bean 的创建. ...

  3. ServletContext全局变量初始化

    Java部分 package com.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.ser ...

  4. 通过 servletContext设置点击次数 利用的是全局变量的特性

  5. 在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等 .

    笔者不知道该用哪个词来形容ValueStack.ActionContext等可以在Struts2中用来存放数据的类.这些类使用的范围不同,得到的方法也不同,下面就来一一介绍. 声明:本文参考Strut ...

  6. servletContext百科

    servletContext 编辑   servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图.ServletContext实例是通过 getServl ...

  7. [07] ServletContext上下文对象

    1.上下文的概念 我们在说到Servlet的继承关系时,提到自定义Servlet实际上间接实现了Servlet和ServletConfig两个接口,其中ServletConfig接口中定义了一个方法叫 ...

  8. Servlet、ServletConfig、ServletContext深入学习

    1.Servlet学习 1.Servlet生命周期 Servlet 加载—>实例化—>服务—>销毁. init(servletConfig):(经过自己的测试发现会先调用这个而不是i ...

  9. 将properties文件的配置设置为整个Web应用的全局变量。

    四种作用域: Web应用中的变量存放在不同的jsp对象中,会有不一样的作用域,四种不同的作用域排序是 pageContext < request < session < applic ...

随机推荐

  1. powerdesign的license key到期,解决办法

    到2013年9月24日为止我把这文件覆盖了都是行的!不行的请留言说明下! 下载地址:powerdesigner license key 15.1 找到安装目录,直接覆盖就行了!

  2. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...

  3. light oj 1138

      Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Pract ...

  4. hdoj 2178 猜数字

    猜数字 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. windows 一个进程可以允许最大的线程数

    默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小. 你也 ...

  6. javascript操作注册表

    try{                     var shell = new ActiveXObject("WScript.Shell"); //读注册表值var  key1  ...

  7. MVC4的bundling功能简介

    Bundling and Minification是asp.net mvc4中一项可以减少用户请求等待时间,提升用户体验的一项技术.在VS2010中新建MVC4项目是,如果选择"基本&quo ...

  8. Eclipse能否把选中的一段代码向前或向后缩进一个tab的位

    选中代码按TAB /shift + tab

  9. IEnumerable和IEnumerator 详解

    初学C#的时候,老是被IEnumerable.IEnumerator.ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质. 下 ...

  10. 使用JDK自带jvisualvm监控tomcat

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...