JSP技术优缺点深入分析[5]
可移植性和语言锁定
JSP 技术将您锁定到某种特定的语言 这一点不应该给予太多的关注 至少在我看来 Java 技术是企业应用程序的惟一 选择 在这个领域 根本不存在可以独立于语言的解决方案 当然 在这个时候 我没有把 Microsoft NET 平台牵涉进来 只有时间可以告诉我们这个平台是否可以真正独立于语言(我很怀疑这一点)
然而 选择 JSP 技术将强制您使用 Java 语言 至少对于内容和表示是这样的 尽管 CORBA 可以用于业务逻辑 JSP 编码要求必须熟悉 servlet 和核心 Java 语言 因为很多开发人员通过 J EE 平台接触 JSP 编码 因此这通常算不成问题
混合和独立
在本篇文章中 我始终围绕分离内容和表示这一概念 您可能对此已经感到不耐烦 那么现在让我们看看 JSP 究竟能不能实现这个目标 正如我们之前讨论的一样 JSP 宣称 一直致力于实现内容和表示分离 那么我们可以因此认为它实现了目标 是吗?未必如此
内容和表示之间的界限变得模糊
JSP 允许将 Java 代码插入到标记语言页面中 这个非常危险的特性允许将内容混合到表示中 更糟糕的是 业务逻辑通常会进入到 JSP 页面中 如清单 所示
﹤%@ page import= ibm display PageUtils %﹥﹤%@ page import= ibm display PageInfo %﹥﹤%@ page import= ibm logic AdminUtils %﹥﹤%@ page import= ibm people Actor %﹥﹤%@ page import= java util Iterator %﹥﹤%@ page import= java util Vector %﹥﹤%PageInfo pageInfo = (PageInfo)session getAttribute( PAGE_DATA )%﹥﹤HTML﹥﹤HEAD﹥﹤TITLE﹥﹤%=pageInfo getTitle()%﹥﹤/TITLE﹥﹤/HEAD﹥﹤BODY﹥﹤H ALIGN= center ﹥Search Results: Actors﹤/H ﹥﹤CENTER﹥﹤HR width= % ﹥﹤TABLE width= % CELLPADDING= CELLSPACING= border= BGCOLOR= #FFFFCC ﹥﹤%// Based on user s permissions perform search differently (business logic!)Vector actors = pageInfo getActors()if (pageInfo getUserInfo() hasPermission( ADMINISTRATOR )) { actors = AdminUtils getActors(pageInfo getSearchCriteria());} else { actors = pageInfo getActors();}for (Iterator i = actors iterator(); i hasNext()) {Actor actor = (Actor)i next();%﹥ ﹤TR BGCOLOR= #FFCCCC ﹥ ﹤TH width= % ALIGN= center ﹥ ﹤%=actor getLastName()%﹥ ﹤/TH﹥ ﹤TH width= % ALIGN= center ﹥ ﹤%=actor getFirstName()%﹥ ﹤/TH﹥ ﹤/TR﹥﹤%}%﹥﹤/TABLE﹥﹤/CENTER﹥﹤/BODY﹥﹤/HTML﹥lishixinzhi/Article/program/Java/JSP/201311/20763