我的 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/