gpt4 book ai didi

java - Servlets:转发到不同 webapp 中的资源

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:57:42 26 4
gpt4 key购买 nike

我正在尝试按照模块化原则构建一个 Java Web 应用程序,在一个 WAR 中使用一些公共(public)资源(主要是 JSP),在另一个 WAR 中使用一些自定义资源。这意味着 JSP 分散在不同的 WAR 中。

现在 JavaEE 不赞成这种恶作剧,并希望您将所有内容放在一个地方。我目前的解决方法是使用一个 Eclipse 触发的 Ant 脚本,它将一个 WAR 的内容复制到另一个,但这不是一个令人愉快的解决方案(它很脆弱并且太依赖 IDE)。

理想情况下,我希望能够将 servlet 转发到位于不同 WAR 中的 JSP,而不是它自己部署的 WAR。这将使我在组装 WAR 时有更大的自由度。然而,RequestDispatcher似乎不支持这样的事情。

另一种可能性是使用 <c:import> ,它确实允许从不同的 WAR 导入资源(有一些注意事项)。这可能允许我在一个 WAR 中有一个“钩子(Hook)”JSP,然后从另一个 WAR 中拖入所需的 JSP。不过,这有点笨拙,事实上 <c:import>允许它表明底层的 servlet API 也可以。但是我如何通过 RequestDispatcher 访问该功能?在 servlet 中?

最佳答案

您可以通过以下步骤:

  • 使用 ServletContext.getContext(contextPath) 获取外部上下文

  • 获取国外ServletCotnextRequestDispatcher

  • META-INF/context.xml 中设置 crossContext="true"(可能是特定于 tomcat 的)

关于java - Servlets:转发到不同 webapp 中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com