【问题标题】:JSP deployment without war file没有war文件的JSP部署
【发布时间】:2012-06-12 12:48:03
【问题描述】:

问题是我不想仅仅因为需要对单个 JSP 文件进行更改就替换“war”文件中包含的整个 Web 应用程序。那么是否可以将 JSP 页面部署到 Web 服务器上而不将其打包到“war”文件中?如果是这样,那么可以在哪些 Web 服务器上完成(以及如何)?


实际上,我正在寻找像经典 ASP 或 PHP 这样的解决方案。在这些环境中,不需要特定的 XML 配置文件,也不需要将它们打包在扩展为目录的 WAR 文件中。如果我要更改单个 ASP/PHP 页面,那么我只需将其上传到 Web 服务器,它们有一个简单的目录布局。用 JSP 可以吗?

【问题讨论】:

    标签: jsp


    【解决方案1】:

    仅当容器被配置为扩展磁盘上的 WAR(大多数默认情况下),那么您可以直接在扩展的 WAR 文件夹中替换文件。如果容器不支持热部署(大多数生产服务器配置不支持,至少如果它们由非常好的服务器管理员管理),那么您还需要重新启动服务器。


    更新:如果您不想使用 WAR 进行部署,而只想手动创建部署文件,则直接在部署文件夹中创建必要的文件夹/文件即可。以 Tomcat 7.0 为例,它是一个 Servlet 3.0 兼容的容器,只需在其 /webapps 文件夹中创建一个新的子文件夹即可。

    Tomcat
     |-- bin
     |-- conf
     |-- lib
     |-- logs
     |-- temp
     |-- webapps
     |    `-- jazz
     |         `-- page.jsp
     `-- work
    

    它将以http://localhost:8080/jazz/page.jsp 的形式提供。

    如果您希望它像 http://localhost:8080/page.jsp 这样位于域根目录上,则将子文件夹重命名为 ROOT(是的,大写)。您可以删除/重命名包含 Tomcat 默认主页的现有主页。

    【讨论】:

    • 您是否知道任何可能允许没有“war”文件的 JSP 的服务器。我希望将流程简化到像 ASP 或 PHP 这样的级别。
    • 它们中的任何一个都默认执行。只需自己在部署文件夹中创建/放置扩展的 WAR 文件结构。只有 hotdeploy 是另一回事,它们中的大多数默认配置为这样做,但在生产中这通常被关闭。例如,在 Tomcat 中,只需在其 /webapps 文件夹中创建一个新的子文件夹,然后将 JSP 直接放入其中。 localhost:8080/subfoldername/some.jsp 提供
    • 我想把图片中的“war”文件和配置文件彻底删除。我希望目录布局非常简单,像 ASP/PHP。
    • 如前所述,自己在deploy文件夹中创建扩展的WAR文件结构即可。这不需要放置 WAR 文件。如果您使用的是与 Servlet 3.0 兼容的容器,则这也不需要 /WEB-INF/web.xml 文件。所以你基本上只需要创建一个子文件夹。
    【解决方案2】:

    大部分网络服务器都支持Hot deployment and dynamic reloading。其中extracts the WAR file within the server working directory。您可以replace your Modified JSP there 在运行时获取纠察队。

    在此处查看不同服务器上的热部署:

    【讨论】:

    • 那么除了“战争”文件之外,没有其他选项可以创建网络应用程序吗?
    • 我没有收到您的评论。您可以找到提取 WAR 的工作目录并将替换您的 JSP 放在那里。注意:这仅在 Web 服务器支持热部署时才有效。顺便问一下,您使用的是哪个 Web 服务器。
    • 我想彻底删除图片中的“战争”文件。我希望目录布局非常简单,如 ASP/PHP。
    猜你喜欢
    • 2019-10-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多