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

que*_*326 17 java tomcat servlets

我在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静态文件.

VH-*_*NZZ 16

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

实际上,在编写时,<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>
Run Code Online (Sandbox Code Playgroud)

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

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

  • @VladRadulescu没有魔法(http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html).如果您对此感到满意,请将答案标记为已接受.期待看到你的应用程序在运动! (2认同)

Vah*_*yan 5

这对我有用。谢谢???????

欢迎.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>
Run Code Online (Sandbox Code Playgroud)

文件层次树

在此处输入图片说明

网页.xml

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/resources/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)