为啥 servletContext.getRealPath 在 tomcat 8 上返回 null?

Posted

技术标签:

【中文标题】为啥 servletContext.getRealPath 在 tomcat 8 上返回 null?【英文标题】:Why does servletContext.getRealPath returns null on tomcat 8?为什么 servletContext.getRealPath 在 tomcat 8 上返回 null? 【发布时间】:2015-11-18 18:33:47 【问题描述】:

我有以下代码行:

servletContext.getRealPath("resources/images/video_icon.png")

我使用 jetty(使用 maven 插件)运行应用程序,此代码行返回正确的值。

当我使用 tomcat 8 运行应用程序时(在 tomcat 7 上它可以工作) - 应用程序返回 null。

应用结构:

1.如何解决? 2.为什么会这样?

【问题讨论】:

【参考方案1】:

在开始的路径中添加/ 后,它适用于:jetty 和 tomcat 8

servletContext.getRealPath("/resources/images/video_icon.png")

【讨论】:

原因是Tomcat需要/开头 感谢 Tangobee,请让我知道为什么 tomcat 8 会这样做,或者您知道为什么会更改此内容。这背后可能有一些原因,我正在调查那件事。

以上是关于为啥 servletContext.getRealPath 在 tomcat 8 上返回 null?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?