Java编程思想1

Wesley13
• 阅读 821

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的程序来实现服务器端编程。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
03.Android崩溃Crash库之ExceptionHandler分析
目录总结00.异常处理几个常用api01.UncaughtExceptionHandler02.Java线程处理异常分析03.Android中线程处理异常分析04.为何使用setDefaultUncaughtExceptionHandler前沿上一篇整体介绍了crash崩溃
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_