Web applications JavaEE应用程序中静态和动态内容的分离

Web applications JavaEE应用程序中静态和动态内容的分离,web-applications,jakarta-ee,distribution,static-content,Web Applications,Jakarta Ee,Distribution,Static Content,我们使用IBM产品,通常使用IBMHTTP服务器(读Apache)作为应用服务器的反向代理。出于性能原因,我们从http服务器提供静态内容(.gif、.jpg、.css、.html等),以减轻应用服务器的负担 到目前为止,我们必须将文件分发到http服务器并手动配置它(最多只能编写自定义脚本)。问题是需要努力保持所有内容同步,尤其是当您需要更新应用程序时 有任何JavaEE产品支持这种“开箱即用”的吗?有没有一种方法可以让application server自动执行此操作,例如在群集配置中,主节

我们使用IBM产品,通常使用IBMHTTP服务器(读Apache)作为应用服务器的反向代理。出于性能原因,我们从http服务器提供静态内容(.gif、.jpg、.css、.html等),以减轻应用服务器的负担

到目前为止,我们必须将文件分发到http服务器并手动配置它(最多只能编写自定义脚本)。问题是需要努力保持所有内容同步,尤其是当您需要更新应用程序时


有任何JavaEE产品支持这种“开箱即用”的吗?有没有一种方法可以让application server自动执行此操作,例如在群集配置中,主节点负责将应用程序分发到其他节点并保持所有内容同步。

我不熟悉IBM产品,但通常的做法是部署应用程序(主要是战争)作为目录而不是war文件,因此您可以访问文件本身。然后,将部署目录映射到apache中的别名,这样它就可以从那里提供静态内容。注意,您需要阻止对WEB-INF目录的所有访问,并将所有请求路由到jsp文件(.jsp、.jsf、.do、.action等)到应用程序服务器

阻止WEB-INF是使用以下指令完成的:

<DirectoryMatch "(WEB-INF|META-INF)">  
  Order allow,deny 
  Deny from all 
  AllowOverride None 
</DirectoryMatch>

命令允许,拒绝
全盘否定
不允许超限
到目前为止,我们必须将文件分发到http服务器并手动配置它(最多只能编写自定义脚本)

我不确定我是否得到了配置部分。通常很容易将静态内容与JSP和Servlet区分开来(一旦完成,就不会有太大的变化)

问题在于保持一切同步所需的努力,尤其是当你需要更新应用程序时

自动化!使用(或者,但这需要更多的工作),很容易从web项目中创建单独的程序集来处理这个问题:JavaEE节点的WAR,HTTP服务器的静态内容压缩

有任何JavaEE产品支持这种“开箱即用”的吗

当然不是。令人惊讶的是,部署是JavaEE的薄弱环节。但是,使用Maven和/或之类的工具,您可以达到相当高的自动化水平