ServletConfig、ServletContext

1、ServletConfig获取web.xml中的配置信息:

java代码:

 @Override
public void init(ServletConfig config) throws ServletException {
String encode = config.getInitParameter("encode");
System.out.println("encode:"+ encode);
//获取参数名
Enumeration<String> names = config.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String paramValue = config.getInitParameter(name);
System.out.println(name +"----"+ paramValue);
}
}

Tomcat启动是注意观看加载信息:

2、ServletContext 
 实现跨浏览器取值,servletContext 在服务器启动web项目的时候创建一个唯一的servletcontext对象,服务器关闭的时候销毁 servletContext的对象,在一个web应用域中,范围最广的对象
首先要获取ServletContext:this.getServletContext()

 //获取servletContext
ServletContext servletContext = this.getServletContext();

1.获取文件的真实路径:getRealpath()

 //获取文件的真实路径
String realPath = servletContext.getRealPath("/index.jsp");
System.out.println("url:"+realPath);

2.获取 web.xml中的参数:getInitparameter("param-name");
先配置web.xml中参数

 <!-- servletcontext获取 web。xml中 上下文参数 -->
<context-param>
<param-name>info</param-name>
<param-value>200 ok </param-value>
</context-param>

再去获取

 // 获取 web.xml中的参数
String info = servletContext.getInitParameter("info");
System.out.println("获取web.xml中的上下文参数:"+info);

3.获取文件的数据,文件下载
4.获取某个文件夹下子文件夹和文件名:getResourcePaths

 Set<String> resourcePaths = servletContext.getResourcePaths("/WEB-INF");
Iterator<String> iterator = resourcePaths.iterator();
while(iterator.hasNext()){
String childPath = iterator.next();
System.out.println("WEB-INF目录下的子文件夹和文件名:"+childPath);
}

servletConext对象的创建和作用范围:每个 Java 虚拟机的每个“Web 应用程序”都有一个上下文。
服务器中每个web应用,拥有一个servletContext的实例,所有的servlet和jsp共享servletContext中的数据。在单个web应用中,所有的servlet和jsp共享servletContext中数据。如果跨浏览器获取数据,跨浏览器使用session获取数据无法获取,可以使用 ServletContext(应用域)的实例存取数据
request、session、servletContext】作用域和作用域对象:
request作用域对象:一次请求和响应 ,在一次请求和响应内 所有的servlet和jsp共享request对象的数据 
session作用域对象:一次会话,可以跨请求取值
servletcontext作用域对象:一个web应用,可以跨会话(跨浏览器)取值
// 测试跨浏览器访问值
servletContext.setAttribute("value", "我是web项目的老大,可以跨浏览器访问值的呢!!!!");
// 重定向到ok.jsp
response.sendRedirect(request.getContextPath()+"/ok.jsp");

代码:
TestServletContext.java

 package boom.servletcontext;

 import java.io.IOException;
import java.util.Iterator;
import java.util.Set; 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 TestServletContext extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取ServletContext
ServletContext servletContext = this.getServletContext();
//获取文件的真实路径
String realPath = servletContext.getRealPath("/index.jsp");
System.out.println("url:"+realPath);
// 获取 web.xml中的参数
String info = servletContext.getInitParameter("info");
System.out.println("获取web.xml中的上下文参数:"+info);
// 获取某个文件夹下子文件夹和文件名
Set<String> resourcePaths = servletContext.getResourcePaths("/WEB-INF");
Iterator<String> iterator = resourcePaths.iterator();
while(iterator.hasNext()){
String childPath = iterator.next();
System.out.println("WEB-INF目录下的子文件夹和文件名:"+childPath);
} // 测试跨浏览器访问值
servletContext.setAttribute("value", "我是web项目的老大,可以跨浏览器访问值的呢!!!!");
// 重定向到ok.jsp
response.sendRedirect(request.getContextPath()+"/ok.jsp"); }
}

