Tôi đang gặp sự cố khi tải CSS và hình ảnh cũng như tạo liên kết đến các trang khác khi tôi chuyển tiếp một servlet tới JSP. Cụ thể, khi tôi đặt tôi <welcome-file>
đến index.jsp
, CSS đã được nạp và hình ảnh của tôi đang được hiển thị. Tuy nhiên, nếu tôi đặt tôi <welcome-file>
để HomeServlet
đó chuyển tiếp kiểm soát để index.jsp
, CSS chưa được áp dụng và hình ảnh của tôi không được hiển thị.
Tệp CSS của tôi ở trong web/styles/default.css
.
Hình ảnh của tôi có trong web/images/
.
Tôi đang liên kết với CSS của mình như vậy:
<link href="styles/default.css" rel="stylesheet" type="text/css" />
Tôi đang hiển thị hình ảnh của mình như sau:
<img src="images/image1.png" alt="Image1" />
Làm thế nào vấn đề này được gây ra và làm thế nào tôi có thể giải quyết nó?
Cập nhật 1 : Tôi đã thêm cấu trúc của ứng dụng, cũng như một số thông tin khác có thể hữu ích.
Các header.jsp
tập tin là tập tin có chứa các thẻ liên kết cho CSS. Các HomeServlet
được thiết lập như tôi welcome-file
ở web.xml
:
<welcome-file-list>
<welcome-file>HomeServlet</welcome-file>
</welcome-file-list>
Servlet được khai báo và ánh xạ như sau trong 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>
Cập nhật 2 : Cuối cùng tôi đã tìm thấy sự cố - servlet của tôi đã được ánh xạ không chính xác. Rõ ràng khi đặt Servlet làm Servlet của bạn, <welcome-file>
nó không thể có mẫu URL /
, điều mà tôi thấy hơi lạ, vì điều đó không phải là đại diện cho thư mục gốc của trang web?
Ánh xạ mới như sau:
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/HomeServlet</url-pattern>
</servlet-mapping>