06-【servletconfig、servletContext 】
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 】的更多相关文章
- Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...
- Python全栈【进程、线程】
Python全栈[进程.线程] 本节内容: 进程 线程 协程 I/O多路复用 进程 1.进程就是一个程序在一个数据集上的一次动态执行过程,进程是资源分配的最小单元. 2.进程一般由程序.数据集.进程控 ...
- ServletConfig、ServletContext 的应用
一.ServletConfig对象及其应用(用的不多) 1. Context和ContextPath:一个web工程,若名为JavaWeb,访问的路径为:http://localhost:8080/J ...
- 【Collection、泛型】
[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个 ...
- Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext
Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Ap ...
- JavaSpring【一、概述】
主要内容 JavaSpring[一.概述] JavaSpring[二.IOC] JavaSpring[三.Bean] JavaSpring[四.Bean管理注解实现] JavaSpring[五.AOP ...
- JavaWeb【一、简介】
原计划上周完成的内容,硬是过了一个清明拖到了这周,工作上还有很多东西没做...明天抓紧看把,争取这周末搞定 内容简介:(学习完后会重新梳理调整) 1.JavaWeb[一.简介] 2.JavaWeb[二 ...
- JavaJDBC【一、概述】
其实这个内容在学习java基础的时候就有看过了,只是没有详细整理,在这再整理一下 数据库操作对于任何一门后端语言来说都是很重要的 JDBC:Java Data Base Connectivity 内容 ...
- Java注解【一、概述】
前面几篇Java学习笔记都是半夜写的,比较伤身体,今天开始想调整生物钟,早上起来学2小时,看看能坚持多久 本周目标: 1.JavaJDBC使用 2.JavaWeb编程 3.Java框架基础(反射+注解 ...
随机推荐
- Centos7.2 搭建emqttd集群,添加自启动服务
关闭防火墙(可选):systemctl stop firewalld.service 1.安装依赖库> sudo yum -y install make gcc gcc-c++ kernel-d ...
- k8s 1.15.2 部署
目录 一.环境准备 二.软件安装 三.部署master节点 四.部署node节点 五.集群状态检测 一.环境准备 IP地址 节点角色 CPU Memory Hostname Docker versio ...
- Java虚拟机new对象
类加载检查java虚拟机在遇到一条 new 指令时,首先会检查是否能在常量池中定位到这个类的符号引用,并且是否已被加载过.解析和初始化过.如果没有,那必须先执行类加载过程 类加载的相关知识可参考:JV ...
- python3速查参考- python基础 3 -> -> while循环实例 + Continue && break的应用 + 列表的初步学习
while语句的应用 实例如下: """ 述求:用户登录系统,最多只能登录三次 第三次失败后,程序终止 """ user_table = { ...
- 第四章 信息收集之nmap
@nmap扫描工具 nmap是使用最广泛的扫描工具,主要的使用范围有,嗅探,扫描,ping. 局域网扫描 nmap扫描的基本命令: 首先在桌面右键选择open in terminal进入命令窗口,输入 ...
- ECS Samples概述
本文档介绍了Unity 面向数据的技术堆栈(DOTS)的三个主要方面:实体包,Unity C#作业系统和Unity Burst编译器所涵盖的Unity实体 - 组件系统(ECS).由于实体是DOTS中 ...
- Docker不完全使用指南
Docker官方文档:https://docs.docker.com/ 神马是Docker? Docker可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器. 开发者在笔记本上编译测试通过 ...
- Linux下通过ssh上传下载文件
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jun8148/article/deta ...
- __declspec(dllexport)的作用
加了之后发现,用ollydbg导入dll,可以自动判断某个函数是导出函数
- 植物大战僵尸:寻找阳光掉落Call调用
实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地Call,使用代码注入器注入,自定义生成阳光 阳光CALL遍历技巧: 进入植物大战僵尸-> 当出现阳光后->马上搜索未知初始数值 返回游 ...