【发布时间】:2020-01-10 22:57:47
【问题描述】:
在 intellij IDEA 中,我启动了一个新的 Java Web 应用程序,我使用 servlet 来处理 GET 和 POST 请求,现在问题出现在我在 JSP 页面中引入 CSS 和 JS 的地方,它们似乎没有被渲染/拉取从源代码中,当我在浏览器中检查代码并单击 href 或 src 链接时,我被重定向到 servlet 错误页面,并带有此代码
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> /post/MIS/assets/css/contracts-list.jsp</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/8.5.43</h3></body></html>
根据我的研究,我更改了链接
<link href="assets/css/style.css" rel="stylesheet">
到
<link href="${pageContext.request.contextPath}/assets/css/style.css" rel="stylesheet">
但同样的问题(重定向到 servlet 错误页面)仍然存在
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/assets/css/bootstrap.min.css">
<!-- Material Design Bootstrap -->
<link href="${pageContext.request.contextPath}/assets/css/mdb.min.css" rel="stylesheet">
<!-- Your custom styles (optional) -->
<link href="${pageContext.request.contextPath}/assets/css/style.css" rel="stylesheet">
<!-- MDBootstrap Datatables -->
<link href="${pageContext.request.contextPath}/assets/css/addons/datatables.min.css" rel="stylesheet">
<script type="text/javascript" src="${pageContext.request.contextPath}/assets/js/jquery-3.4.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="${pageContext.request.contextPath}/assets/js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="${pageContext.request.contextPath}/assets/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="${pageContext.request.contextPath}/assets/js/mdb.min.js"></script>
<!-- MDBootstrap Datatables -->
<script type="text/javascript" src="${pageContext.request.contextPath}/assets/js/addons/datatables.min.js"></script>
我希望页面呈现链接的 css 和 JS 文件,但这会重定向到 servlet 错误页面
【问题讨论】:
-
根据目前提供的信息,您的问题无法重现。您的问题的原因是您未包含在问题中的其他地方。如果 EL 表达式工作正常,我猜想是一个配置错误的自定义 servlet 或者过滤器错误地接管了默认 servlet 的工作(因为那是负责提供静态资产的那个)。首先,发布所有 servlet/过滤器配置的列表,尤其是 URL 模式。或者,简单地分析和修复自己,将它们全部禁用,然后一一重新激活,直到问题再次出现。
标签: javascript java css jsp servlets