网址中以“/”结尾的作用是什么?

问题描述

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

  • 本地主机:8080/MyProject/admin
  • 本地主机:8080/MyProject/admin/

通过在 >= 的实现中执行的转发导致页面 login.jsp显示

Servlet.Filter

但这两个页面似乎认为它们位于不同的地址。 JSP 页面中有一个 css 文件链接

Requestdispatcher dispatcher = request.getRequestdispatcher("/admin/login.jsp");
dispatcher.forward(request,response);

当我查看两个 URL 的“页面源”时,以下是将鼠标悬停在上述链接上时显示的地址:

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

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

有没有办法让 localhost:8080/MyProject/admin/ 设置正确/预期的地址,以便用户可以添加或省略“/”,并仍然使用相同的功能到达相同的位置?

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

解决方法

an article I found 看来,一个文件夹的地址可以以“/”结尾,也可以不以“/”结尾。这不是一个固定的情况。最重要的是保持一致。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...