




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、活動WEB文檔技術連續更新現實的推-拉技術 服務器推送技術的基礎思想是將瀏覽器主動查詢信息改為服務器主動發送信息。 服務器發送一批數據,瀏覽器顯示這些數據,同時保證與服務器的連接。當服務器需要再次發送一批數據時,瀏覽器顯示數據并保持連接。以后,服務器仍然可以發送批量數據,瀏覽器繼續顯示數據,依次類推 。應用舉例 監控系統:報警提示; 即時通信系統:其它用戶登錄、發送信息; 即時報價系統:后臺數據庫內容發生變化; 實現基于web的實時事件通知 。服務器推送(Server Push) 方式 基于客戶端套接口基于客戶端套接口 : 采用RMI、CORBA或者自定義TCP/IP信息的applet來實現
2、。 Comet: 基于基于 HTTP 長連接長連接、無須在瀏覽器端安裝插件的技術 。 Comet應用實現模型 基于基于 AJAX 的長輪詢(的長輪詢(long-polling) 即服務端阻斷前一次對客戶端的回應,在事件發生后將事件內容綁定在回應中返回給客戶端,同時回應結束,此時客戶端立即發送第二次請求,服務器阻塞回應等待下一次事件發生。 基于基于 Iframe 及及 htmlfile 的流(的流(streaming)方式)方式 通過在 HTML 頁面里嵌入一個隱蔵幀,然后將這個隱蔵幀的 SRC 屬性設為對一個長連接的請求,服務器端就能源源不斷地往客戶端輸入數據。即服務器阻斷客戶端的回應,服務器
3、沒有關閉回應而是一直保留這這個到客戶端的輸出流。 與客戶端拉曳與客戶端拉曳(Client Pull) 的比較 客戶端拉曳客戶端拉曳:客戶端定時去查詢服務器上的最新數據。 優缺點 與客戶端拉拽方式對比 優點:服務器完全能夠控制客戶端更新數據的時間和頻率 。 缺點:保持連接狀態會浪費服務器端的資源。服務器推送還比較容易中斷 。實現了comet的相關開源框架 pushlet dwr cometD pushlet簡介 工作原理: 通過servlet(或者JSP)把JavaScript代碼作為HTTP流推送到瀏覽器。這些代碼被瀏覽器的JavaScript引擎解釋并完成一些有趣的工作。于是便輕松地完成了從
4、server端的Java到瀏覽器中的JavaScript的回調。 Pushlet優缺點優點優點: (1)直接與瀏覽器中的直接與瀏覽器中的DHTML集成。集成。 (2)標準的標準的HTTP端口和協議:端口和協議:消息和RMI/CORBA使用非標準端口(相對HTTP標準端口而言),遇到“防火墻”、“禁止回調”、“禁止接收UDP數據”的瀏覽器安全限制時可能無法工作。 (3)client負載:負載:基于CORBA/RMI的Java applet使client在啟動時更加沉重,并消耗更多的資源。 (4)無需額外的無需額外的server:消息和RMI/CORBA需要單獨的server產品。Pushlet理
5、論上可以在任何server引擎上運行,并具備連接管理和多線程能力。 缺點: (1)跨越瀏覽器的跨越瀏覽器的DHTML:Pushlet需要使用能工作在任何平臺、所有瀏覽器版本的DHTML庫。 (2)可測量性:可測量性:當100個以上的client通過Pushlet連接到server時,server上的線程和socket資源都將出現緊張。而解決這一問題的方式就是使用單獨的Pushlet服務器。 (3)Web server問題:問題:一般的web server往往不是為長連接而設計的。針對這一問題的解決方案與上面的可測量性相同。 (4)代理緩存:代理緩存:一些代理服務器可能緩存HTTP數據。Serv
6、er Push nWeb服務器可以向瀏覽器返回一個“回答序列”,序列中的每個元素可以看作是一個獨立的HTML文本,在瀏覽器方一個接一個顯示,從而造成一種動態效果。這種序列使用一種特殊的MIME類型,multipart/mixed,或multipart/x-mixed-replaced,來說明。值得注意的是,HTTP連接一直在保持著,直到服務器知道自己已結束發送數據并發送一個結束信號,或者客戶端中斷連接。適合小文件,短時間間隔,例如小圖像的動畫。 Client Pulln服務器可以通過CGI腳本返回一種類型為“Refresh”的HTTP應答,或者在HTML文本中的部分用標記模擬這種應答,從而是瀏
7、覽器每隔一定時間自動發出一次新的網頁請求。例:瀏覽器重新下載網頁 nn n n Demo Client Pull Technologyn n n Insert your text or graphics here n n這將引起瀏覽器每隔5秒重新下載一次該網頁 例:網頁交替出現nDoc1.htmln則這兩張網頁將每隔30秒交替出現。上面的META標記相當于HTTP回答中有 R e f r e s h : 3 0 ; RL=http:/./doc2.html”的效果。nDoc2.htmln 則這兩張網頁將每隔30秒交替出現。上面的META標記相當于HTTP回答中有 R e f r e s h :
8、 3 0 ; RL=http:/./doc1.html”的效果。SSI(Server Side Include)nSSI技術使服務器能夠在網頁中插入數據。這樣的網頁通常以.shtml作為擴展名,對應的MIME類型text/x-server-parsed-htmln將它施加于HTML文檔時,能夠使文檔增加一些實時功能,顯示時間、查詢、或更新數據庫,發送電子郵件等。 SSInSSI與HTTP服務器密切相關,并不是所有的服務器都能支持SSI。nSSI記號的基本格式為: !-#-Tag:echo,include,fsize,flastmod,exec,config,email,if,goto,labe
9、l,break 關于JavanJava的歷史和現狀n與Java有關的“形容詞”nsimple, object-oriented, distributed, compiled/interpreted, robust, secure, architecture neutral, high-performance, multithreaded, and dynamicn不把Java僅當作是一種語言nJava語言, Java應用程序開發界面 (APIs), Java虛擬機、執行環境nJava的未來Java語言: n對象模型nJava的類和對象(一般, 抽象, interface)n繼承機制 (單繼承,
10、 多實現)n名空間及訪問規則npackage, class/object, member, 局部變量npublic, private, protected, defaultn其它n異常、線程、Applet, 等Java系統環境一覽: 運行機制Javabytecodemove locallyor throughnetworkClass LoaderBytecodeVerifierJava classlibrariesOperating SystemHardwareJavaCompilerJavasourceJavabytecodeJavaInterpreterJust-in-timeCompil
11、erRuntime SystemCompile-timeRuntimeJavaVirtualMachine第一個Java應用程序在當前目錄中, 建文件firstjava.javapublic class firstjava public static void main (String argv) System.out.println(“Hi, “+argv0); cdir javac firstjava.javacdir java firstjava “my first Java program runs !”(1) 類名和文件名的一致性; (2) 命令行參數的獲取;(3) 字符串的拼接;
12、(4) System.out.println()的含義Java APIs: Java體系最活躍的部分n一個Framework由多個API組成;一個API可能含有多個package;一個package中有多個class.nJava AWT - 窗口及界面APInJDBC - 數據庫操作API, Java Framework for Commerce的一部分nJavaBean - 編寫構件的APInRMI - 遠程方法調用APIn.Java的歷史 (1)n工作起始于1990年, 旨在開發用于為家用電器編程的語言和環境 (Sun 公司, James Gosling). 語言最初的名字為Oak.n19
13、91年起在Green, VOD項目中得到首次應用, 系統在應用中得到培育和完善.n1994年World Wide Web興起.n1995年4月宣布Java和HotJava.n1995年5月Netscape向Sun購買了Java使用權, 將其包含到Netscape 2.0中.Java的歷史 (2)n1995年11月推出JDK 1.0 beta版n1995年12月Business Week稱Java是推動Web/Internet發展的一種突破性力量, 同時也認為“Java as a business“還不清楚.n從1995年12月到1996年4月, 許多計算機公司紛紛表示對Java的認同, 宣布要
14、將Java運行環境作為其操作系統的一部分. Apple HP Hitachi IBM Microsoft Novell SGI SunSoft SCO Tandem.Java的現狀 n1996, 97, 98年, JavaOne大會, 5000, 10000人n200多本書, 幾十萬程序員nJDK 1.0, 1.1, 1.2 (語言、虛擬機、基本類庫)nJava Foundation Class (JFC, Javasoft)nApplication Foundation Class (AFC, Microsoft)nInternet Foundation Class (IFC, Netsca
15、pe)nPersonal Java, Embedded Javan不少研究努力旨在提高Java的運行速度, HPJava.Java Foundation Class (JFC)FrameworksAPIsLanguagebytecodeJDK 1.2Peerless Components3D APIaccessibilityPluggable look & feelDrag & DropJava總覽與Java有關的“形容詞”(1) Java:A simple, object-oriented, distributed, compiled/interpreted, robust,
16、 secure, architecture neutral, high-performance, multithreaded, and dynamic language.與Java有關的“形容詞”(2)nSimple (與C, C+, Fortran等相比)n“小”語言n沒有struct, union, goto, #define n沒有多繼承n容易學 ?nObject-orientedn程序完全由類構成, 寫程序就是描述類n程序中幾乎所有的東西都是“對象”與Java有關的“形容詞”(3)nDistributednAppletnURL類便利了從WEB上讀取文件nRMI支持遠程方法調用n底層網絡
17、支持, sockets, datagramsnCompiled/interpretedn源程序被編譯編譯成bytecode, 類文件nbytecode被Java虛擬機(JVM)解釋解釋執行與Java有關的“形容詞”(4)nRobust - 程序一旦調好, 一般不會因為數據的不同出錯.n編譯時嚴格的類型檢查n沒有指針, 動態檢查數組界n自動廢料收集防止了“memory leak”.n優越的異常處理方式, try/catch/finally與Java有關的“形容詞”(5) nSecuren存儲保護 (no pointer, array bounds checking, )nbytecode驗證 (
18、運行時, stack的一致性)n“砂箱模型” (sandbox), 限制某些程序的能力n數字簽名與Java有關的“形容詞”(6)nArchitecture neutral - “Write once, run anywhere !”nbytecode與平臺無關 (PC, Mac, UNIX)n對基本數據類型格式的嚴格規定nHigh-performance, though not as fast as Cn對交互式界面及網絡應用足夠好n與圖形、串有關的操作直接在VM實現nNative method, JIT compiler.與Java有關的“形容詞”(7)nMultithreadedn在語言級
19、提供對“線程”的支持 (自然也有類一級的支持)nDynamicn類的動態加載, java.lang.ClassLoadern運行時進行動態方法查找(dynamic method lookup)Dynamics (continued)class / say, file name ABC.javapublic void g() System.out.println(“This is from A”); class B extends A public void g() System.out.println(“This is from B”);class C extends B Dynamics (
20、continued)class D / in different compilation unit D.java public static void main (String argv) C x = new C(); x.g(); / What output to be expected ? What if ABC.java is modified and recompiled (but D.java is not recompiled) so that class C also contains a method g() producing “This is from C” ?Java應用
21、程序開發界面(APIs)njava.beans (JavaBean, Java的構件技術)njava.lang.reflect, JARnjava.sql (JDBC, 連接數據庫)njava.rmi (RMI, 遠程方法調用)njava.awt (支持GUI設計)njava.awt.datatransfer, java.awt.event, java.awt.image, java.awt.peerJava虛擬機n一個程序(ANSI C), 以Java類文件為數據n類文件的格式nbig endian 數據表示方式n以棧 (stack) 為基礎的體系結構n指令的操作數來自于棧n操作結果放回棧n
22、棧的大小在編譯時靜態決定Java的未來nJFC的不斷完善n高性能Java (HPJava) Java用于科學和工程計算n學習程序設計的首選語言 ?n取代C/C+ ? 會了Java的學生還愿意在大學學C嗎 ?nJava的生命期 ? 走Ada之路 ?AdanAda語言最早是針對嵌入式和實時系統設計的,并且在今天依然在這方面使用廣泛。Ada95版,是由INTERMETRICS公司的塔克塔夫特于92到95年間設計的,當時主要是希望改進對于 系統,數字,財務軟件編程的支持。nAda語言的重要特征就是其嵌入式風格,模塊化設計,編譯檢查,平行處理,異常處理及泛型編程。Ada在95年加入了對面向對象設計的支持
23、,包括動態分配等AdanAda的編譯檢查主要是針對沒有分配的內存讀寫的保護,堆棧溢出錯誤,單個錯誤空閑,隊列讀寫錯誤以及其他可以避免的小問題。這些檢查可以在為增加效率的情況下被取消,但是在編譯的時候他們卻能帶來很高的效率。同樣它也包括對程序的嚴正的設置。因為這些原因,它被廣泛應用于一些非常重要的系統中,例如航空電子學,武器及航天飛行器的操作系統中。Adan同樣它支持很多的編譯時間檢查,這些檢查被用來避免一些錯誤的發生。這種錯誤往往是在其他語言中在運行以前都不能被察覺到的,需要在源碼中加入特殊的檢查設置才能被發現。AdanAda的動態內存管理非常安全和高規格,它類似于JAVA語言卻不同于C語言的
24、。這種特殊功能并不需要特殊的運行設置。盡管這種語言的語意結構允許對于不能讀寫的目標進行自動的碎片搜集,但是大多數運行都不支持它。Ada卻支持有限形式基于區域的存儲管理。無效的讀寫常在運行時候被檢查出來(除非這種檢測被人為關閉)并且有時候在編譯時候就被發現。AdanAda語言由嚴格的巴斯特范式定義,但是不適合一般人閱讀.它是第一種同時擁有IEC/ISO/美國軍用標準認證的語言.其編譯器經過嚴格的審查,以確保同樣的代碼在任一編譯器上產生同樣的可執行效果.并且保證并行性在代碼級可以在無操作系統下同樣運行AdaAda語言的“Hello, World!” 示例程序n一個Ada語言編寫的Hello, Wo
25、rld! 程序:nwith Ada.Text_IO; n nprocedure Hello isnbeginn Ada.Text_IO.Put_Line(Hello, world!);nend Hello;阿麗亞娜5型運載火箭的失敗During execution of a data conversion from 64-bit floating point to 16-bit signed integer value, the floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error.n 將大的浮點數轉換成整數是一種常見的程序錯誤來源。n計算機將一個64位浮點數轉換成16位有符號整數時,產生了溢出。阿麗亞娜5型運載火箭的失敗Java技術: 語言、API、虛擬機JDK系統環境 (win95/dos)C:javabinjavacjavaap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 休閑餐飲連鎖店廚師團隊合作協議
- 《房屋買賣定金合同范本》
- 臨時倉儲彩鋼板房搭建與倉儲物流合同
- 眼科技能培訓
- 智能化砂石料采購及倉儲物流合同
- 休閑農業園區場地承包經營與服務協議范本
- 拆除工程后期維護服務合同范本
- 茶園租賃與茶葉品牌連鎖經營合作合同
- 戰國后期教育論著
- 能源領域采購戰略合作框架協議
- 二年級100以內加減法混合運算題庫
- 國家開放大學《鋼結構(本)》期末復習指導參考答案
- 小學美術奇怪的夢課件
- 頭頸部腫瘤放療中危及器官與正常組織勾畫課件
- 廣州市退休人員個人情況登記表
- 智能門鎖采購投標方案
- 課程設計DLP4-13型鍋爐中硫煙煤煙氣袋式除塵濕式脫硫系統設計
- 中學生如何正確交友主題班會
- 追責問責申請書
- 水培果菜營養液日本山崎華南農業大學配方大全
- 我今天寫什么日記
評論
0/150
提交評論