JAVA在Internet中的应用 --《JAVA编程思想》04

JAVA目前一直是热门编程语言,它为何拥有如此重要的地位?

不仅仅是因为JAVA拥有跨平台性,它还解决了在万维网(WWW)上的程序设计问题。

我们天天都在浏览各类网站,体会到Web技术带来的便利,那么究竟什么是Web呢?

在此之前,我们先来了解客户机/服务器计算技术,它的核心思想是:系统具有一个中央信息存储池,用来存储某种数据,储存的数据可被修改,根据需要将分发至客户机中。

信息存储池、分发信息的软件以及信息与软件所驻留的机器或机群被总称为服务器。

驻留在用户机器上的软件会与服务器进行通信,以获取信息、处理信息,然后将它们显示出来的机器被称为客户机。

当客户端软件发生变化时,软件会被重新编译、调试并安装到客户机上,如果想支持不同类型的计算机和操作系统,客户端软件的兼容性会让软件开发变得非常复杂。

此外系统的性能问题也不可忽视,当成千上万客户机请求向服务器发出,会加大服务器的响应延迟,为了将延迟最小化,需努力减轻任务处理的负载,尽可能的将任务分散给客户机器处理。

Web相当于一个巨型客户机/服务器系统,所有的服务器和客户机都同时共存于一个网络中。最初的Web不具备交互性,只有一种简单的单向过程,客户机向服务器发送请求,服务器返回一个文件,客户机调用本地机器的格式来解读这个文件。

即使客户机发送的请求中有拼写错误,也要花费数秒甚至数分钟的时间去等待服务器的校验,此时的浏览器还只是一个观察者,甚至最简单的计算任务也不会执行。但从另一方面来说,此时的浏览器是安全的,因为它在本地机器上不执行任何程序,而这些程序中可能会包含病毒。

但很快人们希望浏览器能做更多的事情,而不仅仅是从服务器传获取页面。为了解决这个问题,人们不断完善浏览器功能。首先,图形标准得到了增强,浏览器中可以播放更好的动画和视频,然后在客户端浏览器中引入可运行的程序,赋予其解决问题的能力,这被称为“客户端编程”。

Web最初的“服务器–浏览器”设计能够提供交互性内容,但是其交互性完全由服务器提供。服务器产生静态页面,浏览器解释并显示页面,页面基于HTML(超文本标记语言)构建,它包含简单的数据收集机制:文本输入框、复选框、单选框、列表和下拉式列表以及按钮,通过表单提交数据至Web服务器提供的通用网关接口(CGI)处理。

如今仍有一些网站完全构建于CGI之上,虽然可以通过CGI做任何事情,但基于CGI构建的网站可能会迅速变得复杂而难以维护,并同时产生响应时间过长的问题。

因为GCI程序的响应时间依赖于所必须发送的数据量大小,以及服务器和Internet的负载,此外启动CGI程序也相当慢。Web的最初设计者并没有预见到网络带宽被人们开发的各种应用迅速耗尽。比如:GIF图片需要在服务器端创建每一个图形版本,并发送给客户端;Web表单的数据需要传送至服务器校验。

大多数运行Web浏览器的机器是可以执行大型任务的,但原始的HTML只是闲在那里,等待服务器送来下一个页面。客户端编程希望浏览器可以执行任何工作,使得返回给用户的结果更加迅捷,而且让网站更加具有交互性。

但与传统编程不一样的时,Web浏览器就像一个功能受限的操作系统,需要额外通过其他途径来实现各式各样的需求,通常使用下列方法:

1.插件
通过开发插件(plug-in)来为浏览器添加新功能,插件通常只需下载一次即可,但插件的开发难度高,也不是构建网站必须要做的事情,但它允许专家级程序员不需要经过浏览器厂商的许可,就可以拓展某种开发语言,类似于提供“后门”。

2.脚本语言
插件引发了浏览器脚本语言的开发,脚本语言可以直接嵌入到HTML页面中,解释这种语言的插件会在HTML页面被显示时自动激活。脚本语言具有易于理解的优势,它们被作为HTML页面中的一部分,当服务器收到获取页面的请求时,可以被快速加载出来。不过脚本语言的缺点是会暴漏在客户端中给任何人去浏览,好在脚本语言一般不会去做相当复杂的事情,故这个缺点并不是致命性的。

3.JAVA
JAVA通过applet以及JAVA Web Start 来进行客户端编程。applet是只在web浏览器中运行的小程序,它会作为网页的一部分被自动下载。因每次获取页面都会重新获取applet,故解决了软件更新需要让用户手动更新客户端软件的困扰。

JAVA不仅能在发送Web请求的客户机上运行,也能在接受Web请求的服务器上运行,可以快速的检查参数、标记错误数据,加快了程序的响应能力,也降低了网络流量和服务器负载。但是applet需要JAVA运行环境(JRE),通常需要10MB带宽,这对用户来说太过于奢侈,故JAVA applet 始终没有得到大规模应用。

4.NET和C#
.NET平台大致相当于JAVA虚拟机,提供软件运行平台和类库。C#作为其编程语言,一直是JAVA的有力竞争对手,C#的设计者们看到JAVA在什么方面做得好,什么方面做得不够好而构建的,并且还要具备JAVA的优点,但.net的跨平台移植性和JAVA相比仍有差距。

最后我们回到服务器端编程,虽然Perl、Python、C++等语言编写的GCI程序都极其复杂,但基于JAVA构建的web服务器,可以编写Servlet来实现服务端编程,程序拥有良好的移植性,其衍生物JSP能够编写带逻辑代码的页面也深受开发网站公司的喜爱,故JAVA在WEB领域能一直占据重要的地位。

本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。

若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BaymaxCS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值