【发布时间】: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