- Java Web开发从初学到精通
- 方振宇等编著
- 1818字
- 2020-08-27 02:03:02
1.1 B/S模式与C/S模式
什么是B/S?什么是C/S?为什么需要使用Java 来开发Web应用?本节通过对两种模式的介绍和比较,来说明用B/S模式的优势,以及为什么要用Java来开发Web应用程序。
1.1.1 C/S模式
C/S模式(Client/Server)就是客户端与服务器结构,当客户端提交请求时服务器给予响应。该模式可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,这就降低了系统的通信开销。C/S模式的流程图如图1.1所示。
图1.1 C/S模型图
C/S模型既然流行了这么久,自然有其特点:
(1)服务器运行负荷较轻。该模型是基于“胖客户端”的模式,也就是把任务分配给客户端和服务器端。当服务器端被启动后,就时刻等待响应客户端程序发来的请求;当运行在个人电脑上的客户端程序需要服务器提供数据或服务时,就会自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,然后送回结果。
(2)界面容易实现。C/S 模型可以充分利用系统资源,因为客户端是基于操作系统的应用程序,所以可以利用一些系统控件(如字体对话框、颜色对话框等)。VB 和 Delphi等一些可视化编程可以轻松地实现窗体设计。
任何事物都有两面性,C/S 在网络不这么发达的时候,优势比较明显。但随着网络的发展,其缺点也显露出来:
(1)应用受到限制。无论是Client端还是Server端,都需要特定的软件支持,客户端需要一定的软件平台的限制。比如:用户可能用的是不同的操作系统如Windows、Linux,这样就要给不同的平台开发不同的客户端。如果用Java之类的面向对象开发语言,可以调用系统控件的优势就不存在了,而且Java在图形化(GUI)编程方面不是太方便。
(2)不易维护。首先,服务器端的程序与客户端的程序都需要维护,如果软件需要升级,会带来更大麻烦,尤其是不同的操作平台(如Windows)可能会有一些系统漏洞。其次,在库户端和服务器端保持数据的同步需要保持网络的实时连接,增加了系统开销。
(3)不利于使用。在安装过客户端的电脑上才可以使用,不能直接调用服务器的程序。这一点现在不好理解,待读者学习完B/S模式后就会一目了然。
1.1.2 B/S模式
B/S模式(Browser/Server)也就是通过浏览器来访问服务器,如图1.2所示。用户可以在互联网的任何一个角落,甚至可以是个无线终端(PDA 等)。B/S 模式所用的业务逻辑及数据支持都在服务器上,当用户通过页面提出请求时,服务器及时响应,并把运行后的数据及时送回。
图1.2 B/S模型图
B/S模型的优势:
(1)易于维护。基于B/S模型的系统当需要升级或维护时,只需修改服务器程序即可。
(2)易于实现。B/S模型的表现层可以用制作网页的HTML(超文本标记语言)来实现,浏览器和网页设计技术已经相当成熟。而且用Java技术开发的Web系统可以安装在任意一种服务器系统平台上,也就是常说的具有跨平台性。
(3)使用方便。无论客户在什么地方,只要服务器正在运行,客户就能通过网络进行连接,实现对数据的访问和操作。
B/S 模型的不利因素:增加了服务器的压力。把业务实现都放在服务器上,当有大量的用户访问时,势必给服务带来很大的负担,更有可能造成系统崩溃,所以一定要做好系统数据的备份。
1.1.3 Java Web开发的优势
通过前面对B/S模型和C/S模型的对比可以知道,B/S模型的优点能够解决C/S模型的不足,同时随着计算机硬件的不断发展和网络技术的提高,弥补了B/S模型给服务器增加了压力的这个缺陷。正是因为这样,基于B/S模型的系统模式成为系统开发的主要趋势。
Java Web是指用Java技术进行基于B/S模式的Web应用系统开发。这样的系统具有Java的基本特性:
面向对象。现实世界中的任何实体都可以作为对象,对象之间通过消息相互作用。另一方面,现实世界中的任何实体都可以属于某类事物,任何对象都是某一类事物的实例(具体化)。传统的过程编程语言以过程为中心、以算法为驱动,面向对象的编程语言则以对象为中心、以消息为驱动。所有面向对象编程都支持三个概念:封装、多态和继承。
可移植性强:编译成字节码文件的Java程序,可以运行在任何Java版本的虚拟机上。同时,HTML(超文本标记语言)是通过浏览器解释执行的,所以,用 Java开发的系统可以运行在任何操作系统平台上。
安全性能高。在任何一台机器上运行Java程序,必须拥有相应的权限。Java安全模型是沙箱模型,运行在JVM上。Java的安全性有下列三个方面保证:语言特性(数组的边界检查、类型转换、引用替代了指针)、资源控制(本地文件系统访问、连接访问网络等)、代码检验(通过数字签名来确认代码源及源代码是否完整)。
并发性。Java的多线程技术允许多个线程并发执行。
除了上述原因以外,Sun和IBM及一些开源社区的技术,使得Java这门技术飞速发展,在Web开发中的应用更是丰富多彩。