在不同的Java Web项目之间共享表示逻辑

问题描述:

我们有几个Java Web应用程序,它们用于不同的目的(一个用于公众,一个用于内部管理),但是在同一个数据库上工作。我们将大部分业务和数据库逻辑保存在一个项目中,包含在两个项目中的第三个项目中,这很好。在不同的Java Web项目之间共享表示逻辑

但是,现在我们想要在应用程序之间共享表示逻辑。 (换句话说,我们希望在每个应用程序中出现相同的操作类来控制相同的页面。)

完成此目标的最佳方法是什么? JSP可以存储在jar中并使用吗?两个Web应用程序可以引用常见的jsps吗?两种应用程序共享会话数据的好方法是什么,以便用户可以在应用程序之间来回切换?

下面就可以做,以实现您打算什么:

  1. 创建具有您的应用程序的多个Web/EJB项目共同EAR。因此,所有WebApp都可以驻留在通用的EAR文件中,并且可以使用保持在EAR级别的常见JAR。
  2. 就像一个java项目可以依赖另一个Java项目一样,Web项目也可以依赖于其他Web项目。因此,使用JSP和实用程序类创建一个通用Web项目。将此通用Web项目添加到其他Web项目的构建路径。他们会继承JSP和Java类,并且也可以拥有自己的自定义JSP。

以上内容将为您提供基本框架。 Web Apps没有共享数据的标准方式。如果您希望用户使用普通会话,则可以使用基于SSL或令牌的会话维护。来自一个应用程序的会话数据不能被复制到另一个应用程序,但是您可以将一些逻辑放在一个EJB中,通过将它们以一种干净的方式链接起来,可以从这两个应用程序中调用它们。

您希望在这两个应用程序之间共享表示逻辑和会话数据的事实表明,这两个应用程序应该合并到一个应用程序中,管理员只需拥有比简单用户更多的权限。

+0

大多数应用程序不会共享。我简化了三个以上的应用程序。 – Joe 2012-03-05 14:14:31

我们有类似的问题。我们想在几个项目之间共享JSP。 JSP可以存储在maven war包中的一个基本web项目中。然后,您可以将来自基础项目(JSP,CSS,Javasripts等)的这些资源作为maven依赖项共享,并且您可以覆盖依赖项目中的特定JSP,CSS等。它对我们非常有用,我们不需要在很多项目中修复一个相同的JSP。

有关详细信息,请参阅:maven overlays