java - 如何在java中对http请求的上下文路径不区分大小写?

use*_*463 2 java jakarta-ee

我在进行 Web 应用程序开发时遇到问题。我的要求是:我想像这样从浏览器向服务器发出请求:

[0]:    http://localhost:8080/FirstApp/index.html
Run Code Online (Sandbox Code Playgroud)

这是我的实际网址,区分大小写。但是,我想让这个 url 不区分大小写。如果我提出如下请求,它应该可以工作。

[1]:  http://localhost:8080/FIRSTAPP/index.html
[2]:http://localhost:8080/fIRSTaPP/index.html
[3]:http://localhost:8080/FiRsTApP/index.html
            .
            .
            .
Run Code Online (Sandbox Code Playgroud)

如何使“上下文路径”不区分大小写?

在像 tomcat、weblogic 等服务器中是否有任何可用的配置,如果有,那么每个服务器是否有任何特定的配置,或者我们通常是否必须提供应用程序级实现。

我在 Microsoft IIS 服务器中观察到,它提供不区分大小写的特性。为什么不在 java web 开发中?

lef*_*loh 5

正如@cletus已经回答的那样,只要您不将战争文件部署在耳文件中,就没有独立于供应商的设置上下文根的方法。对于ear文件的application-xml,Java EE Spec指出(第252页):

XML 元素的内容通常区分大小写

我认为没有任何服务器在其部署描述符中处理这种不同的情况。

背景由@Tarlog回答

根据 RFC 3986 的 URI 区分大小写。

如果你真的需要一个不区分大小写的上下文根,你需要在你的应用程序服务器前面放置一个 web 服务器,它重定向到 或 proxies /FirstApp