当前位置: 首页 > news >正文

servlet中的ServletContext

设置、获取ServletContext配置信息

与ServletConfig不同的是,所有Servlet共享一份ServletContext

  1. 在web.xml中设置配置信息

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
             version="6.0">
        <context-param>
            <param-name>key1</param-name>
            <param-value>a</param-value>
        </context-param>
        <context-param>
            <param-name>key2</param-name>
            <param-value>b</param-value>
        </context-param>
    </web-app>
    
  2. 在service方法中读取

    public class ServletTest extends HttpServlet {
    	public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		ServletContext servletContext = this.getServletContext();
    		
    		// 获取指定的配置信息
    		String value = servletContext.getInitParameter("key2");
    		System.out.println(value);
    		
    		// 批量获取配置信息
    		Enumeration<String> initParameterNames = servletContext.getInitParameterNames();
    		while(initParameterNames.hasMoreElements()) {
    			String key = initParameterNames.nextElement();
    			System.out.println(key + "=" + servletContext.getInitParameter(key));
    		}
    	}
    } 
    

通过ServletContext获取项目实际部署的根路径:getRealPath()

ServletContext servletContext = this.getServletContext();
// 获取项目实际部署的根路径(绝对路径)
String rootPath = servletContext.getRealPath(""); // D:\workspace\javawebproject\out\artifacts\demo1_war_exploded\
// 获取项目实际部署的根目录下的static路径(绝对路径)
String staticPath = servletContext.getRealPath("static"); // D:\workspace\javawebproject\out\artifacts\demo1_war_exploded\static

通过ServletContext获取项目的访问路径:getContextPath()

ServletContext servletContext = this.getServletContext();
// 获取项目的访问路径
String accessPath = servletContext.getContextPath(); // /demo1
http://www.dtcms.com/a/19502.html

相关文章:

  • 【D2】神经网络初步学习
  • dfs深度优先搜索—邻接矩阵 + 邻接矩阵-递归版 + 邻接表
  • 基于Flask的茶叶销售数据可视化分析系统设计与实现
  • 一. vue2和vue3的Proxy底层源码详细拆解
  • Kepware的OPC UA配置深入介绍
  • C++ 中将类的定义和实现都放在头文件中的优缺点分析
  • 【20250215】二叉树:94.二叉树的中序遍历
  • 深入理解Elasticsearch集群与分片:原理及配置方案
  • 【硬件设计细节】缓冲驱动器使用注意事项
  • Springboot项目:使用MockMvc测试get和post接口(含单个和多个请求参数场景)
  • Git 本地项目上传 GitHub 全指南(SSH Token 两种上传方式详细讲解)
  • 代码随想录刷题攻略---动态规划---子序列问题1---子序列
  • 计算机视觉+Numpy和OpenCV入门
  • Plaid | 数据库切换历程:从 AWS Aurora MySQL 到 TiDB 的迁移之旅
  • ⚡️《静电刺客的猎杀手册:芯片世界里的“千伏惊魂“》⚡️
  • LeetCodehot 力扣热题100 从前序与中序遍历序列构造二叉树
  • 尚硅谷课程【笔记】——大数据之Hadoop【一】
  • Codeforces Round 1004 (Div. 2)(A-E)
  • HTML、Vue和PHP文件的区别与联系
  • mybatis-lombok工具包介绍
  • 第十五届蓝桥杯嵌入式省赛真题(满分)
  • Android Studio - 解决gradle文件下载失败
  • 【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析④】
  • 蓝桥杯篇---超声波距离测量频率测量
  • 1-7 gitee代码推送问题
  • Spark 和 Flink
  • 浅识Linux高阶用法
  • 【系统架构设计师】虚拟机体系结构风格
  • 基于 SpringBoot 的 4S店车辆管理系统 系统的设计与实现
  • 【Springboot知识】从零开始配置springfox