1.13 Java与Internet
如果Java仅仅只是中重多的程序设计语言中的一种,你可能就会问:为什么它如此重要?尽管Java对于解决传统的单机程序设计问题非常有用,但同样重要的是,它解决了在万维网(WWWW)上的程序设计问题。
1.13.1.1客户/服务器计算技术
客户/服务器系统的核心思想是:系统具有一个中央信息存储池(central repository of information),用来存储某种数据,它通常存在于数据库中,你可以根据需要将它分发给某些人员或机器集群。
客户/服务器计算技术的基本概念并不复杂。问题在于你只有单一的服务器,却要同时为多个客户服务。如果客户端软件发生变化,那么它必须被重新编译,调试并安装到客户端机器上,事实证明这比想象的要更加复杂与费力。算起来客户/服务器计算技术大概占了所有程序设计行为的一半。
1.13.1.1 Web就是一台巨型服务器
Web实际上就是一个巨型客户/服务器系统,苏有的服务器和客户机都同时共存于同一个网络中。你索要关心的只是在某一时刻怎样连接到一台服务器上,并与之进行交互。
最初只有一种很简单的单向过程:你对某个服务器产生一个请求,然后它返回给你一个文件,你的机器上的浏览器软件根据本地机器的格式来解读这个文件。
Web浏览器向前跨进了一大步,它包含了这样的概念:一段信息不经过修改就可以在任意幸好的计算机上现实,然而,最初的浏览器仍然相当原始,很快就因为加诸于其上的种种需要而陷入困境。
为了解决这个问题,人们采用了一种方法:通过引入在客户端浏览器中运行程序的能力来解决,这被称为“客户端编程”。
1.13.2 客户端编程
Web最初的“服务器-浏览器”设计是为了能头提供交互性的内容,但是其交互性完全由服务器提供。服务器产生Html(HyperText Markup Language)静态页面交给客户端解释。而服务器端通过CGI(common gateway interface)接收客户端传来的简单表单数据利用Perl,python等语言进行处理。所有的运算处理工作全部都会由服务器端完成,这个过程不仅很慢,而且不太优雅。
问题的解决方法就是客户端编程。客户端编程意味着Web浏览器能用来执行任何它可以完成的工作,使得返回给用户的结果更加迅捷,而且使得你的网站更加具有交互性。客户端编程的问题和方法总结如下:
- 插件:客户端编程所玩出的最重要的一步就是插件( plug-in)的开发。
- 脚本语言:插件引发了浏览器脚本语言(scripting language)的开发。通过使用某种脚本语言,你可以将客户端程序的源代码直接嵌入到HTML页面中,解释这种语言的插件在HTML页面被现实时自动激活。如果你期望有一种脚本语言在Web浏览器不需要任何插件的情况下就可以得到支持,那么非JavaScript莫属。脚本语言主要是用来创建更丰富,更具有交互性的图形化用户界面(graphic user interface GUI)。
- Java:Java是通过applet以及使用Java Web Start来进行客户端编程的。
- 备选方案:但是实际上Java applet始终没有得到大规模应用。作为备选方案,Macromedia的Flex,它允许你创建基于Flash的与applet相当的应用。它远比JavaScript要吸引人得多。
- .NET和C#:.NET平台大致于相当于Java虚拟机和Java类库,而C#毫无疑问与Java有类似指出。目前,.NET主要受攻击的地方和人们所关心的最重要的问题是,微软是否允许将它完全地移植到其他平台上。
- Internet与Intranet:略
1.13.3服务器端编程
前面的讨论忽略了服务器端编程的话题,它是Java已经取得巨大成功的因素之一。当提出对服务器的请求后,会发生什么呢?大部分时间,请求只是要求“给我发送一个文件”。更为复杂的对服务器的请求通常涉及数据库事物。过去,服务器端编程都是通过使用Perl,Python,等语言编写CGI程序而实现的,但却造成了从此之后更复杂的系统。其中就包括基于Java的Web服务器,它让你用Java编写被称为servlet的程序来实现服务器端编程。
1.14 总结
因为OOP在你能够在过程型语言中找到的概念的基础上,又添加了许多新概念,所以你可能会自然地假设:由此而产生的Java程序比等价的过程型程序要复杂得多。但是你会感到很惊喜:编写良好的Java程序通常比过程型程序要简单的多,而且也易于理解得多。你看到的只是有关下面两部分内容的定义:用来表示问题空间概念的对象,以及发送给这些对象的用来表示在此空间内的行为的消息。面向对象程序涉及带给人们的喜悦之一就是:对于设计良好的程序,通过阅读它就可以很容易地理解其代码。通常,其代码也会少很多,因为许多问题都可以通过重用现有的类库代码而得到解决。
本文首发自:对象导论笔记-第六天-蜘蛛网间
分享到:
相关推荐
基于微信小程序的在线办公小程序答辩PPT.pptx
这个数据集来自世界卫生组织(WHO),包含了2000年至2015年期间193个国家的预期寿命和相关健康因素的数据。它提供了一个全面的视角,用于分析影响全球人口预期寿命的多种因素。数据集涵盖了从婴儿死亡率、GDP、BMI到免疫接种覆盖率等多个维度,为研究者提供了丰富的信息来探索和预测预期寿命。 该数据集的特点在于其跨国家的比较性,使得研究者能够识别出不同国家之间预期寿命的差异,并分析这些差异背后的原因。数据集包含22个特征列和2938行数据,涉及的变量被分为几个大类:免疫相关因素、死亡因素、经济因素和社会因素。这些数据不仅有助于了解全球健康趋势,还可以辅助制定公共卫生政策和社会福利计划。 数据集的处理包括对缺失值的处理、数据类型转换以及去重等步骤,以确保数据的准确性和可靠性。研究者可以使用这个数据集来探索如教育、健康习惯、生活方式等因素如何影响人们的寿命,以及不同国家的经济发展水平如何与预期寿命相关联。此外,数据集还可以用于预测模型的构建,通过回归分析等统计方法来预测预期寿命。 总的来说,这个数据集是研究全球健康和预期寿命变化的宝贵资源,它不仅提供了历史数据,还为未来的研究和政策制
基于微信小程序的“健康早知道”微信小程序答辩PPT.pptx
基于微信小程序的电影交流平台答辩PPT.pptx
计算机字符编码GB18030
Hive 操作基础(进阶版)多级分区数据文件2
基于java的贫困生管理系统答辩PPT.pptx
pandas whl安装包,对应各个python版本和系统(具体看资源名字),找准自己对应的下载即可! 下载后解压出来是已.whl为后缀的安装包,进入终端,直接pip install pandas-xxx.whl即可,非常方便。 再也不用担心pip联网下载网络超时,各种安装不成功的问题。
TA_lib库(whl轮子),直接pip install安装即可,下载即用,非常方便,各个python版本对应的都有。 使用方法: 1、下载下来解压; 2、确保有python环境,命令行进入终端,cd到whl存放的目录,直接输入pip install TA_lib-xxxx.whl就可以安装,等待安装成功,即可使用! 优点:无需C++环境编译,下载即用,方便
本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac
tornado-6.2b2.tar.gz
javawe论坛项目 原生技术
tornado-6.2b1-cp310-cp310-macosx_10_9_universal2.whl
随着物流行业的快速发展,货运管理变得愈发重要。为了提高货运效率,确保货物安全,我们开发了这款基于司机信用评价的货运管理系统。 该系统主要包含了货物信息管理、订单评价管理、货主管理等多个功能模块。在货物信息管理模块中,用户可以查看和管理货物的详细信息,包括货物名称、规格、装车状态、运输状态以及卸货状态等,方便用户随时掌握货物的动态。 订单评价管理模块是该系统的核心之一,它允许货主对司机的服务进行评价,系统会根据评价数据对司机进行信用评分。这一功能不仅有助于提升司机的服务质量,还能为货主提供更加可靠的货运选择。 此外,货主管理模块提供了货主信息的录入、修改和查询等功能,方便用户管理自己的货主资料。系统界面简洁明了,以蓝色为主色调,设计现代且专业,为用户提供了良好的使用体验。 通过该系统,用户可以轻松实现货物信息的查看和管理,对司机的服务进行评价,提高货运效率和服务质量。同时,系统也为司机提供了一个展示自我、提升信用的平台,有助于推动物流行业的健康发展。
毕业生交流学习平台 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
基于java的广场舞团答辩PPT.pptx
基于java的基于SSM的校园音乐平台答辩PPT.pptx
Jira插件安装包
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-6.2b2-cp37-abi3-win_amd64.whl