我正在尝试按照模块化原则构建一个java Web应用程序,在一个WAR中有一些公共资源(主要是JSP),在另一个WAR中有一些自定义资源。这意味着JSP分散在不同的WAR中。
现在,JavaEE对这种恶作剧感到皱眉,并希望你把所有东西放在一个地方。我目前的解决方法是使用Eclipse触发的Ant脚本将一个WAR的内容复制到另一个中,但这不是一个令人愉快的解决方案(它很脆弱,而且依赖于IDE)。
理想情况下,我希望能够做的是让servlet转发到位于不同WAR中的JSP,并将其部署到其中。这样我可以更自由地组装WAR。但是,RequestDispatcher
似乎不支持此类内容。
另一种可能性是使用<c:import>
,其中 允许从不同的WAR导入资源(有一些警告)。这可能允许我在一个WAR中有一个“钩子”JSP,然后从另一个JSP中拖入所需的JSP。但这有点笨拙,<c:import>
允许它的事实表明底层servlet API也是如此。但是如何通过servlet中的RequestDispatcher
访问该功能?
答案 0 :(得分:6)
您可以通过以下步骤:
获取外国RequestDispatcher
的{{1}}。
在ServletCotnext
集合META-INF/context.xml
(可能是tomcat特定的)