【问题标题】:What is role of ending "/" in url? [duplicate]url中以“/”结尾的作用是什么? [复制]
【发布时间】:2021-06-02 15:40:18
【问题描述】:

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

  • localhost:8080/MyProject/admin
  • localhost:8080/MyProject/admin/

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

RequestDispatcher dispatcher = request.getRequestDispatcher("/admin/login.jsp");
dispatcher.forward(request, response);

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

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

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

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

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

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

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

【问题讨论】:

  • 在回答问题关闭时——我很好奇链接的问题是如何相关的。该问题及其解决方案涉及前缀斜杠,而我的情况涉及后缀斜杠。我错过了什么?

标签: jsp servlets servlet-filters


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2019-01-31
    • 2011-05-10
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多