【问题标题】:Rendering css and js in a Java web application using servlet使用 servlet 在 Java Web 应用程序中渲染 css 和 js
【发布时间】:2020-01-10 22:57:47
【问题描述】:

project structure

在 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> &#47;post&#47;MIS&#47;assets&#47;css&#47;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


【解决方案1】:

通过分析您的错误,

HTTP 状态 404 – 未找到 ****** /post/MIS/assets/css/contracts-list.jsp

我遇到了你的问题,
1. 您没有阅读您的 intellij 服务器发送的错误消息。
2. URL有两个错误。 一种。上下文路径 /post/MIS 但它应该是 /MIS 湾。 assets/css/contract-list.jsp,我猜你在包含 JSP(转发到 JSP 或重定向到 JSP)时犯了错误。

您的 404 错误与 css 路径无关。在您的 jsp 加载后加载 css 和 js 文件。主条目只有 404。修复包括 contract-list.jsp,其余的东西肯定会工作。

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2016-09-28
    • 1970-01-01
    • 2018-12-17
    • 2011-04-25
    相关资源
    最近更新 更多