Top
  1. Servlet基础

1. Servlet基础

1.1. Web应用的演变

1.1.1. 单机程序

软件从附着于电脑硬件之日起,就在不断的进行着自我完善和演变。从其使用模式的角度出发,可以简单分为单机程序和网络程序。发展到今时今日仍有大量的不依赖网络的单机程序被我们使用,如记事本、Excel、PPT、ZIP压缩等软件都是大家熟知的装机必备软件。

1.1.2. 网络程序

当电脑越来越多的参与到日常生产生活中,单机程序已经不能满足企业的需要。企业级应用要求能够最大程度的让更多的客户端参与到协同办公之中,所以依赖于网络的程序开始大力发展起来。最早的网络程序是基于主机+终端模式的,也就是整个应用中只有一台大型主机,各个操作地点都是使用一条专线与主机相连,终端不提供任何运算和界面,类似于Unix形式,所有的运算和处理都由主机来完成。主机一般处理能力非常强大,并且稳定,主要机型都是由IBM这样的大公司提供。但主机的高昂的价格以及扩展难、维护费用高等弊端并不是一般企业所能承受,所以除银行、航空订票、证券等大企业在使用以外,大多数企业开始转投CS架构的程序,即客户端服务器架构。

1.1.3. 网络程序-CS架构

CS架构的发展过程经历了两层CS架构,三层CS架构以及多层CS架构的演变。

两层的CS架构是由客户端和后面的数据库组成的。数据库用于存放数据,并且使用数据库编程语言编写业务逻辑,客户端则使用VB、VC、Delphi这样的可视化编程方便的语言来开发客户端的输入输出界面。用户通过界面向服务器发送请求,服务器发回的数据则通过界面进行显示,服务器的角色就由数据库来充当。这样做的好处就是开发效率高,满足企业需求。但是这种架构存在着很大的弊端,第一是可移植性差,如当数据库从SQL Server更换为Oracle时就必须将业务逻辑用新的语言再重新编写一遍;第二则是大型系统做不了,因为客户端与数据库需要建立持续的连接,而数据库能够支持的最大连接数是有限制的。所以在2000年这样的架构流行之后,慢慢的就开始向三层CS架构转变。

三层的CS架构指的是客户端+应用服务器+数据库,即将混合在数据库端的业务逻辑从中分离出来,放入到应用服务器中,数据库只负责数据的管理、存储及检索。客户端负责界面。三层之中的应用服务器其实也是程序,类似于前面讲过的TCP、Socket编程,任何支持TCP编程的语言都可以作为应用服务器。三层CS架构的工作流程如图 – 1 所示。

图- 1

用户通过GUI(图形用户界面)进行操作,然后调用客户端的通信模块,通信模块依据自定义协议将请求数据打包,通过网络发送该请求,到达应用服务器时,应用服务器同样也有一个通信模块,将收到的数据包按照协议进行拆包,调用相应的业务处理模块,处理数据,其中可能需要访问数据库来完成数据的获取,将处理完的结果再次发送给通信模块,通信模块将结果按照自定义协议进行打包,然后将数据包发送给客户端的通信模块,客户端进行拆包获取响应数据,将结果显示在界面上,更新界面上的数据显示。

这样的程序结构虽然在一定程度上降低了对数据库编程的依赖,并且能够适应大型的应用程序,但数据通信模块的增加却提升了开发的难度以及整体架构的复杂度。

1.1.4. 网络程序-BS架构

为了降低三层CS架构