web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来

一、c/s:client/server

1、两层的c/s

特点:使用数据库服务器充当服务器(在数据库编写业务处理逻辑,比如Oracle数据库,可以使用pl/sql来写业务处理逻辑),客户端一般使用vb,vc,dephi这样的语言来开发(客户端主要负责提供操作界面和少量的业务处理逻辑)。

缺点:

a.可移植性差:因为业务逻辑基本上是写在数据库里,当数据库发生了改变,业务处理逻辑基本上要重新写。

b.不适合大型应用:因为客户端跟数据库之间要有一个持续的数据库连接,而数据库的连接有个数的限制。

web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来_第1张图片

2、三层的c/s

特点:数据库只负责存储数据,所有的业务逻辑写在应用服务器(应用服务器需要开发人员去开发,比如用java语言来开发)里面,客户端只负责界面。

优点:

a.可移植性好:数据库发生改变,不影响。应用服务器所在的操作系统发生改变,如果使用java语言来开发应用服务器的话,也不影响。

b.适合开发大型应用:可以通过应用服务器集群,通过负载均衡等技术,减轻数据库的访问压力。

缺点:

a.客户端需要单独安装和调试

b.开发相对比较复杂,比如要自定义协议,需要自己开发客户端与服务器端的通讯处理模块。

web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来_第2张图片

二、b/s:browser/server

特点:客户端使用浏览器,服务器端使用web服务器,客户端与服务器端使用标准化的http协议来进行通信。
优点:
与c/s架构相比,有两个优点:
a,客户端不需要单独安装
b,开发相对简单(因为c/s架构需要自定义协议,开发相应的通信模块,而b/s使用标准化的http协议,浏览器与web服务器都提供了相应的通信模块)。

web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来_第3张图片

整个web通信流程中,browser端和web服务器端的通信接口已经存在,程序员只需实现browser中的GUI(HTML、CSS、JavaScript等技术)和web中的业务处理逻辑(Servlet等),以及采用数据库访问技术(JDBC等)访问数据库即可,这些技术也就是Java Web的基础技术。

三、Servlet由来

sun公司制订的一种用来扩展web服务器功能的组件规范。
    (1)扩展web服务器功能
        早期的web服务器(iis,apache ws等等),只能够处理静态资源的请求(即需要事先将html文件写好并保存到web服务器相应的文件夹下面),不能够处理动态资源的请求(即需要进行计算,然后生成相应的html)。
        a,可以使用cgi程序来扩展。
            cgi程序可以使用c/c++,perl等语言来开发,但是,程序比较复杂,而且可移值性不好,性能也比较差,现在用得不多。
        b,servlet可以扩展这些web服务器的功能。
            浏览器发送请求给web服务器(apache ws),web服务器检查请求是否需要计算,如果需要,web服务器会访问servlet容器,servlet容器会调用servlet来进行计算。

web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来_第4张图片

Servlet容器除了可以运行servlet以外,还可以直接充当一个简单的web服务器,比如tomcat本身是一个servlet容器,也可以直接接受浏览器请求。

    (2)组件规范
        1)什么是组件?
            符合一定规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。
        2)什么是容器?
            符合一定规范,为组件提供运行环境及相应服务的程序。


转载请注明出处:http://blog.csdn.net/daijin888888/article/details/51005932

你可能感兴趣的:(【Java,Web】)