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

时间:2012-03-04 04:21:44

标签: java jsp web-applications

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

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

实现这一目标的最佳方法是什么? JSP可以存储在jar中并使用吗?两个网络应用程序可以引用常见的jsps吗?两个应用程序是否有很好的方式来共享会话数据,以便用户可以在应用程序之间来回切换?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

可以通过以下方式实现您的计划:

  1. 为您的应用程序创建一个具有多个Web / EJB项目的公共EAR。因此,所有WebApp都可以驻留在公共EAR文件中,并且可以使用保持在EAR级别的常用JAR。
  2. 就像java项目可以依赖于另一个Java项目一样,Web项目也可以依赖于其他Web项目。因此,使用JSP和实用程序类创建一个公共Web项目。将此常用Web项目添加到其他Web项目的构建路径中。他们将继承JSP和Java类,并且也可以拥有自定义JSP。
  3. 以上将为您提供基本框架。 Web Apps没有标准的共享数据方式。如果您希望用户使用公共会话,则可以使用基于SSL或令牌的会话维护。来自一个应用程序的会话数据无法复制到另一个应用程序,但您可以在EJB中放置一些逻辑,可以通过以干净的方式链接它们从两个应用程序调用它。

答案 2 :(得分:0)

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

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