当我有一个转发到 JSP 的 servlet 时,我在加载 CSS 和图像以及创建到其他页面的链接方面遇到了麻烦。具体来说,当我将我的 <welcome-file>
设置为 index.jsp
时,正在加载 CSS 并显示我的图像。但是,如果我设置我的 <welcome-file>
到 HomeServlet
转发控制到 index.jsp
,CSS 没有被应用,我的图像没有被显示。
我的 CSS 文件在 web/styles/default.css
中。
我的照片在 web/images/
里。
我这样链接我的 CSS:
<link href="styles/default.css" rel="stylesheet" type="text/css" />
我将我的图像显示如下:
<img src="images/image1.png" alt="Image1" />
这个问题是如何引起的,我该如何解决?
更新1 : 我已经添加了应用程序的结构,以及一些可能有帮助的其他信息。
header.jsp
文件是包含 CSS 的 link 标记的文件。在 web.xml
中,HomeServlet
被设置为我的 welcome-file
:
<welcome-file-list>
<welcome-file>HomeServlet</welcome-file>
</welcome-file-list>
Servlet 在 web.xml
中的声明和映射如下:
<servlet>
<servlet-name>HomeServlet</servlet-name>
<servlet-class>com.brianblog.frontend.HomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
更新2 : 我最终发现了问题-我的 servlet 映射错误。显然,当把 Servlet 设置为 <welcome-file>
时,它不能有 /
的 URL 模式,我觉得这有点奇怪,因为这不是代表站点的根目录吗?
新的地图如下:
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/HomeServlet</url-pattern>
</servlet-mapping>