首页 > 解决方案 > url中以“/”结尾的作用是什么?

问题描述

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

要么login.jsp通过在以下实现中执行的转发来显示页面Servlet.Filter

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设置正确/预期的地址,以便用户可以添加或省略“/”并仍然到达具有相同功能的相同位置?

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

标签: jspservletsservlet-filters

解决方案


我发现的一篇文章中,看起来一个文件夹可以用“/”结尾,也可以不用。这不是一个固定的情况。最重要的是要保持一致。

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


推荐阅读