我们有一个包含13个模块的大型应用程序。根据客户需求,我们应该能够部署核心模块+客户特定模块。我们正计划将应用分成多次战斗。现在的问题是,我们有一些常见的jsp,例如header.jsp,error.jsp等。有什么方法可以使普通jsp保持在核心战争中,其余战争将能够使用它,或者我必须复制这些jsp在构建过程中的独立战争中。我知道CSS和Javascript文件可以在耳包装的多次战争中共享,但是不确定jsp的用途。
好问题。您将很高兴听到答案是“是”,尽管它很大程度上取决于servlet容器的配置方式。
使用JSTL <c:import>标记完成此操作,该标记具有一个可选context属性,定义为:
<c:import>
context
其他一些本地Web应用程序(从中导入资源)的上下文名称(以/开头)。
假设您已将Webapp A部署在上下文根/A下/B,将Webapp B部署在之下,则A中的JSP可以x.jsp使用以下方法从B中包括:
/A
/B
x.jsp
<c:import context="/B" url="x.jsp"/>
这一切都是非常好的和乐观的,但这必须通过Servlet容器的安全性机制进行,并且可能不允许该操作。例如,在Tomcat中,crossContext必须将属性设置为true。
crossContext
true