1.13Java与Internet
谈谈Java为何如此重要,为何促进计算机编程向前迈进革命性的一步?
答案是:Java对于解决传统的单机程序设计问题非常有用,但是它解决了在万维网(WWW)上的程序设计问题。
1.13.1Web是什么
1)C/S技术
系统具有一个中央信息存储池,用来存储某种数据,它通常存在于数据库中,你可以根据需要将它分发给某些人员或机器群。C/S概念的关键在于信息存储池的位置集中于中央,这使得它可以被修改,并且这些修改将被传播给信息消费者。信息存储池、用于分发信息的软件以及信息与软件驻留的机器和机器群被总称为服务器。驻留在用户机器上的软件与服务器进行通信,以获取信息,处理信息,然后将它们显示在被称为客户机的用户机器上。
1>涉及数据库管理系统
2>系统通常允许客户在服务器中插入新的信息。
3>可能在任意时刻都有成百上千的客户向服务器发送请求,所以任何小的延迟都会产生重大影响。
2)Web就是一个巨型服务器
Web实际就是一个巨型客户/服务器系统。
最初只是一种很简单的单向过程:你对某个服务器产生一个请求,然后它返回给你一个文件,你的机器上的浏览器软件根据本地机器的格式来解读这个文体。
Web浏览器向前跨进一步:一段信息不经修改就可以在任意型号的计算机上显示。浏览器并不具备显著的交互性,而且它趋向于使服务器和Internet阻塞。因为浏览器只是一个观察器,因此它甚至不能执行最简单的计算任务。(另一方面,它是安全的,因为浏览器只是一个观测器不会执行任何程序,而这些程序有可能包含Bug和病毒。)
为了解决问题,人们采用了各种不同的方法。首先,图像标准得到了增强,使得在浏览器中可以播放质量更好的动画和视频。剩下的问题通过引入客户端浏览器中运行程序的能力就可以解决。这被称为“客户端编程”。
1.13.2客户端编程
服务器产生静态页面,提供给只能解释并显示它们的客户端浏览器。基本的HTML包含有简单的数据收集机制:文本输入框、复选框、单选框、列表和下拉式列表以及按钮——它只能被编程来实现复位表单上的数据和提交表单上的数据给服务器。这种提交动作通过所以的Web服务器都提供的通用网关接口(CGI)传递。Web的最初设计者们并没有预计到网络带宽被人们开发的各种应用迅速消耗。这个过程不仅慢,而且不太优雅。
问题的解决方法是客户端编程。
1>插件
程序员下载一段代码,并将其插入到浏览器中合适的位置,以此来为浏览器添加新功能。
2>脚本语言
插件引发了脚本语言(Scripting Language)的开发。通过使用某种脚本语言,你可以将客户端程序的源代码直接嵌入到Html页面中,理解这种语言的插件在HTML页面被显示时自动激活。
JavaScript脚本语言在Web浏览器不需要任何插件的情况下就可以得到支持。
脚本语言解决客户端编程的80%问题,还有20%就是Java来解决。
3>Java
Java通过applet以及使用Java Web Start来进行客户端编程。
applet是只在Web浏览器中运行的小程序,它是作为网页的一部分而自动下载的(就像网页加载图片一样)。当applet被激活时,它便开始执行一个程序,这正是它优雅之处,它提供一种分发软件的方法,一旦用户需要客户端软件时,就自动从服务器把客户端软件分发给用户。用户获得最新的客户端软件时不会产生错误,而且也不需要麻烦的重新安装分发给用户。
例如:不必跨网络发送一张请求表单来检查自己是否填写错误,客户端机器就可以做出快速标出错误数据
5>.NET和C#
.NET平台大致相当于Java虚拟机(JVM)和Java类库,而C#毫无疑问与Java有类似之处。
.NET主要受攻击的地方和人们所关心的最重要的问题就是,微软是否会允许将它完全地移植到其他平台上。
6>Internet和Intranet
当Web技术仅限于特定公司的信息网络时,它就被称为Intranet(企业内部网)
1.13.3服务器端编程
当提出对服务器的请求后,会发生什么呢?
大部分时间,请求只是要求“给我发送一个文件”,之后浏览器会以某种适当的形式解释这个文件,例如将其作为HTML页面,图片,Java applet或脚本程序来解释。
更复杂的对服务器的请求通常涉及数据库事物。常见的情形是复杂的数据库搜索请求,然后通过服务器将结果进行格式排版,使其成为一个HTML文件发回给客户端。
它让你用Java编写的被称为serlet的程序来实现服务器端编程。