【问题标题】:Java EE Application Directory Best Practice QuestionJava EE 应用程序目录最佳实践问题
【发布时间】:2011-05-08 08:09:45
【问题描述】:

我是 Java EE 的新手,刚刚熟悉了传统的应用程序目录结构(包括 BUILD、DIST、NBPROJECT、SRC 和 WEB 文件夹)。我想知道:如果我的应用程序需要在服务器上使用一些资源/资产(例如图像或 pdf),我应该将这些资源放在上面列出的 5 个文件夹中的哪个文件夹中?我认为我可以在技术上将它们放在任何地方,只要我正确引用文件,但不确定常见的最佳做法是什么。

【问题讨论】:

    标签: java web-applications netbeans


    【解决方案1】:

    您通常会包含静态内容,例如需要通过 WebContent 中的 http 请求读取的图像或 PDF,例如如果 my-web 是您的 WAR 项目:

    my-web/WebContent/images
    my-web/WebContent/scripts
    my-web/WebContent/misc
    

    这意味着您可以使用例如:

    /my-web/images/bob.jpg
    /my-web/scripts/bob.js
    /my-web/misc/bob.pdf
    

    在此处存储文件允许公共访问。我会从Eclipse help pages引用这个:

    Web 内容文件夹代表 WAR 文件的内容 部署到服务器。任何文件不 在 Web 内容文件夹下是 考虑开发时间资源 (例如,.java 文件、.sql 文件、 和 .mif 文件),并且未部署 当项目进行单元测试或 已发布。

    【讨论】:

    • 我正在使用 Netbeans,但没有看到 WebContent 文件夹。我需要创建一个吗?我在 WEB 目录中看到的只有 META-INF、WEB-INF 和 index.jsp
    • 我不是 NetBeans 用户。但我相信你在 Web Pages 文件夹中添加了文件夹和静态内容。所以你可能有 MyWebProject/WEB-INF。将文件添加到 MyWebProject/images、MyWebProject/scripts、MyWebProject/misc。 NetBeans 可能会显示一个名为“Web Pages”的文件夹,因此请将您的文件夹和内容放入其中。
    • 哥们!谢谢..出于好奇,刚刚意识到在 DIST 和 WEB 目录中,当前存在的内容是相同的。这是什么原因?
    • 我不是 100% 确定 - DIST 是输出文件复制到的目录(因此 WEB 保存主目录,而 DIST 只是一个副本)。也许您可以查看文件系统来解决这个问题。
    【解决方案2】:

    在决定将资产放置在何处之前,您需要考虑如何将资产交付给客户。客户端使用单独的 HTTP 调用检索诸如 ccs 和静态 html 页面之类的资源,因此它们需要位于可访问的位置。在您的情况下,我会说它们必须处于 index.jsp 级别,或者位于该级别的子目录中。如果将它们放在WEB-INF 中,它们将无法从外部世界访问。您可以可能将它们放在 META-INF 中,但该目录的使用不寻常。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2011-02-18
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多