06-【servletconfig、servletContext 】的更多相关文章

  1. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】

    Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...

  2. Python全栈【进程、线程】

    Python全栈[进程.线程] 本节内容: 进程 线程 协程 I/O多路复用 进程 1.进程就是一个程序在一个数据集上的一次动态执行过程,进程是资源分配的最小单元. 2.进程一般由程序.数据集.进程控 ...

  3. ServletConfig、ServletContext 的应用

    一.ServletConfig对象及其应用(用的不多) 1. Context和ContextPath:一个web工程,若名为JavaWeb,访问的路径为:http://localhost:8080/J ...

  4. 【Collection、泛型】

    [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个 ...

  5. Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext

    Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Ap ...

  6. JavaSpring【一、概述】

    主要内容 JavaSpring[一.概述] JavaSpring[二.IOC] JavaSpring[三.Bean] JavaSpring[四.Bean管理注解实现] JavaSpring[五.AOP ...

  7. JavaWeb【一、简介】

    原计划上周完成的内容,硬是过了一个清明拖到了这周,工作上还有很多东西没做...明天抓紧看把,争取这周末搞定 内容简介:(学习完后会重新梳理调整) 1.JavaWeb[一.简介] 2.JavaWeb[二 ...

  8. JavaJDBC【一、概述】

    其实这个内容在学习java基础的时候就有看过了,只是没有详细整理,在这再整理一下 数据库操作对于任何一门后端语言来说都是很重要的 JDBC:Java Data Base Connectivity 内容 ...

  9. Java注解【一、概述】

    前面几篇Java学习笔记都是半夜写的,比较伤身体,今天开始想调整生物钟,早上起来学2小时,看看能坚持多久 本周目标: 1.JavaJDBC使用 2.JavaWeb编程 3.Java框架基础(反射+注解 ...

随机推荐

  1. SpringBoot + Swagger2 自动生成API接口文档

    spring-boot作为当前最为流行的Java web开发脚手架,相信越来越多的开发者会使用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于移动端 ...

  2. node 笔记整理

    node 合并多个请求的数据 function getList1(num) { var url= "netease/search?keyword=独孤天下&type=song& ...

  3. MySQL常用维护命令和操作

    MySQL数据库安装后,除了包括MySQL服务器进程管理外,还提供了大量工具用于管理和维护MySQL服务器的其它工作.下面PHP程序员雷雪松介绍的这些命令都是在MySQL交互界面以外的命令行中执行的. ...

  4. uni-app 封装 http promise请求,仅提供 post,all,spread 方法

    简单封装一下 uni-app 的请求,因为项目中只用 post 请求,所以只封装了 post 和 all 方法. 更新,新增 spread 方法 2019-11-22 10:37:21 global. ...

  5. 综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列

    来源:http://t.cn/RVDWcfe 一.资料文档 Kafka:中.有kafka作者自己写的书,网上资料也有一些.rabbitmq:多.有一些不错的书,网上资料多.zeromq:少.没有专门写 ...

  6. LeetCode.1185-一周中的星期几(Day of the Week)

    这是小川的第415次更新,第448篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第266题(顺位题号是1185).给定日期,返回该日期的星期几.输入为三个整数,分别代表日,月和 ...

  7. C学习笔记-数据类型

    常量 在程序中不可变化的量,也就不可赋值 常用两种定义方式,#define和const 另外还有一个字符串常量 define #define MAX 100 #define在预编译的时候,其实也是做的 ...

  8. python tarfile模块

    TarFile类对于就是tar压缩包实例. 其由member块组成, member块则包括header块和data块. 每个member以TarInfo对象形式描述. 所以TarFile就是TarIn ...

  9. poj3122 Pie (二分)

    题目链接:https://vjudge.net/problem/POJ-3122 题意:有n块饼,m+1个人,将饼均分成m+1块,求每块最大的大小. 思路:水二分,显然每块的大小与可以给多少人吃具有单 ...

  10. vi操作笔记一

    vi命令  gg 到首行 shift + 4 跳到该行最后一个字符 shift + 6 跳到该行首个字符 shift + g 到尾行 vi 可视 G 全选 = 程序对齐   gg 到首行 vi 可视  ...