Jetty - 路径需要尾随斜杠

时间:2018-05-06 13:33:56

标签: jetty

所以我有一个带有这样的URL的Jetty容器:http://localhost:7071/my-app-name/ui/。我遇到的问题是Jetty似乎需要最后一个斜杠。

这样可行:

http://localhost:7071/my-app-name/ui/

但这并不是:

http://localhost:7071/my-app-name/ui

这真的很奇怪,我希望无斜线路径与斜线路径相同。该路径是整个应用程序的主页,这就是我希望它工作的原因。

以下是我的一些Jetty配置。任何帮助将不胜感激:

PS。我在Kotlin工作。它的工作原理应该仍然是相同的。

server = Server(props.getProperty(AppProps.PORT).toInt())
val handler = ServletContextHandler(server, root)
val appServletHolder = ServletHolder("AppServlet", AppServlet::class.java)
handler.addServlet(appServletHolder, "/ui/*")
handler.addEventListener(AppCore(props))
server.start()

我知道我正在指定" / ui / *"在我的servlet holder配置中。但我似乎无法找到改变它的方法,我尝试过几种组合,但没有一种能更好地发挥作用。

这可能是我想念的简单事情,但是如果有人可以提供帮助,那将非常感激。

1 个答案:

答案 0 :(得分:1)

您已告诉servlet规范您希望在/ui/*上收听,因此它要求您的网址必须包含/uri/部分。

但是一切都没有丢失,只需告诉servlet规范你也感兴趣的其他url模式。(Servlet可以映射到你想要的多个url模式)

又名:

server = Server(props.getProperty(AppProps.PORT).toInt());
val handler = ServletContextHandler(server, root);
val appServletHolder = ServletHolder("AppServlet", AppServlet::class.java);
handler.addServlet(appServletHolder, "/ui"); // <-- like that
handler.addServlet(appServletHolder, "/ui/*");
handler.addEventListener(AppCore(props));
server.start();