在 Servlet/JSP 中加载属性文件[重复]

2023-12-27

我创建了一个jar从我的Java project并想在一个JSP Servlet Project。我正在尝试加载一个属性文件,比如说我的sample.propertiesJSP Servlet Project保存在WEB/properties/sample.properties应该由以下班级阅读jar.我正在使用在 jar 类中编写的以下代码来访问它。

Properties prop=new Properties();
prop.load(/WEB-INF/properties/sample.properties);

但每次我得到fileNotFound exception.
请建议我解决方案。

这是结构

WEB-INF
      |
       lib
          |
           myproject.jar
                       |
                        myclass (This class needs to read sample.properties)
      |
       properties
                 |sample.properties

The /WEB-INF文件夹是not类路径的一部分。所以这里的任何答案都是轻率的建议ClassLoader#getResourceAsStream() http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29 will never工作。仅当属性文件放置在/WEB-INF/classes它确实是类路径的一部分(在像 Eclipse 这样的 IDE 中,只需将其放在 Java 源文件夹根目录中就足够了)。

如果属性文件确实存在于您想要保存的位置,那么您应该通过以下方式将其作为 Web 内容资源获取:ServletContext#getResourceAsStream() http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResourceAsStream%28java.lang.String%29反而。

假设你在一个HttpServlet,这应该做:

properties.load(getServletContext().getResourceAsStream("/WEB-INF/properties/sample.properties"));

(the getServletContext()继承自servlet超类,不需要自己实现;所以代码是原样的)

但如果该类本身不是一个HttpServlet无论如何,那么您确实需要将属性文件移动到类路径中。

