【发布时间】:2010-10-20 22:00:02
【问题描述】:
首先让我说我对 Java Web 应用程序完全陌生,所以如果这是一个非常基本的问题,我很抱歉。
我正在编写一个能够让用户登录帐户的应用程序。每个页面的顶部都包含一个信息栏(有点像 GMail 中的顶部栏),其中包含以下内容:
Logged in as <userid> | Settings | Help
由于该部分将出现在每个页面上,因此将这些功能拆分出来对我来说是有意义的,这样我就不会重复我的代码。
我做了一些搜索,发现我可以使用这个:
<jsp:include page="userInfoBar.jsp" flush="true" />
在另一个 JSP 的中间。不过,我的 userSettings.jsp 页面遇到了问题,该页面还从数据库中获取了一些用户详细信息。我不仅在 2 个 JSP 之间复制了一些代码,而且我感觉在网页呈现期间我正在做双倍的工作。
例如(伪代码):
userInfoBar.jsp:
user = getCurrentUser
if ( user ) {
print Logged in as user.userid | Settings | Help
}
userSettings.jsp:
<jsp:include page="userInfoBar.jsp" flush="true" />
user = getCurrentUser
Change settings for user.userid
所以在那个小例子中,getCurrentUser 被调用了两次(我认为,除非 Java 以某种方式对其进行了优化)。
如何避免这种重复工作,但仍将 userInfoBar 与每个 JSP 保持一定程度的分离?
提前致谢!
布赖恩
【问题讨论】: