两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Java實現web服務器主動發(fā)起向瀏覽器發(fā)送數據的方法

文檔序號:7592322閱讀:668來源:國知局
專利名稱:Java實現web服務器主動發(fā)起向瀏覽器發(fā)送數據的方法
技術領域
本發(fā)明涉及一種JAVA實現WEB SERVER主動發(fā)起向瀏覽器發(fā)送數據的方法。
背景技術
瀏覽器和WEB SERVER是通過HTTP協議(Hypertext TransferProtocol,超文本傳輸協議)通信,HTTP的通信原理決定了,只能是瀏覽器向WEB Server發(fā)起請求,建立HTTP連接,WEB Server進行應答,一次通信會話結束,HTTP技術本身無法實現WEB SERVER主動的向瀏覽器發(fā)送數據,因為沒有瀏覽器的首先請求連接,瀏覽器、WEB SERVER二者之間不存在通信連接。
在很多場合需要實現WEB SERVER主動地、實時地向瀏覽器發(fā)送數據,比如通信設備的告警數據發(fā)給瀏覽器客戶端顯示、連續(xù)采集數據的發(fā)給瀏覽器客戶端顯示,否則維護人員需要不停地手工刷新瀏覽器界面來從WEB SERVER獲取最新的數據,或者瀏覽器定時向WEB SERVER發(fā)送請求,從WEB SERVER獲得最新數據、刷新瀏覽器顯示的數據,但也無法做到WEB SERVER主動地向瀏覽器發(fā)送數據,通信效率低。

發(fā)明內容
本發(fā)明的目的在于提供一種JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,實現WEB SERVER主動地向瀏覽器發(fā)送數據。
為實現本發(fā)明要解決的技術問題,提出一種JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于它包括下列步驟a.JAVA客戶端向JAVA服務器端發(fā)送請求建立通信連接;b.JAVA服務器端收到JAVA客戶端請求,生成對應的處理線程,JAVA服務器端在該處理線程中生成對應該通信連接的輸出流,JAVA客戶端在該通信連接上生成輸入流;
c.JAVA服務器端在該處理線程收到需要發(fā)給瀏覽器的數據后,向輸出流寫數據,并發(fā)送;e.JAVA客戶端從輸入流讀取數據;f.JAVA客戶端處理讀取的數據。
在上述步驟f.中,在JAVA客戶端處理讀取的數據后可顯示在應用界面上。當JAVA客戶端需要停止接受數據時,關閉瀏覽器。
根據客戶端瀏覽器接收數據的需要,可在步驟c.和步驟f.之間循環(huán)執(zhí)行,WEB Server上的JAVA服務器端(Servlet)把最新數據主動下發(fā)給客戶端的JAVA客戶端(Applet),直到客戶端不需要接收數據為止而關閉瀏覽器。
本發(fā)明方法使用JAVA的Applet(JAVA客戶端小程序)技術、Servlet(JAVA服務器端小程序)技術、HTTP(Hypertext TransferProtocol,超文本傳輸協議)長連接通信機制,突破了一般B/S(Browser/Server,瀏覽器/服務器)架構的瓶頸——只能夠由瀏覽器發(fā)起請求、服務器被動響應的局限,成功實現了WEB服務器主動的向瀏覽器發(fā)送數據,實際運行效果良好。


