对于企业级应用来说,WEB浏览器改变了很多,如:不再需要安装客户端软件,采用通用的UI以及简易统一的接入方法。也更加容易建立WEB应用。
WEB服务器的工作是:解释请求方的URL,并调用服务器端应用程序来处理这些请求消息。
构建WEB服务器上应用程序的方法主要有两种:一种是使用脚本,另一种便是使用服务器页面。
脚本形式是一个程序,通常,调用函数或方法来处理HTTP的请求调用。脚本可以分解为多个子程序,还可以创建和使用其他服务。通过检查HTTP请求对象,可以从网页中获得数据。在另外一些平台(如java servlet),通过为开发人员解析来获得数据,它允许开发人员通过关键字接口从请求中获得信息。WEB服务器方的输出同样是一个字符串----响应,脚本通过程序语言中的Write stream操作输出这个字符串。
通过流的方式来编写HTML的响应对于开发者而言很不方便,对于非开发者就更不可能。那么这种情况下,就产生了服务器页面的思想,也就是HTML网页技术的使用。在服务器页面中,把程序和返回的文本页组合在一起,可以在HTML中编写返回页面,并且把脚本代码插入其中,也就构成了类似于JSP,PHT,ASP等动态页面技术。
脚本方式非常适合于解释请求信息,而服务器页面非常适合于格式化应答信息。这种思想首次出现是在使用MVC模式的用户界面中。
模型-视图-控制器,简写(mvc),在这个模式中,模型主要负责领域逻辑,视图给予模型创建应答消息,控制器来处理请求信息。
一条请求消息进入输入控制器,输入控制器从中取得信息,它把业务逻辑传递给一个合适的模型对象。这个模型对象和数据源交互,并且按照请求消息的要求进行处理,应答并收集信息。做完这些后,它再把控制权交给输入控制器,输入控制器察看结果并决定采用什么样的视图来显示应答消息。输入控制器不是直接传递给视图,通常,这是一个包括把数据放在某种HTTP会话对象中合适位置的过程,该会话在输入控制器和视图之间共享。
MVC最大的好处就在于它能保证模型和WEB表现层的完全分离。这让我们修改表现层以及加入其它表现层都会很容易。将处理过程放到分离的事务脚本或分离的领域模型对象中,会让我们对它们更加容易测试。
在很多系统中,许多用户界面设计通过应用控制器来作为对象的中间过渡层来分离表现层对象(页面展示的对象)和领域对象。应用控制器的目的就是处理应用程序的流程,并决定视图应该按什么次序出现。它可能是表现层的一部分,也可以作为一个表现层和领域层之间的中间隔离层。应用控制器可能独立于任何特定的表现层,可以在表现层之间重复使用。
视图模式:
视图这块,可以考虑三种模式:转换视图、模板视图和两步视图。
模板视图允许你在网页的结构中编写表现层,并可以在网页中嵌入标签,用以指明网页中的动态内容需要导向哪里。很多平台均基于这种模式,如:PHP,JSP,ASP等。它们通常允许你在网页中输入程序语言代码。功能强大、灵活度高,但是很容易导致代码上的混乱以至于难以维护。解决方法是:在使用服务器页面技术时,必须非常小心使程序的逻辑独立于网页的结构。