工作和重复工作
除了分离表示和内容外另一个衡量表示技术的可用性的指标是能够消除多少重复的工作表示和内容的分离也促使内容开发人员之间的角色分离程序员可以关注上例所示的原始内容而图形设计师或网络管理员则关注表示然而在获得图形设计师设计的表示(或标记)并将它应用到程序员代码提供的内容中时角色之间仍然有一定重复
在最简单的情况下设计师提供标记而开发人员提供代码并把标记插入到表示技术中应用程序被 启动内容魔术般地变成了用户界面当然我们都知道开发远远没有结束接下来要重新修订版本修改界面还必须添加新的业务规则这能真正考验表示技术的灵活性虽然很容易更新插入到表示层的原始内容但是图形设计师很少能够轻松地编辑他们的初始工作经常要修改表示层(我们常常按照销售部门的 指使 进行修改)因此问题产生了设计师要修改哪些内容来调整他们的工作?是他们提供给开发人员的原始标记语言页面吗?也许不是因为这个页面很可能插入了自定义标记或代码(JSP 页面模板引擎)被转换为一个 Java servlet或修改为完全无法识别的内容
设计师通常需要重新设计页面并重新将其提交给开发人员然后再由开发人员将页面重新转换为特定的格式以供表示技术使用或者设计师必须学习一种脚本编制语言或至少知道开发人员提供的页面源代码中哪部分是违规的当然这种方法容易出错并且使用起来不安全当您了解到某种表示技术允许清晰地分离内容和表示后您应该确保将修改表示层所需的重复工作减至最小
JSP 技术的承诺
现在让我们具体看一下 JSP 编码JSP 技术承诺为设计师和开发人员提供他们所需的惟一表示技术JSP 技术是 JEE 平台的一部分这充分展示了 Sun 为其 Java 产品提供的强大支持为了使您了解这个解决方案的流行程度请尝试在 amazoncom 中搜索一下 JSP您将发现大量与 JSP 技术有关的书籍它会远远超过任何单独一种 Java API在详细探讨 JSP 技术引发的具体问题之前您应该清楚地了解这种技术的承诺
内容和表示
首先JSP 技术与内容和表示的分离有关是 Sun 发布的有关 JSP 页面的最主要目标实际上一些代码开发人员抱怨将 outprintln(﹤HTML﹥﹤HEAD﹥﹤TITLE﹥ + pageInfogetTitle() + ﹤/TITLE﹥﹤/HEAD﹥) 键入到 servlet这直接导致了 JSP 的设计在硬编码内容中混入运行时变量加重了 servlet 开发人员的负担并且使开发人员更加难对表示层进行修改即使非常小的修改也是如此
JSP 技术解决了这个问题它允许在运行时将普通的 HTML 页面(后来还包括 WHM 或其他标记语言)编译到 Java servlet 中实际上效仿了 outprintln() 范例而不需要开发人员编写代码它允许您将变量插入到在运行时才进行解释的页面
在一个 JSP 页面中清单 所示的 HTML 片段应该类似清单 中的示例
﹤%@ page import=
com
ibm
display
PageUtils
%﹥
﹤%@ page import=comibmdisplayPageInfo %﹥
﹤%
PageInfo pageInfo = (PageInfo)sessiongetAttribute(PAGE_DATA)
%﹥
﹤HTML﹥
﹤HEAD﹥
﹤TITLE﹥
﹤%=pageInfogetTitle()%﹥
﹤/TITLE﹥
﹤/HEAD﹥
﹤BODY﹥
﹤! Other HTML content ﹥
﹤/BODY﹥
﹤/HTML﹥
根据最初的原则判断JSP 技术(至少在其说明的设计中)可以满足表示技术的基本原则正如上面概况的一样内容与表示分离
代码和标记
JSP 技术特性列表上的第二项可能会出现一些问题JSP 代码可以让您将 Java 代码直接插入到标记页面在开发 JSP 规范时Microsoft Active Server Pages (ASP) 大获成功因此 Sun 与 Microsoft 之间的竞争空前激烈这导致了这个决策的产生JavaServer Pages 的名称与 Active Server Pages 类似并非偶然并且对众多 API 特性的模仿也是蓄意而为因此 JSP 创建者需要能够将 Java 代码添加到他们的标记中
[] [] [] [] [] []