http://happyprogram.cnblogs.com/archive/2005/07/18/195219.html
第四章 Web表现层
表现层有很多种具体的表现形式:Web页面、Windows对话框、命令行、手机屏幕等等。作者讨论表现层时,集中于Web表现层。虽然Web应用不会完全替代其他的表形形式,但毫无疑问,它是未来的主流之一。
准备开发一个Web应用,从服务器端软件开始。构建Web服务器上应用程序的方法主要有两种:一种是使用脚本,另一种是使用服务器页面。脚本形式是一个程序,它调用函数或方法来处理HTTP的请求,并将Html结果通过流输出到客户端,这样的例子包括CGI脚步和Java servlet等。服务器页面采用在Html页面中嵌入脚本代码的方式运行,这样的例子包括PHP、ASP和JSP。脚本形式的优点是功能强大,缺点是需要花更多的时间理解和格式化Html输出,这带来更多的工作量;服务器页面的优点是最终输出几乎是所见即所得的,同时带来的缺点是代码散布于页面中,难以维护。BTW,这方面,ASP.NET开发平台很好地结合了两者的优点,在支持所见即所得的前提下,提供后台代码分离,极大地提高了开发的效率。
因为脚本方式非常适合于解释请求消息,服务器页面非常适合于格式化应答消息,所以,应该使用脚本语言来解释请求消息,用服务器页面来格式化应答消息。这种用法的分离事实上是一个老观点,它首次出现在使用模型-视图-控制器的用户界面中。(因为这里的控制器实际上主要是解释和处理用户输入,所以作者更喜欢用“输入控制器”这个术语;当然,控制器还有另外一种理解:处理应用程序流,决定视图应该按照什么次序出现)
在视图方面,可以考虑三种模式:转换视图、模板视图和两步视图。模板视图比较容易理解,就是以设计好的Html页面为模板,在页面中嵌入代码;转换视图最常见的例子是XSLT,由输入控制器挑选合适的XSLT样式表单,然后把它应用在由模型收集的XML上,换句话说,就是根据XSLT将XML运算结果转换为Html页面。转换视图和模板视图都是直接由领域数据生成最终的用户界面,是在一个步骤里完成的,称之为单阶视图。两步视图是将这个过程分为两个阶段:由领域数据产生一个逻辑屏幕,然后再由统一的一个视图产生用户界面。读了好几遍,对两步视图仍然不能很好地理解,主要是找不到现实中的具体应用,两步视图有些什么具体(不是理论)应用呢?希望哪位朋友能够帮忙解释一下。关于两步视图,在此摘录一段书中的原文:
如果Web应用程序提供的服务是由多种前端用户来使用,那么运用两步视图将更加得心应手。例如,多家航空公司后台使用的是相同的基本订票系统。在逻辑屏幕的限制下,每个前端由于使用不同的第二阶段,可以得到不同的外观视图。类似的,还可以使用两步视图来处理不同的输出设备,例如,可以用不同的第二阶段区分Web浏览器或掌上电脑。再有,在两个用户界面之间共享公共的逻辑屏幕也是很有限的,当这两个用户界面差异非常大时,比如在浏览器界面和手机屏幕之间,这种共享基本上不可能。