所以我有一个带有这样的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配置中。但我似乎无法找到改变它的方法,我尝试过几种组合,但没有一种能更好地发挥作用。
这可能是我想念的简单事情,但是如果有人可以提供帮助,那将非常感激。
答案 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();