java - Eclipse - 如何在没有 web.xml 文件的情况下发布非 Java 资源?

标签 java javascript eclipse tomcat

我的 WebApp 使用 Java 注释将 URL 映射到 servlet (@WebServlet),而我没有 web.xml 文件。我想将请求转发到另一个 HTML 文件,我是这样做的:

request.getRequestDispatcher("/WEB-INF/test/testpage.html").forward(request, response);

它可以工作,但我无法从服务器获取额外的资源(javascript)。

<script type="text/javascript" src="testsuite.js"></script>

testsuite.js位于/WEB-INF/test/testsuite.js,与testpage.html同一个文件夹。请求 testsuite.js 时,我收到 404。如何配置 Tomcat 以在没有 web.xml 的情况下为我的工作树中的所有资源提供服务?最坏的情况我会简单地嵌入 JS。

此外,我让 eclipse 在我的本地计算机上安装 Web 服务器,所以我不知道它们是如何部署的。

最佳答案

您必须将资源移出您的 WEB-INF 文件夹。它是编译后的Java代码、jar、配置文件等的专用文件夹。

出于安全原因,WEB-INF 文件夹在应用程序服务器和 servlet 容器中受到限制,例如对 /appname/WEB-INF/web.xml 的请求当然会被定义。

*.html文件、*.css文件、*.js文件、图片等静态资源应该放在外面WEB-INF 文件夹,在您的情况下,test 文件夹应上移到 WEB-INF 旁边。

关于java - Eclipse - 如何在没有 web.xml 文件的情况下发布非 Java 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601841/

相关文章:

javascript - 在 React.js 中获取数据到状态组件

java - ClassLoader getResourceAsStream 返回 null

java - 如何使用MRUnit Test做Mapper测试?

java - 如何使用BufferedReader一次又一次地读取同一个txt文件?

Java HTTP/HTTPS 代理服务器

java - 如何将资源映射到枚举常量?

java - 如何在 GridLayout 中添加标题

java - 使用比较器时如何排除字符串

javascript - Packery:启用可拖动性和装订线

javascript - 如何使用 HTML 5 Canvas 和 Javascript 找到图像内的彩色标记?