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框架基础(反射+注解 ...
随机推荐
- R语言与概率统计(六) 主成分分析 因子分析
超高维度分析,N*P的矩阵,N为样本个数,P为指标,N<<P PCA:抓住对y对重要的影响因素 主要有三种:PCA,因子分析,回归方程+惩罚函数(如LASSO) 为了降维,用更少的变量解决 ...
- JAVA 基础编程练习题12 【程序 12 计算奖金】
12 [程序 12 计算奖金] 题目:企业发放的奖金根据利润提成.利润(I)低于或等于 10 万元时,奖金可提 10%:利润高于 10 万元, 低于 20 万元时,低于 10 万元的部分按 10%提成 ...
- PTA --- L1-006 连续因子
题目地址 一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序求出最长连续因子的个数,并 ...
- Tensorflow 保存模型 & 在java中调用
本节涉及: 保存TensorFlow 的模型供其他语言使用 java中调用模型并进行预测计算 一.保存TensorFlow 的模型供其他语言使用 如果用户选择“y” ,则执行下面的步骤: 判断程序执行 ...
- Docker 面试题
Docker 面试题 Docker? Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. CI(持续集成)服务器的功能是什么? ...
- robots.txt文件
网站通过一个符合Robots协议的robots.txt文件来告诉搜索引擎哪些页面可以爬取.Robots.txt协议全称“网络爬虫排除标准”.一般情况下,该文件以一行或多行User-agent记录开始, ...
- Linux远程开发
Linux远程开发 通常,当我们开发Linux程序时有两种方案: 在Linux上直接编写程序并进行运行测试和调试 在Windows或Mac OS X上借助工具进行远程开发 虽然我自己是在Linux环境 ...
- python标准库之shutil——可操作权限的文件操作库
转载自:https://www.jb51.net/article/145522.htm shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 ...
- Linux文件权限基础回顾介绍
文件的权限 文件权限的概述: 权限贯穿运维的一生
- Design Hit Counter
Design a hit counter which counts the number of hits received in the past 5 minutes. Each function a ...