url中结尾“/”的作用是什么?

What is role of ending "/" in url?

我有一个项目,根据教程构建,正在进行中。它在 Tomcat 本地使用 Hibernate 和 Java Servlets服务器。我使用以下两个网址得到了不同的结果:

通过在 Servlet.Filter:

的实现中执行的转发导致显示页面 login.jsp
RequestDispatcher dispatcher = request.getRequestDispatcher("/admin/login.jsp");
dispatcher.forward(request, response);

但这两个页面似乎认为它们位于不同的地址。在 JSP 页面中是 css 文件的 link。

<link rel="stylesheet" href="../css/styles.css">

当我查看这两个 URL 的“页面源代码”时,将鼠标悬停在上述 links 上时会显示以下地址:

localhost:8080/css/styles.css
localhost:8080/MyProject/css/styles.css

因此,styles.css 文件只有在我使用地址 localhost:8080/MyProject/admin/ 时才能找到。

有没有办法让 Servlet.Filter 设置 correct/intended 地址,以便用户可以添加或省略“/”并仍然以相同的功能到达相同的位置?

我在查找与“/”相关的语法信息时遇到问题——希望有一个 link 背景信息或解释。

an article I found 看来,文件夹可以在末尾使用“/”寻址,也可以不使用。这不是一个固定的情况。最主要的是要保持一致。

由于 Servlet 代码可以正确解释末尾带有斜杠的表单,而另一个则不能,因此我得出的结论是最好的计划是坚持使用斜杠版本,并使用301 重定向以处理非斜线情况。