圖1是本發(fā)明的整體流程圖。
圖2是Applet的流程圖。
圖3是Servlet的流程圖。
具體實施例方式
本發(fā)明的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法整體流程如圖1所示,包括下列步驟1)Applet(JAVA客戶端小程序)向Servlet(JAVA服務器端小程序)發(fā)送請求建立通信連接,通信連接可以是HTTP連接、URL(UniformResource Locator統一資源定位器)連接;2)該Servlet收到Applet請求,生成對應的處理線程;Servlet在該處理線程中生成對應該通信連接的輸出流;Applet在該通信連接上生成輸入流;
3)Servlet在該處理線程收到需要發(fā)給瀏覽器的數據后,向輸出流寫數據,并發(fā)送;4)Applet從輸入流讀取數據;5)Applet處理讀取的數據后顯示在應用界面上;6)當需要停止接受數據時,操作者在客戶端關閉瀏覽器。
根據客戶端瀏覽器接收數據的需要,可以在步驟3)和步驟5)之間一直循環(huán)長期地執(zhí)行,WEB Server上的Servlet不停地把最新數據主動下發(fā)給客戶端的Applet,直到客戶端不需要接收數據為止而關閉了瀏覽器。
也就是說,只有在第一次啟動瀏覽器時Applet主動和WEB Server的Servlet建立了一個通信連接,并且一直保持這個通信連接用于WEBServer向瀏覽器發(fā)送后續(xù)的數據,以后的長期運行,都是使用最初建立的這個通信連接來發(fā)送數據;這就改變了HTTP協議應用的最傳統的方法每次通信開始時是瀏覽器主動發(fā)請求,建立通信連接,WEB Server收到請求后被動的回一個應答,然后釋放該通信連接,一次通信結束。
本發(fā)明方法的具體實現可以劃分成Servlet和Applet兩個部分,如圖2所示,Applet部分主要描述1)Applet與Servlet建立通信連接。
2)Applet在該通信連接上生成輸入流。
3)Applet從輸入流讀取數據。
4)Applet處理數據,并顯示。
5)Applet收到瀏覽器關閉通知。
6)Applet關閉該通信連接。
7)Applet退出。
長時間運行時,從3)到4)循環(huán)運行,Applet被動接收Servlet下發(fā)的數據。
如圖3所示,Servlet部分主要描述1)Servlet容器收到Applet請求,生成對應Servlet的處理線程。
2)Servlet在該處理線程中生成對應通信連接的輸出流。
3)Servlet在該處理線程有數據要發(fā)。
4)Servlet在該處理線程向輸出流寫數據。
5)該處理線程收到Applet關閉通信連接消息6)該處理線程close輸出流。
7)Servlet的處理線程結束運行。
長時間運行時,從3)到4)循環(huán)運行,Servlet主動向Applet下發(fā)數據,直到該處理線程收到Applet關閉通信連接消息,才釋放資源、結束運行。
下面以實現通訊網絡巡檢系統為具體實施案例對本發(fā)明作詳細說明。
巡檢系統由WEB Server和瀏覽器客戶端組成,目的是檢查通信設備、第一時間把設備運行信息發(fā)給維護人員使用的客戶端,提醒維護人員立即關注系統產生的異常信息并立即處理。WEB SERVER負責收集通信系統各個網元產生的設備運行信息,WEB SERVER從網元收到設備運行信息后在第一時間實時的、主動的下發(fā)給瀏覽器客戶端,這樣維護人員可以立即看到設備運行信息,及時發(fā)現異常情況并做出相應的處理。
巡檢系統WEB SERVER中有一個Servlet,在該Servlet的init方法執(zhí)行時啟動一個數據接收線程專門負責接收網元上報的設備運行重要指標數據;使用人員在客戶端啟動瀏覽器后,Applet執(zhí)行并向WEB SERVER中的該Servlet發(fā)出請求建立通信連接,Applet生成輸入流,Servlet容器收到客戶端的Applet的請求后生成該Servlet的一個處理線程,處理線程生成輸出流,負責把數據接收線程收到的數據下發(fā)給客戶端的Applet從而在瀏覽器上顯示。
當有多個使用人員在多個客戶端打開瀏覽器、執(zhí)行Applet、向該Servlet發(fā)出請求建立通信連接時,Servlet容器會對應各個請求生成該Servlet的多個處理線程,每個處理線程負責處理一個Applet的請求,當接收數據線程收到設備運行重要指標數據時,立即通知該Servlet所有的處理線程取數據,各個處理線程取到告警數據后通過通信連接的輸出流向對應的Applet發(fā)送數據;各個客戶端的Applet從輸入流中讀取設備運行重要指標數據,處理后顯示在瀏覽器界面上。
當使用人員一直使用瀏覽器觀察接收到的設備運行重要指標數據時,Servlet的接收數據線程不斷的從網元接收設備運行重要指標數據、通知處理線程取數據,處理線程取到數據后通過和Applet的通信連接的輸出流發(fā)送數據,瀏覽器的Applet就源源不斷地一直收到WEB Server上的Servlet下發(fā)的設備運行重要指標數據了。
當客戶端關閉瀏覽器時,Applet收到消息關閉輸入流、通信連接、退出運行;而Servlet處理線程收到Applet關閉通信連接消息后也關閉輸出流、退出運行。
盡管參照實施案例對所公開的涉及JAVA實現WEB SERVER主動發(fā)起的向瀏覽器發(fā)送數據的方法進行了特別描述,本領域技術人員將能理解,在不偏離本發(fā)明的范圍和精神的情況下,可以對它進行形式和細節(jié)的種種顯而易見的修改,如Applet和Servlet之間具體使用的通信連接可以是URL連接、HTTP連接、或者其它通信方式,SERVER端接收數據、發(fā)送數據不一定采用多線程方式,發(fā)送的數據可以各個業(yè)務領域的、各種格式的。因此,以上描述的實施案例是說明性的而不是限制性的,在不脫離本發(fā)明的精神和范圍的情況下,所有的變化和修改都在本發(fā)明的范圍之內。
權利要求
1.一種JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于它包括下列步驟a.JAVA客戶端向JAVA服務器端發(fā)送請求建立通信連接;b.JAVA服務器端收到JAVA客戶端請求,生成對應的處理線程,JAVA服務器端在該處理線程中生成對應該通信連接的輸出流,JAVA客戶端在該通信連接上生成輸入流;c.JAVA服務器端在該處理線程收到需要發(fā)給瀏覽器的數據后,向輸出流寫數據,并發(fā)送;e.JAVA客戶端從輸入流讀取數據;f.JAVA客戶端處理讀取的數據。
2.按權利要求1所述的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于進一步包括步驟g當JAVA客戶端需要停止接收數據時,關閉瀏覽器。
3.按權利要求1所述的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于在步驟f.中,JAVA客戶端處理讀取的數據后顯示在應用界面上。
4.按權利要求1所述的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于根據客戶端瀏覽器接收數據的需要,步驟c.和步驟f.之間可循環(huán)執(zhí)行,WEB Server上的JAVA服務器端把最新數據主動下發(fā)給客戶端的JAVA客戶端,直到客戶端不需要接收數據為止而關閉瀏覽器。
5.按權利要求1所述的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于所述通信連接或是采用超文本傳輸協議連接,或是采用統一資源定位器連接。
6.按權利要求1所述的JAVA實現WEB服務器主動發(fā)起向瀏覽器發(fā)送數據的方法,其特征在于當在多個客戶端打開瀏覽器、執(zhí)行JAVA客戶端、向該JAVA服務器端發(fā)出請求建立通信連接時,JAVA服務器端容器會對應各個請求生成該JAVA服務器端的多個處理線程,每個處理線程負責處理一個JAVA客戶端的請求,當接收數據線程收到運行指標數據時,立即通知該JAVA服務器端所有的處理線程取數據,各個處理線程取到告警數據后通過通信連接的輸出流向對應的JAVA客戶端發(fā)送數據;各個客戶端從輸入流中讀取運行指標數據,處理后顯示在瀏覽器界面上。
全文摘要
本發(fā)明公開了一種JAVA實現WEB SERVER主動發(fā)起向瀏覽器發(fā)送數據的方法,它包括下列步驟Applet向Servlet發(fā)送請求建立通信連接;該Servlet收到Applet請求,生成對應的該處理線程,Servlet在該處理線程中生成對應該通信連接的輸出流,Applet在該通信連接上生成輸入流;Servlet收到需要發(fā)給瀏覽器的數據后,向輸出流寫數據,并發(fā)送;Applet從輸入流讀取數據;Applet處理讀取的數據后顯示在界面上;當需要停止接受數據時,操作者在客戶端關閉瀏覽器。本發(fā)明方法通過使用Java的Applet技術、Servlet技術、HTTP長連接通信機制,最終突破了一般B/S架構的瓶頸——只能夠由瀏覽器發(fā)起請求、服務器被動響應的局限,成功實現了WEB服務器主動地向瀏覽器發(fā)送數據,實際運行效果良好。
文檔編號H04L12/00GK1735015SQ200410041590
公開日2006年2月15日 申請日期2004年8月3日 優(yōu)先權日2004年8月3日
發(fā)明者丁巖, 楊淑艷, 劉長青, 符濤, 王煒 申請人:中興通訊股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南靖县| 迁安市| 环江| 沁阳市| 芮城县| 云林县| 巩义市| 昭苏县| 博客| 中西区| 漳浦县| 毕节市| 关岭| 招远市| 京山县| 昭通市| 曲水县| 汽车| 尚义县| 兖州市| 阳朔县| 武威市| 深水埗区| 桐梓县| 黑龙江省| 城口县| 江西省| 宁蒗| 云梦县| 电白县| 商城县| 昌邑市| 荔浦县| 平遥县| 任丘市| 涪陵区| 巢湖市| 双辽市| 柳江县| 承德市| 桃源县|