計算機(jī)程序虛擬的人生
          虛擬世界中的游魂

          2009年6月29日

          第一次接觸mina這個物件,在網(wǎng)上看了一些相關(guān)的資料,同時也參考了別人的一些分析mina的心得和方式!
          mina是何物?
          Mina是一個用于開發(fā)高性能和高可用性的網(wǎng)絡(luò)應(yīng)用程序基礎(chǔ)架構(gòu),它封裝了底層的I/O和線程并發(fā)等復(fù)雜工作。
          Mina主要是基于java NIO類庫開發(fā);采用非阻塞方式的異步傳輸、事件驅(qū)動、批量數(shù)據(jù)傳輸;支持TCP、UDP網(wǎng)絡(luò)協(xié)議

          首先從服務(wù)器端啟動NioSocketAcceptor對象進(jìn)行分析。
          1、實例化DefaultSocketSessionConfig會話配置器和異步傳輸NioProcessor處理器
          2、實例化AbstractPollingIoAcceptor構(gòu)造器同時實例化SimpleIoProcessorPool處理器池
                --〉在SimpleProcessorPool中初始化執(zhí)行器<線程池>,然后初始化一個IoProcessor對象數(shù)組,長度為3,最后將處理器對象放入到IoProcessor數(shù)組中
                --〉處理化傳輸帶元數(shù)據(jù)
                --〉初始化服務(wù)監(jiān)視器
                --〉初始化異常監(jiān)視器
          3、初始化過濾鏈
          4、初始化選擇器

          架構(gòu)介紹

          應(yīng)用結(jié)構(gòu)圖

          深入分析結(jié)構(gòu)圖

          mina的基本應(yīng)用可以分為3層:
          1、I/O Serivce:實際執(zhí)行I/O層
          2、I/OFilter chain:數(shù)據(jù)過濾和轉(zhuǎn)換層,主要是把字節(jié)轉(zhuǎn)換為需要的數(shù)據(jù)格式或者反過來處理
          3、I/OHandler:業(yè)務(wù)處理層
          創(chuàng)建Mina應(yīng)用分為3部分:
          1、創(chuàng)建I/O 2、創(chuàng)建過濾鏈
          3、創(chuàng)建I/O業(yè)務(wù)處理

          posted @ 2009-09-04 12:25 小兄弟(Robbins) 閱讀(1417) | 評論 (1)編輯 收藏
           
           Dojo介紹
                 Dojo 是一個用javascript語言實現(xiàn)的開源DHTML工具包。它是在幾個項目捐助基礎(chǔ)上建立起來的(nWidgets, Burstlib, f(m)), 這也是為什么叫它a \"unified\" toolkit的原因。Dojo的目標(biāo)是解決開發(fā)DHTML應(yīng)用程序遇到的那些,長期存在 、歷史問題。historical problems with DHTML 跨瀏覽器問題。Dojo讓你更容易 使web頁面具有動態(tài)能力,或在任何穩(wěn)健的支持javascript語言的環(huán)境中發(fā)揮作用。

          a、利用dojo提供的組件,你可以提升你的web應(yīng)用程序可用性、交互能力以及功能上的提高;
          b、你也可以 更容易的建立degradeable user interfaces ??,dojo提供小巧的 widgets ,animate transitions;
          c、利用它的低級APIs和可兼容的代碼,寫出輕便的、單一風(fēng)格(復(fù)雜)的javascript代碼,Dojo的 event system, I/O APIs, and generic language enhancement form the basis of a powerful programming environment.
          d、通過Dojo提供的工具,你可以為你的代碼寫命令行式的單元測試代碼。
          e、the Dojo package system使你自己的代碼更容易維護(hù),偶合性更低。

          Dojo通過很少的代碼完成了以上的功能。(以后可能我詳細(xì)說說dojo的package system ,只需要三個js文件)。當(dāng)你寫腳本時,只需要包含很少的js文件(大小)。也可以選擇的(包含)下載dojo提供的龐大的功能。Dojo provides MultiplePointsOfEntry, InterpreterIndependence, ForwardLookingAPIs, and focuses on ReducingBarriersToAdoption.
            dojo試圖建立一種新的標(biāo)簽語言DojoML。目標(biāo)是,在DojoML和javascript腳本語言不變的情況下,用不同的render方式展示數(shù)據(jù), Renderings may be made available in several rendering contexts (such as SVG, or perhaps even the desktop or Flash)。(比較美好啊)更進(jìn)一步,the DojoML 剖析器可以接受html和svg為輸入,容易的建立DegradeableResponsiveApplications。

          第一部分  安裝
          第一個小節(jié)  怎么安裝Dojo Toolkit
           Dojo在磁盤上只是一堆文件,它不需要特殊的設(shè)置,它可以通過以下三種途徑獲得:
           1、可以從google的內(nèi)容分布網(wǎng)絡(luò)獲得
             加載的方法可以參考http://code.google.com/intl/zh-CN/apis/ajaxlibs/documentation/index.html#dojo
           2、.在你自己的服務(wù)器上使用Dojo
            a、下載最新的dojo包,地址:http://dojotoolkit.org/downloads;目前最新的包為1.3.1
            b、解壓下載的壓縮文件
                   --dojo-release-1.3.1-src
                      ----dijit
                      ----dojo
                      ----dojox
                      ----util
            c、可以通過D:\Apache-Source\dojo\1.3.1\dojo-release-1.3.1-src\dojo-release-1.3.1-src\dijit\themes\themeTester.html 這樣的路徑來查看相關(guān)的JS例子
          3、每日構(gòu)建代碼
             你可以通過SVN地址獲得
          For instance, Dojo Core repository is:
          http://svn.dojotoolkit.org/src/dojo/trunk

          There are two versions of this view: anonymous and committer.

          For users (readonly):
          http://svn.dojotoolkit.org/src/view/anon/all/trunk

          For committers (read/write):
          https://svn.dojotoolkit.org/src/view/committer/all/trunk

          第二部分 Ajax
          第一個小節(jié) ajax
          a、ajax and Dojo
          1)XHR選項
          例子:

          // post some data, ignore the response:
          dojo.xhrPost({
          form: "someFormId", // read the url: from the action="" of the <form>
          timeout: 3000, // give up after 3 seconds
          content: { part:"one", another:"part" } // creates ?part=one&another=part with GET, Sent as POST data when using xhrPost
          });
          // get some data, convert to JSON
          dojo.xhrGet({
          url:"data.json",
          handleAs:"json",
          load: function(data){
          for(var i in data){
          console.log("key", i, "value", data[i]);
          }
          }
          });
          

          2)XHR回調(diào)
          有三種方法可以附加到XHR選擇對象,以確定當(dāng)數(shù)據(jù)回調(diào)時該怎么做。


          posted @ 2009-06-29 14:20 小兄弟(Robbins) 閱讀(373) | 評論 (0)編輯 收藏
           
             如果不輸入絕對的URL訪問地址,例如:URL=http://localhost:8080/petstore;則Glassfish能夠自動的搜索項目中是否存在index.html或者index.jsp頁面作為入口頁面。 
             CatalogFacade對象在服務(wù)器啟動時被實例化,然后將實例化的CatalogFacade對象放置到ServletContext環(huán)境中,這樣可以直接從ServletContext環(huán)境中取得CatalogFacade對象進(jìn)行相關(guān)數(shù)據(jù)方法的調(diào)用。
             index.jsp中涉足到一個js框架DOJO,這個需要進(jìn)一步的學(xué)習(xí)。
             對數(shù)據(jù)的增、刪、改、查主要用到了JPA來處理。
          posted @ 2009-06-29 12:34 小兄弟(Robbins) 閱讀(348) | 評論 (0)編輯 收藏
           
          主站蜘蛛池模板: 海安县| 嘉荫县| 贵阳市| 沧源| 河东区| 名山县| 舒兰市| 兴海县| 上林县| 灵丘县| 鹤峰县| 黎平县| 富蕴县| 宣武区| 武夷山市| 平原县| 勐海县| 安顺市| 玛曲县| 金阳县| 左贡县| 内江市| 宜宾市| 铜梁县| 东莞市| 章丘市| 左云县| 临洮县| 喜德县| 丹东市| 渝中区| 万宁市| 运城市| 莒南县| 天镇县| 垦利县| 通山县| 尼勒克县| 岳西县| 会理县| 台东县|