也可以看看:

  • 在基于 servlet 的应用程序中,配置资源文件应该放在哪里以及如何读取? https://stackoverflow.com/questions/2161054/where-to-place-configuration-properties-files-in-a-jsp-servlet-web-application/2161583#2161583
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Servlet/JSP 中加载属性文件[重复] 的相关文章

  • 在 Java 8 中将对象追加到列表并返回结果?

    有没有一种方法可以将对象附加到列表并以功能性非命令方式在一行中返回结果 如果原始列表也不应该被改变 你会怎么做 Java 8 是允许的 我已经知道如何将两个列表连接到一行中 Source https stackoverflow com a
  • Junit Mockito 测试一切

    我现在正在寻找更多时间但没有结果 请帮忙 这是我要测试的课程 public class DBSelectSchema extends Database private static final Logger LOG Logger getLo
  • 使用 jstl 进行调试 - 具体如何进行?

    我一直试图理解BalusC的回答 https stackoverflow com questions 3177733 how to avoid java code in jsp files关于可调试性 我仍然无法弄清楚 jstl 标签如何比
  • 在 SWT 中单击鼠标触发事件?

    在SWT中 对于MouseListener接口 可用的方法有mouseUp mouseDown and mouseDoubleClick 如何根据用户点击触发事件 我们可以通过结合来做到这一点mouseUp and mouseDown 但没
  • 竞争性编码 - 以最低成本清除所有级别:未通过所有测试用例

    当我遇到这个问题时 我正在一个竞争性编码网站上解决问题 问题指出 游戏中有 N 个关卡和 M 种可用武器 等级编号从 0 到 N 1 武器编号从 0 到 M 1 您可以按任意顺序清除这些级别 在每个关卡中 需要这些 M 武器的某些子集才能通
  • Tomcat - 多个 webapps 文件夹

    是否可以有多个文件夹来放置要部署的应用程序 这些是如何定义的 是否可以将一个文件夹限制为仅是 domain com 的应用程序 而不是其他域 Thanks 看一眼conf server xml
  • 处理 ANTLR 4 中的错误

    遵循后接受的答案 https stackoverflow com a 18137301 2279200的指示处理 ANTLR4 中的错误 https stackoverflow com q 18132078 2279200问题 我遇到了以下
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • Java检测鼠标长按

    如果用户按下 JList 组件超过 3 秒 有什么方法可以捕获事件吗 我发现困难的部分是即使在用户松开鼠标左键之前也需要触发事件 这可以通过 mousePressed 和 mouseReleased 组合轻松完成 您可以在 mouseDow
  • Spring Boot 多部分文件始终为 null

    我正在使用 Spring Boot version 1 4 0 RC1 和 Spring Boot Stormpath 1 0 2 我正在尝试使用分段文件上传 但控制器中的 MultipartFile 始终为空 当我使用 RequestPa
  • 如何找到 Oracle 数据库的 URL?

    如何找到 Oracle 数据库的 URL 和端口 Example jdbc oracle thin host port dbName 用户名 密码 是否有我可以查看的 SQL 命令或日志 配置文件 对于甲骨文来说 有一个tnsnames o
  • Elasticsearch NodeBuilder 与 TransportClient

    对于其他 Elasticsearch 开发人员来说 这可能是一个非常简单 而且愚蠢 的问题 这两者之间有什么区别 我正在从 Java Web 应用程序连接到远程 Elasticsearch 服务器 到目前为止我一直在使用 Transport
  • 如何在不同的班级中启动和停止计时器?

    我想测量从传入 HTTP 请求开始到应用程序到达某个点的时间 这两个时间点都位于不同的类中 我将如何启动和停止这些不同类别的计时器 我没有看到使用 MeterRegistry 中的 命名 计时器的方法 我该怎么办呢 您可以使用 AOP 如下
  • 如何在Java中通过反射调用代理(Spring AOP)上的方法?

    一个接口 public interface Manager Object read Long id 实现该接口的类 Transactional Public class ManagerImpl implements Manager Over
  • Visual Studio Code - Java 类路径不完整。只会报告语法错误

    在使用 python 获得了丰富的经验之后 我正在使用 java 迈出第一步 我正在运行的脚本是一个简单的 Java Swing Gui 它可以从命令行和 VS Code 中正常编译和运行 为了设置 java 调试环境 我使用 github
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • Java“非法访问操作”方法将被弃用? [复制]

    这个问题在这里已经有答案了 JDK 9 JVM 发出非法访问操作警告后 如果您使用一些非法访问 例如setAccessible 我的问题 Is setAccessible 以后会被封吗 此功能的官方参考 如果将被弃用 在哪里 我在任何地方都
  • 文档过滤器在 Java 中不起作用?

    在超过 10 个字符的文本字段中 它必须显示错误 为此 我使用了文档过滤器 JTextField field JTextField txtFld AbstractDocument document AbstractDocument fiel
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav

