【问题标题】:Location of raw resources in Tomcat webapp [duplicate]Tomcat webapp中原始资源的位置[重复]
【发布时间】:2016-06-25 12:59:25
【问题描述】:

我正在开发一个jsp+servlet应用,打包到war,部署到tomcat 8。

我知道 WEB-INF 是存储不提供服务的文件的文件夹,仅在服务器端处理:如 html 或 jsp 片段等。 我需要存储一些xml。 Servlet 在处理请求时会读取这些 xml。

问题是:

我应该将这些 xml 存储在同一个 WEB-INF 文件夹中吗?或者有什么特别的地方吗?我不想这样做非常反模式。

【问题讨论】:

    标签: java jsp tomcat servlets


    【解决方案1】:

    如果你使用的是 maven,你可以把你的 XML 文件放在 src/main/resources 中。打包为 WAR 时,它们将被放置在 WAR 的 WEB-INF/classes 文件夹中,例如

    src/main/resources/settings.xml
    

    将被打包到:

    WEB-INF/classes/settings.xml
    

    这样您就可以使用例如读取文件:

    MyServlet.class.getResourceAsStream("/settings.xml");
    

    一旦部署到 tomcat 并解包,您可以根据需要编辑/更新 WEB-INF/classes 文件夹中的 settings.xml。请注意,/WEB-INF/classes 文件夹是类路径的根目录。

    【讨论】:

      【解决方案2】:

      放到WEB-INF/中,在ServletContext对象上使用getResourceAsStream()方法,例如

      servletContext.getResourceAsStream("/WEB-INF/myfile");

      您如何获得对 ServletContext 的引用取决于您的应用程序...您想从 Servlet 还是从 JSP 中进行?

      请看这里:Howto load a resource from WEB-INF directory of a web archive

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        相关资源
        最近更新 更多