为什么 Head First 书在将请求从 Servlet 转发到 JSP 时使用“/”?

Why Head First book uses "/" when forwarding request from Servlet to JSP?

在阅读 Head First JSP 和 Servlets 时,我了解到正斜杠 (/) 用于表示 Container[=43] 的根=].所以请注意在this example from the book中,使用(/)时没有myApp

但是当他们转发请求(而不是使用response.sendRedirect)时,他们指定(/)。注意这张图中他们写/result.jsp的部分:

我现在有点困惑。我有一个名为 myApp 的项目。在里面我有 index.html, servlet.classresult.jsp.

最后我在浏览器中得到的是http://localhost:8080/myApp/result.jsp. But while reading link I provided at the top, it should be http://localhost:8080/result.jsp. Because as I said (and so did the link), forward slash (/) represents root of container. And root is http://localhost:8080 and not http://localhost:8080/myApp.

最奇怪的是它可以双向工作——如果我输入 result.jsp/result.jsp.有人可以清除这个吗,因为它让我很痛苦:)

我最困惑的是 /result.jsp 是如何工作的,当它应该把我们带到 http://localhost:8080/result.jsp 而我的 result.jspinside myApp 而不是技术上在 Container 里面。

根据 documentation

If the path begins with a "/" it is interpreted as relative to the current context root.

所以路径是相对于你的上下文根的,而不是你的整个应用程序服务器。