计算机网络 活动Web文档技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名空间及访问规则
其它
Java系统环境一览: 运行机制
Java source
Java bytecode move locally or through network
Class Loader Bytecode Verifier
Java class libraries
Java Compiler
Java:A simple, objectoriented, distributed, compiled/interpreted, robust, secure, architecture neutral, high-performance, multithreaded, and dynamic language.
则这两张网页将每隔30秒交替出 现。上面的META标记相当于 HTTP回答中有 Refresh :30; RL=http://.../doc2.html” 的效果。
则这两张网页将每隔30秒交替出 现。上面的META标记相当于 HTTP回答中有 Refresh :30; RL=http://.../doc1.html” 的效果。
活动WEB文档技术
连续更新现实的推-拉技术
• 服务器推送技术的基础思想是将浏览器主 动查询信息改为服务器主动发送信息。 服务器发送一批数据,浏览器显示这些数 据,同时保证与服务器的连接。当服务器 需要再次发送一批数据时,浏览器显示数 据并保持连接。以后,服务器仍然可以发 送批量数据,浏览器继续显示数据,依次 类推 。
Java Interpreter
Just-in-time Compiler
Runtime System
Operating System
Java Virtual Machine
Java bytecode
Hardware
Compile-time
Runtime
第一个Java应用程序
在当前目录中, 建文件firstjava.java public class firstjava { public static void main (String argv[]) { System.out.println(“Hi, “+argv[0]);
Java总览
Frameworks APIs Peerless Components
Language
bytec ode 3D API accessi bility Pluggable Drag & look & feel Drop
JDK 1.2
Java Foundation Class (JFC)
与Java有关的“形容词”(1)
SSI(Server Side Include)
SSI技术使服务器能够在网页中插入数据。这 样的网页通常以.shtml作为扩展名,对应的 MIME类型text/x-server-parsed-html 将它施加于HTML文档时,能够使文档增加一 些实时功能,显示时间、查询、或更新数据库, 发送电子邮件等。
}
} cdir> javac firstjava.java cdir> java firstjava “my first Java program runs !”
(1) 类名和文件名的一致性; (2) 命令行参数的获取; (3) 字符串的拼接; (4) System.out.println()的含义
Java的历史 (1)
工作起始于1990年, 旨在开发用于为家用 电器编程的语言和环境 (Sun 公司, James Gosling). 语言最初的名字为Oak. 1991年起在Green, VOD项目中得到首次应 用, 系统在应用中得到培育和完善. 1994年World Wide Web兴起. 1995年4月宣布Java和HotJava. 1995年5月Netscape向Sun购买了Java使用 权, 将其包含到Netscape 2.0中.
缺点:
(1)跨越浏览器的DHTML:Pushlet需要使用 能工作在任何平台、所有浏览器版本的DHTML库。 (2)可测量性:当100个以上的client通过 Pushlet连接到server时,server上的线程和 socket资源都将出现紧张。而解决这一问题的方 式就是使用单独的Pushlet服务器。 (3)Web server问题:一般的web server往 往不是为长连接而设计的。针对这一问题的解决 方案与上面的可测量性相同。 (4)代理缓存:一些代理服务器可能缓存 HTTP数据。
与Java有关的“形容词”(2)
Simple (与C, C++, Fortran等相比)
“小”语言 没有struct, union, goto, #define … 没有多继承 容易学 ? 程序完全由类构成, 写程序就是描述类 程序中几乎所有的东西都是“对象”
关于Java
Java的历史和现状 与Java有关的“形容词”
simple, objecຫໍສະໝຸດ Baidu-oriented, distributed, compiled/interpreted, robust, secure, architecture neutral, high-performance, multithreaded, and dynamic Java语言, Java应用程序开发界面 (APIs), Java虚拟机、 执行环境
• dwr • cometD
pushlet简介
• 工作原理: 通过servlet(或者JSP)把JavaScript 代码作为HTTP流推送到浏览器。这些代码 被浏览器的JavaScript引擎解释并完成一些 有趣的工作。于是便轻松地完成了从server 端的Java到浏览器中的JavaScript的回调。
Server Push
Web服务器可以向浏览器返回一个“回答序 列”,序列中的每个元素可以看作是一个独立 的HTML文本,在浏览器方一个接一个显示, 从而造成一种动态效果。这种序列使用一种特 殊的MIME类型,multipart/mixed,或 multipart/x-mixed-replaced,来说明。值得注意 的是,HTTP连接一直在保持着,直到服务器 知道自己已结束发送数据并发送一个结束信号, 或者客户端中断连接。适合小文件,短时间间 隔,例如小图像的动画。
与客户端拉曳(Client Pull) 的比较
• 客户端拉曳:客户端定时去查询服务器上的 最新数据。
优缺点
• 与客户端拉拽方式对比 优点:服务器完全能够控制客户端更新 数据的时间和频率 。
缺点:保持连接状态会浪费服务器端的 资源。服务器推送还比较容易中断 。
实现了comet的相关开源框架
• pushlet
应用举例
• • • • 监控系统:报警提示; 即时通信系统:其它用户登录、发送信息; 即时报价系统:后台数据库内容发生变化; 实现基于web的实时事件通知 。
服务器推送(Server Push) 方式
• 基于客户端套接口 : 采用RMI、CORBA或者自定义TCP/IP 信息的applet来实现 。
不把Java仅当作是一种语言
Java的未来
Java语言:
对象模型
Java的类和对象(一般, 抽象, interface) 继承机制 (单继承, 多实现) package, class/object, member, 局部变量 public, private, protected, default 异常、线程、Applet, 等
Client Pull
服务器可以通过CGI脚本返回一种类型为 “Refresh”的HTTP应答,或者在HTML文 本中的<HEAD>部分用<META ......>标 记模拟这种应答,从而是浏览器每隔一 定时间自动发出一次新的网页请求。
例:浏览器重新下载网页
<HTML>< <HEAD> <META HTTP-EQUIV=”Refresh” CONTENT=5> <TITLE> Demo Client Pull Technology</TITLE> </HEAD> <BODY> <P> Insert your text or graphics here </BODY></HTML>
Java的历史 (2)
1995年11月推出JDK 1.0 beta版 1995年12月Business Week称Java是推动 Web/Internet发展的一种突破性力量, 同时也 认为“Java as a business“还不清楚. 从1995年12月到1996年4月, 许多计算机公司 纷纷表示对Java的认同, 宣布要将Java运行环 境作为其操作系统的一部分.
这将引起浏览器每隔5秒重新下载一次该网页
例:网页交替出现
Doc1.html < META HTTP-EQUIV= “Refresh” CONTENT=30;URL=http:/ /.../doc2.html”>
Doc2.html <META HTTP-EQUIV= “Refresh” CONTENT=30;URL=http://... /doc1.html”>
Pushlet优缺点
优点: (1)直接与浏览器中的DHTML集成。 (2)标准的HTTP端口和协议:消息和RMI/CORBA使用 非标准端口(相对HTTP标准端口而言),遇到“防火 墙”、“禁止回调”、“禁止接收UDP数据”的浏览器安 全限制时可能无法工作。 (3)client负载:基于CORBA/RMI的Java applet使 client在启动时更加沉重,并消耗更多的资源。 (4)无需额外的server:消息和RMI/CORBA需要单独 的server产品。Pushlet理论上可以在任何server引擎上运 行,并具备连接管理和多线程能力。
SSI
SSI与HTTP服务器密切相关,并不是所 有的服务器都能支持SSI。 SSI记号的基本格式为: <!--#<tag><variable set>-->
Tag:echo,include,fsize,flastmod,exec,config,em ail,if,goto,label,break
Apple HP Hitachi IBM Microsoft Novell SGI SunSoft SCO Tandem.
Java的现状
1996, 97, 98年, JavaOne大会, 5000, 10000人 200多本书, 几十万程序员 JDK 1.0, 1.1, 1.2 (语言、虚拟机、基本类库) Java Foundation Class (JFC, Javasoft) Application Foundation Class (AFC, Microsoft ) Internet Foundation Class (IFC, Netscape) Personal Java, Embedded Java 不少研究努力旨在提高Java的运行速度, HPJava.
• Comet: 基于 HTTP 长连接、无须在浏览器端 安装插件的技术 。
Comet应用实现模型
• 基于 AJAX 的长轮询(long-polling) 即服务端阻断前一次对客户端的回应,在事件发生后 将事件内容绑定在回应中返回给客户端,同时回应结束, 此时客户端立即发送第二次请求,服务器阻塞回应等待下 一次事件发生。 • 基于 Iframe 及 htmlfile 的流(streaming)方式 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐 蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就 能源源不断地往客户端输入数据。即服务器阻断客户端的 回应,服务器没有关闭回应而是一直保留这这个到客户端 的输出流。
Java APIs: Java体系最活跃的部分
一个Framework由多个API组成;一个API 可能含有多个package;一个package中有 多个class. Java AWT -- 窗口及界面API JDBC -- 数据库操作API, Java Framework for Commerce的一部分 JavaBean -- 编写构件的API RMI -- 远程方法调用API …...