如何在Tomcat上的Web应用程序中提供静态文件

2022-09-02 12:47:06

我在eclipse中有这个基于servlet的Web应用程序项目,并希望附加一些html标签,如.<script src="Chart.js">

文件夹结构为:

  • C:/apache-tomcat-7.0.53/
  • 我的工作区位于 D:/.中。/../workplace/CpdApplication/src/cpd/MyServlet.java
  • cpd 包含:MyServlet.java、Chart.js 和其他文件。
  • CpdApplication/WebContent/META-INF/web.xml

我有一些路径问题,我无法解决它们,我一遍又一遍地搜索,仍然无法正常工作,我得到了一个404(未找到)。http://localhost:8080/CpdApplication/Chart.js

问题是当我想追加时,Tomcat无法解析静态文件。<script src='Chart.js'></script>Chart.js


答案 1

我有一些路径问题,我无法解决它们,我一遍又一遍地搜索,但仍然无法正常工作,我得到了一个404(未找到).../CpdApplication/Chart.js

事实上,在编写时,你是在告诉浏览器发出自己的、单独的HTTP请求来获取JavaScript文件。为此,请执行以下操作:<script src="/Chart.js"/>

  • Servlet 容器需要能够提供静态文件
  • 为此,您需要在Web内部有一个servlet映射.xml来提供静态文件(即默认的servlet)。

这应该可以:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/js/*</url-pattern>
</servlet-mapping>

然后把你的放在下面的文件夹中:它应该工作。Chart.jsWebContent/js/

编辑:当然,您需要更新HTML中的标签。此外,请确保重新部署 Web 应用以更新 servlet 容器(我推测是 Tomcat)上的 web.xml。<script>


答案 2

这对我有用。谢谢 沖原ハーベスト

欢迎.jsp

  <head>
    <script src="resources/js/jsx/browser.min.js"></script>
    <script src="resources/js/react/react.min.js"></script>
    <script src="resources/js/react/react-dom.min.js"></script>
    <script src="resources/js/main.js"></script>
    <link rel="stylesheet" type="text/css" href="resources/css/style.css">
  </head>

文件层次结构树

enter image description here

网.xml

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/resources/*</url-pattern>
</servlet-mapping>

推荐