freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

社區(qū)交流平臺網(wǎng)站(范文,jsp,java,)畢業(yè)論文-資料下載頁

2025-08-04 04:07本頁面
  

【正文】 spID:服務(wù)的名稱。算法描述:a) 通過Java反射機制獲得obj的類名,并且將其作為元素追加到rootElement后,然后得到一個新的葉子節(jié)點childElement。b) 通過Java反射機制得到obj對象的所有方法和屬性,然后遍歷所有的方法,當(dāng)方法是get+屬性名稱的時候,調(diào)用invoke方法,獲得該屬性的值。c) 當(dāng)屬性值為基礎(chǔ)類型、字符串類型和日期類型時,將屬性名作為元素追加到childElement后,并且得到新的葉子節(jié)點grandElement,并且將屬性值賦值給grandElement。d) 當(dāng)屬性值為ArrayList類型時,通過Java反射機制獲得方法名稱,并將其作為元素追加到childElement后,得到新的葉子節(jié)點grandElement,然后以grandElement為根節(jié)點,遍歷ArrayList的每個元素,對于每個元素調(diào)用遞歸算法。e) 當(dāng)屬性值為自定義類型時,以這個自定義類型的對象為參數(shù),調(diào)用遞歸算法。 (2) XML格式轉(zhuǎn)換成對象當(dāng)從服務(wù)器獲得的響應(yīng)是XML格式的信息時,需要將XML格式的有效信息獲取,并且封裝入對應(yīng)的響應(yīng)封裝類的對象中。下面描述一下轉(zhuǎn)換過程:a) 根據(jù)響應(yīng)信息,獲取其根元素。此時的根元素的名稱就是響應(yīng)封裝類的名稱,通過此名稱在Agent代碼中查找到響應(yīng)類,并且通過Java反射獲得其所有的屬性名、方法名和創(chuàng)建一個響應(yīng)類的對象。b) 調(diào)用遞歸方法parse,來實現(xiàn)XML文件到響應(yīng)類的對象的轉(zhuǎn)換。c) 返回賦值后的響應(yīng)類對象。算法介紹:public void parse(Object obj, String className, String path, int level,String spId)參數(shù)介紹:Obj:傳入的要賦值的對象;className:進行分析并要賦值的實體類;path:定義的XPath解析路徑,便于得到相應(yīng)的節(jié)點XML路徑;level:專門對多個同樣數(shù)組進行判別(判別是數(shù)組1或者2....)。算法描述:a) 遍歷獲得的響應(yīng)類的屬性名,對于每個屬性獲取其對應(yīng)的類型,如果是基本類型和String類型,則根據(jù)屬性名獲取XML文件中對應(yīng)的元素值。然后,遍歷第一步獲得的方法名,找到對應(yīng)的SET方法,并通過invoke方法調(diào)用此方法,對相應(yīng)類的對象賦值。b) 如果是用戶自定義類型的話,則將obj賦值為此屬性對應(yīng)的復(fù)雜元素封裝類的對象,然后以新的obj為參數(shù),調(diào)用遞歸方法。c) 如果是ArrayList類型的話,主要的思想是先新建一個ArrayList型的對象,然后對ArrayList對應(yīng)的封裝類的對象中的成員賦值,最后將賦值后的對象賦值給主對象。2) 對象與SOAP之間的轉(zhuǎn)換由于SOAP協(xié)議的定義是基于XML的。SOAP的請求和響應(yīng)消息,其實就是一個XML文件,所以對象與SOAP之間的格式轉(zhuǎn)換的思想和對象與XML之間的格式轉(zhuǎn)換的思想一致。3) 對象與TXT之間的轉(zhuǎn)換(1) 對象轉(zhuǎn)換成TXT此轉(zhuǎn)換過程比對象轉(zhuǎn)換成TXT的過程要簡單,其轉(zhuǎn)化的主要步驟是:a) 新建一個StringBuffer對象。b) 通過讀取傳輸層XML文件,如果應(yīng)用的傳輸協(xié)議是HTTP且傳輸方法是POST,就讀取功能層operation元素的URL值,并將URL?request=追加到stringBuffer上。c) 獲取表示層xml文件的元素,并再用Java反射機制在類對象中找到元素對應(yīng)的屬性值,將其寫入stringBuffer中。d) 返回stringBuffer對象。(2) TXT轉(zhuǎn)換成對象此轉(zhuǎn)換過程比XML格式轉(zhuǎn)成對象的過程要簡單。其轉(zhuǎn)換的主要步驟是:a) 新建一個Object對象。b) 通過解析組件,解析表示層XML文件,并獲得其中的所有message元素,然后在其中找到與className對應(yīng)的message元素。c) 遍歷message的子元素,獲得其子元素的所有的屬性值,并且通過Java反射機制創(chuàng)建屬性對應(yīng)的對象,并且對其賦值。然后再通過invoke方法調(diào)用message對應(yīng)的響應(yīng)封裝類中的set方法,將屬性值賦值給響應(yīng)類的對象中。d) 返回message對應(yīng)的響應(yīng)類的對象。4) 對象與URL之間的轉(zhuǎn)換(1) 對象轉(zhuǎn)換成URL此轉(zhuǎn)換過程比對象轉(zhuǎn)換成TXT的過程要簡單,其轉(zhuǎn)化的主要步驟是:a) 新建一個字符緩沖區(qū)stringBuffer的對象。b) 遍歷功能層的XML文件中的operation元素,尋找與請求對象對應(yīng)的operation元素。若能找到,獲取operation元素的URL屬性值,并將URL?request=追加到stringBuffer上。c) 獲取表示層XML文件中對應(yīng)的請求元素,根據(jù)元素在用Java反射機制在請求對象中找到元素對應(yīng)屬性的值,然后按“屬性名=屬性值amp?!钡母袷綄懭雜tringBuffer中。d) 返回stringBuffer的對象。(2) URL格式信息轉(zhuǎn)換成對象本平臺與服務(wù)提供商約定,當(dāng)服務(wù)提供商的服務(wù)器接收的是URL格式的請求信息時,返回的是XML格式的響應(yīng)信息,所以響應(yīng)信息的處理同XML轉(zhuǎn)換為對象相同。URL格式的響應(yīng)信息轉(zhuǎn)換為對象的主要步驟類似于TXT格式的響應(yīng)信息轉(zhuǎn)換為對象的過程。 傳輸代理模塊的設(shè)計與實現(xiàn)傳輸代理模塊負責(zé)用戶信息在網(wǎng)絡(luò)上傳輸,它主要的功能是連接服務(wù)器,首先根據(jù)不同的協(xié)議格式封裝要傳輸?shù)挠行畔?,然后通過網(wǎng)絡(luò)發(fā)送給服務(wù)器,再獲得服務(wù)器的反饋信息,再將反饋信息根據(jù)傳輸協(xié)議的類型進行解析,最后返回解析出的有效信息。 網(wǎng)絡(luò)傳輸協(xié)議在本項目中除了使用HTTP、UDP和TCP三種協(xié)議進行與服務(wù)器通訊,還針對WebService類的服務(wù),提供了使用SOAP協(xié)議的傳輸代理。下面將介紹每種協(xié)議的意義和具體的格式[20~22]。1) HTTPHTTP是超文本傳輸協(xié)議,是客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議。在Internet上的Web服務(wù)器上存放的都是超文本信息,客戶機需要通過HTTP協(xié)議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用于Web訪問,也可以用于其他因特網(wǎng)/內(nèi)聯(lián)網(wǎng)應(yīng)用系統(tǒng)之間的通信,從而實現(xiàn)各類應(yīng)用資源超媒體訪問的集成。HTTP協(xié)議的主要特點可以概括如下:(1) 支持客戶/服務(wù)器模式。(2) 簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、POST和HEAD。每種方法規(guī)定用戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。(3) 靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontentType加以標記。(4) 無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完成客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。(5) 無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事物處理沒有記憶能力。缺少狀態(tài)使得如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增加。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快。請求消息格式如下:HTTP/:請求消息 = 請求行(通用信息|請求頭|實體頭)CRLF[實體內(nèi)容]請求行 = 方法請求 URL HTTP 版本號 CRLF方法 = GET|HEAD|POST|拓展方法URL = 協(xié)議名稱+宿主名稱+目錄與文件名HTTP協(xié)議中GET、POST和HEAD的介紹:GET: 請求指定的頁面信息,并返回實體主體。HEAD: 只請求頁面的首部。POST: 從客戶機向服務(wù)器傳送數(shù)據(jù),在需求服務(wù)器和Servlet做進一步處理時會用到POST方法。POST主要用于發(fā)送HTML文本中FORM內(nèi)容,讓Servlet程序處理。響應(yīng)消息格式如下:HTTP/:響應(yīng)消息 = 狀態(tài)行(通用信息|響應(yīng)頭|實體頭)CRLF[實體內(nèi)容]狀態(tài)行 = HTTP 版本號 狀態(tài)碼 原因敘述狀態(tài)碼講解:200 代表 成功301 代表 所請求的對象被永久轉(zhuǎn)移了503 代表 服務(wù)器不可用505 代表 服務(wù)器不支持HTTP協(xié)議舉個請求的例子:GET 2) UDP用戶數(shù)據(jù)報協(xié)議(UDP)是 OSI 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù),是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議。UDP是使用數(shù)據(jù)報套接字(DatagramSocket)來通訊的。UDP協(xié)議的主要特點概括如下:(1) UDP傳送數(shù)據(jù)前并不與對方建立連接,即UDP是無連接的,在傳輸數(shù)  據(jù)前,發(fā)送方和接收方相互交換信息使雙方同步。(2) UDP不對收到的數(shù)據(jù)進行排序,在UDP報文的首部中并沒有關(guān)于數(shù)據(jù)順序的信息(如TCP所采用的序號),而且報文不一定按順序到達的,所以接收端無從排起。(3) UDP對接收到的數(shù)據(jù)報不發(fā)送確認信號,發(fā)送端不知道數(shù)據(jù)是否被正確接收,也不會重發(fā)數(shù)據(jù)。(4) UDP傳送數(shù)據(jù)較TCP快速,系統(tǒng)開銷也少。3) TCPTCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運輸層(Transport layer)通信協(xié)議,它與UDP是同一層的重要協(xié)議。TCP傳輸協(xié)議是使用流套接字進行通訊的。TCP協(xié)議的主要特點概括如下:(1) 面向連接的傳輸;(2) 端到端的通信;(3) 高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序;(4) 全雙工方式傳輸;(5) 采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列。(6) 緊急數(shù)據(jù)傳送功能。 傳輸代理的運作流程服務(wù)代理運行的主要步驟:1) 從傳輸層XML獲得服務(wù)器地址,建立與服務(wù)器的連接。2) 讀取傳輸層的傳輸協(xié)議,根據(jù)傳輸協(xié)議的類型封裝數(shù)據(jù)轉(zhuǎn)換后的有效信息,然后發(fā)送。3) 接收服務(wù)器的反饋信息,并根據(jù)協(xié)議類型,解析反饋信息,返回有效信息。 代碼生成器模塊的設(shè)計與實現(xiàn)代碼生成器是生成服務(wù)代理Agent的重要組件,它主要負責(zé)Agent服務(wù)代理的Java代碼文件的生成。本項目使用Velocity模板技術(shù)生成Java源文件。通過Velocity模板生成源文件是比較好的選擇,模板在某種意義上來說就是配置文件的一種,當(dāng)生成文件內(nèi)容修改后,用戶不需要修改源程序,只需要修改模板文件即可,提高了代碼書寫的效率和代碼的可維護性。 Java代碼生成器將調(diào)用解析類的結(jié)果,結(jié)合類模板生成代碼文件。生成的代碼文件包括用戶自定義元素封裝文件、接口文件和接口實現(xiàn)文件。前臺將根據(jù)生成的類封裝文件封裝用戶的信息;接口實現(xiàn)文件的方法將負責(zé)完成用戶信息和服務(wù)提供商的服務(wù)器之間的通訊,即負責(zé)將從前臺獲得對象數(shù)據(jù)轉(zhuǎn)換成目標格式,然后按特定的傳輸協(xié)議進行傳送,并且負責(zé)接收和解析服務(wù)器的響應(yīng)信息。 模板的設(shè)計用Velocity生成代碼,需要設(shè)計兩個組件,一個是模板,另一個則是模板中的數(shù)據(jù)。本項目設(shè)計了三個模板和三個上下文變量封裝類,下面將詳細地給出他們的定義: 模板上下文變量封裝類模板上下文變量封裝類,是用來封裝模板中的變量信息,以備在生成模板的時候統(tǒng)一調(diào)用。本文設(shè)計了三個模板封裝類,包括ImportBean類、MethodBean類和ConstructorBean類,來存儲模板中的變量信息。ImportBean類封裝的屬性是用來記錄生成的Java文件的包信息;MethodBean類封裝的屬性是用來記錄生成的Java文件的方法的特性,如方法參數(shù)名稱,方法參數(shù)類型,方法返回值類型,方法名稱;ConstructorBean類封裝的屬性是用來記錄生成的Java文件的基本信息,如要生成的Java文件所在的包的名稱、生成的Java類的名稱,是否有父類、父類的名稱、是否實現(xiàn)了序列化接口等等。 接口文件模板 接口文件模板,用來生成描述服務(wù)的接口文件。前臺通過RMI調(diào)用暴露的接口,然后后臺獲取參數(shù)對象信息并通過數(shù)據(jù)格式轉(zhuǎn)換模塊進行格式轉(zhuǎn)換,最后將處理過的數(shù)據(jù)通過傳輸代理,發(fā)送給服務(wù)提供商的服務(wù)器。 接口實現(xiàn)文件模板,是用來生成提供服務(wù)接口的實現(xiàn)類,它內(nèi)部實現(xiàn)了提供的服務(wù)的所有接口。每個接口方法具體實現(xiàn)過程為:首先將獲取的接口輸入?yún)?shù)對象數(shù)據(jù)轉(zhuǎn)換成格式化的string類型,然后調(diào)用傳輸代理將其傳輸出去,之后傳輸代理會獲得服務(wù)器的反饋信息,最后調(diào)用數(shù)據(jù)轉(zhuǎn)換將格式化的string類型轉(zhuǎn)換為對象類型。 實體類模板 實體類模板,用來封裝三層xml文件中的主要元素信息,如operation 和message都會生成對應(yīng)的實體類。message生成的實體類封裝了用戶自定義的信息格式,而在message封裝的消息格式的基礎(chǔ)上,operation封裝了調(diào)用接口所用的參數(shù)的信息格式。每個實體類中,都包含 set與get方法。 代碼生成的運作流程在實現(xiàn)以上設(shè)計的基礎(chǔ)上,能夠為服務(wù)提供商提供的服務(wù)一一生成Agent服務(wù)代理中的Java文件。使用Velocity模板生成源文件的流程如下:1) 初始化模板引擎VelocityEngine一般在初始化VelocityEngine的同時,要申明一個VelocityContext對象用于存儲上下文變量信息,VelocityContext內(nèi)部存儲信息是通過HashMap實現(xiàn)的。2) 加載模板文件獲得要生成的Java文件所使用的模板。3) 創(chuàng)建模板上下文解析模塊將XML文件中的信息封裝如元入封裝類的對象中后,將其信息獲取封裝入模板的上下文變量封裝類的對象中,為代碼生成做準備。4) 給模板變量賦值將上下文變量封裝類中的屬性和名稱一起存入VelocityContext的對象中。5) 替換模板中的值生成代碼調(diào)用模板類的公共成員方法merge方法,生成代碼。 可視化編輯器模塊的設(shè)計與實現(xiàn)可視化編輯器模塊是后臺SP Agent Builder運作的核
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1