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

正文內(nèi)容

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

2025-08-04 04:07本頁面
  

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