java编程思想_对象导论_0104

1.13.2客户端编程

Web最初的“服务器-浏览器”设计是为了能够提供交互性的内容,但是其交互性完全由服务器提供。

服务器产生静态页面,提供给只能解释并显式它们的客户端浏览器。

基本的HTML包含有简单的数据收集机制:文本输入框,复选框,单选框,列表和下拉列表以及按钮。

它只能被编程来实现复位表单上的数据或提交表单上的数据给服务器。这种提交动作通过所有的Web服务器都提供的通用网关接口(CGI)传递。提交内容会告诉CGI应该如何处理它。

最常见的动作就是运行一个在服务器中常被命名为“cgi-bin"的目录下的一个程序。几乎所有的语言都可以用来编写这些程序,Perl已经成为最常见的选择,Python更强大且更简单。

构建于CGI上的网站会变得过于复杂而难以维护,响应时间过长。

问题的解决方法就是客户端编程。

Web浏览器能用来执行任何它可以完成的工作,使得返回给用户的结果更加迅捷。使网站更具有交互性。

1.插件

程序员可以下载一段代码,并将其插入到浏览器中适当的位置,以此来为浏览器添加新功能。

它告诉浏览器:从现在开始,你可以采取这个新行动了(只需要下载一次插件即可)。

插件对于客户端编程的价值在于:它允许专家级的程序员不需经过浏览器生产厂商的许可,就可以开发某种语言扩展,并将它们添加到服务器中。

2.脚本语言

通过使用某种脚本语言,你可以将客户端程序的源代码直接嵌入到HTML页面中,解释这种语言的插件在HTML页面被显示时自动激活。

脚本语言先天就易于理解,因为它们只是作为HTML页面一部分的简单文本,当服务器受到要获取该页面的请求时,它们可以被快速加载。

缺点是代码会暴露给任何人去浏览(或窃取)。但是,通常不会使用脚本语言去做相当复杂的事情,所以这个缺点并不太严重。

JavaScript,在Web浏览器不需要任何插件的情况下就可以得到支持。

大多数浏览器以彼此相异的方式来实现对JavaScript的支持,你必须以JavaScript的某种最小公分母形式来编程,以使得你的程序可以在所有的浏览器上运行。

JavaScript的错误处理的调试只能一团糟来形容。

在web浏览器内部使用的脚本语言总是被用来解决特定类型的问题,主要用来创建更丰富,更具有交互性的图形化用户界面(GUI)。

脚本语言可以解决客户端编程中所遇到的百分之八十的问题。

3.Java

剩下那百分之二十,用Java处理。

Java是通过applet以及使用Java Web Start来进行客户端编程的。

applet是只在Web浏览器中运行的小程序,作为网页的一部分而自动下载的。

当applet被激活时,它便开始执行一个程序,它提供一种分发软件的方法,一旦用户需要客户端软件时,就自动从服务器把客户端软件分发给用户。用户获取最新版本的客户端软件时不会产生错误,而且也不需要很麻烦的重新安装过程。Java的这种设计方式,使得程序员只需创建单一的程序,而只要一台计算机有浏览器,且浏览器具有内置的Java解释器(大多数的机器都如此),那么这个程序就可以自动在这台计算机上运行。由于Java是一种成熟的编程语言,所以在提出对服务器的请求之前和之后,可以在客户端尽可能多得做些事情。例如,不必跨网络地发送一张请求表单来检查自己是否填写了错误的日期或其他参数,客户端计算机就可以快速地标出错误数据,而不用等待服务器作出标记并给你传回图片。这不仅立即就获得了高速度和快速的响应能力,而且也降低了网络流浪和服务器负载,从而不会使整个Internet的速度都慢下来。

4.备选方案

Java applet没有达到当初它所吹嘘的境界。Java applet始终没有得到大规模的应用。

在“图形化用户界面”一章中,将看到一种折中的新技术,Macromedis的Flex,它允许你创建基于Flash的与applet相当的应用。

Flash Player在超过98%的web浏览器上都可用,被认为是事实上已经被接受的标准。

Flex使得我们在编程时无需担心浏览器相关性,比JavaScript更具吸引力。是客户端编程值得考虑的备选方案。

5..NET和C#

曾经,Java applet的主要竞争对手是微软的ActiveX,客户端必须运行Windows平台。

.NET平台大致相当于Java虚拟机(JVM,即执行Java程序的软件平台)和Java类库。

C#相当于Java。

.NET的弊端在于微软是否会允许将它完全地移植到其他平台上。

6.Internet与Intranet

当Web技术仅限用于特定公司的信息网络时,它就被称为Intranet(企业内部网)。

Intranet比Internet提供了更高的安全性,因为可以物理地控制对公司内部服务器的访问。

1.13.3服务器端编程

1.14总结

过程型语言:数据定义,函数调用。

像了解此类程序的含义,需要通读函数调用和低层概念,以在脑海里建立一个模型。

它们使用的表示术语更加面向计算机而不是你要解决的问题。

OPP,Java程序比过程型程序简单且易于理解。

你看到的只是有关下面两部分内容的定义:用来表示问题空间概念的对象,以及发送给这些对象的消息。

 

posted @ 2022-04-11 22:05  默默的小漠漠  阅读(14)  评论(0)    收藏  举报