一尘不染

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

tomcat

我在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

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


阅读 326

收藏
2020-06-16

共1个答案

一尘不染

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

确实,在编写时,<script src="/Chart.js"/>您是在告诉浏览器进行自己的单独HTTP请求以获取JavaScript文件。为了这个工作:

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

应该这样做:

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

然后将您Chart.js的文件放在以下文件夹中:WebContent/js/它应该可以工作。

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

2020-06-16