随机推荐

  • git fetch 未获取最新提交

    运行 Jenkins 服务器的 Windows 7 机器在使用 git 时遇到一些问题 我们的代码托管在 GitHub 上 并且每晚都会运行构建 该作业要做的第一件事是从 GitHub 签出分支 X 然后运行构建脚本 不幸的是 我们注意到构
  • Java - 根据条件将 for 循环计数器转回原处

    以下是我的大学作业代码的一部分 else if codeList contains userCode i i is the counter for the for loop else if userQuantity i 0 i 第一部分确保
  • 如何在 Entity Framework Core 中构建多个左连接查询

    考虑我有以下实体 public class Root public long Id get set public class School Root public long StudentId get set public Student
  • 如何从跨站弹窗访问window.opener?

    我正在制作一个小部件 我需要在弹出窗口中的特定事件之后将父窗口重定向到特定的网址 该网址基于另一个域 怎么能做到这一点 window opener location replace url 你就是不能那样做 大多数浏览器不允许跨站点脚本编写
  • Entity Framework Core SelectMany 然后包含

    我似乎无法弄清楚如何让 EF Core 在使用 SelectMany 时包含 加载相关对象 context MyObject Where w gt w Id Id SelectMany m gt m SubObject Include i
  • 失败 - 无法在上下文路径部署应用程序

    在解释问题之前 我只想指出我对 NetBeans 和 Tomcat 完全陌生 而且我正在做一个学校项目 话虽这么说 问题正是标题所说的 以下是我尝试运行简单的 Hello World jsp 时的输出 就地部署于 C Users lostl
  • 使用 LESS 构建选择器列表

    一般问题 我有媒体查询 我在其中更改某些文本元素 如下所示 body single entry content p body single entry content ul body single entry content ol body
  • Cognito 和 Java - 用户名不能是电子邮件格式,因为用户池是为电子邮件别名配置的

    我创建了 Cognito 用户池 如下所示 settings https i stack imgur com sXf06 png for 允许用户通过电子邮件或用户名登录 并且对于每个用户来说都是唯一的 这是我的帐户 Cognito 实施
  • Jquery 验证删除规则不起作用

    我正在根据输入动态设置验证 在添加验证之前 我要删除规则并添加它是必需的元素 我设置删除规则后 消息不会消失 for var i 0 i lt data length i switch data i FieldName case ADDRE
  • Scala Play 2.1.0 - 资产未出现在 Heroku 上?

    我的应用程序在开发中运行良好 图像显示 但是当部署到 Heroku 时 它们神秘地消失了 代码是 img src routes Assets at myImage png gt Heroku 是否搞砸了 或者我错过了什么 确保您的项目pub
  • Select2 formatResult 获取选项的属性

    使用 在 select2 中获取自定义数据属性 https stackoverflow com questions 22261209 get custom data attribute in select2 with select 我们需要
  • 从 timedelta 中提取分钟 - Python

    我有一个包含 timedelta 的列 我想创建一个额外的列 从 timedelta 列中提取小时和分钟 df time delta hour minute 02 51 21 401000 2h 51min 03 10 32 401000
  • 在哪里可以找到 System.Linq.Dynamic dll?

    我正在到处寻找这个dll 但在任何地方都找不到它 有人知道在哪里可以得到它并可以帮助我吗 谢谢 现在可以通过NuGet https nuget org packages System Linq Dynamic画廊也是
  • Node.js mongodb如何连接到mongo服务器的replicaset

    我在用mongo and node js在一个应用程序中 mongo数据库由两台服务器组成 在给出的例子中http howtonode org express mongodb http howtonode org express mongo
  • 在LUA中调用Rest api端点

    我需要从 Lua 脚本调用 Rest API 端点 我怎样才能做到这一点 例如 我可以通过以下curl命令调用端点 curl X GET H X Parse Application Id ParseAppID H X Parse REST
  • NodeJS - SHA256 密码加密

    我目前正在学习 NodeJS 中的加密和密码安全 我正在使用当前使用 PBKDF2 的当前示例 我想将其切换为使用 SHA256 这可能和 或有意义吗 我该怎么办呢 var crypto require crypto var len 128
  • ACTION_PICK 与 MediaStore.Images.Media.INTERNAL_CONTENT_URI 允许用户选择通过 picasa 同步的图像(不在设备上?)

    我正在运行 ICS 并使用相同 Google 帐户的平板电脑和手机上测试我们的应用程序 如果我在一台设备上拍照 它将显示在另一台设备上 通过 Picasa 同步 奇怪的是 当我执行正常操作时 照片会显示在两个设备上 Intent inten
  • 退出 root conda 环境

    一旦我安装了 miniconda 我就永久处于 root miniconda 环境中 例如 luc montblanc conda info envs conda environments bunnies home luc minicond
  • Imgur API 和 VB.NET 帮助 - Image POST

    我正在尝试将图像发送到 Imgur 的服务器 一切都很顺利 我从解析器中获取了图像的 URL 但是当我尝试在网络浏览器上打开它时 我没有得到图像 只有一个 损坏的图像 图标 我认为这是转换为字节数组的问题 但我不明白 请让我知道 修复我的代
  • 在 Servlet/JSP 中加载属性文件[重复]

    这个问题在这里已经有答案了 我创建了一个jar从我的Java project并想在一个JSP Servlet Project 我正在尝试加载一个属性文件 比如说我的sample propertiesJSP Servlet Project保存