九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)應(yīng)用

  • 資源ID:237347977       資源大小:2.17MB        全文頁(yè)數(shù):46頁(yè)
  • 資源格式: PPT        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)應(yīng)用

第六章第六章WEB服務(wù)(服務(wù)(WEB SERVICE)開(kāi)發(fā)和應(yīng)用)開(kāi)發(fā)和應(yīng)用課程內(nèi)容課程內(nèi)容WebService的各種創(chuàng)建和查看 實(shí)現(xiàn)WebService客戶端 WebService的應(yīng)用場(chǎng)合WebService的優(yōu)點(diǎn)和缺點(diǎn) WebService的性能優(yōu)化 創(chuàng)建和查看創(chuàng)建和查看WEB服務(wù)服務(wù)Web Service軟件的支持軟件的支持 Web Service構(gòu)建工具如下:構(gòu)建工具如下:微軟微軟.NET IBM的的WebSphere Borland的的JBuilder 開(kāi)源的開(kāi)源的Eclipse 總之,在總之,在Web Service開(kāi)發(fā)上,開(kāi)發(fā)上,.NET 和和Java都是很好的選擇,盡管兩者都是很好的選擇,盡管兩者現(xiàn)在都有一些需要完善的地方,但是就目前來(lái)說(shuō),它們還是最好的開(kāi)發(fā)手段現(xiàn)在都有一些需要完善的地方,但是就目前來(lái)說(shuō),它們還是最好的開(kāi)發(fā)手段和技術(shù)。具體選擇哪種開(kāi)發(fā)工具,也是仁者見(jiàn)仁,智者見(jiàn)智的問(wèn)題。和技術(shù)。具體選擇哪種開(kāi)發(fā)工具,也是仁者見(jiàn)仁,智者見(jiàn)智的問(wèn)題。使用使用XFire開(kāi)發(fā)開(kāi)發(fā)Web服務(wù)服務(wù) 一個(gè)一個(gè)Demo:一個(gè)銀行業(yè)應(yīng)用程序,將資金從一個(gè)賬戶轉(zhuǎn)到另外一個(gè)賬戶上。一個(gè)銀行業(yè)應(yīng)用程序,將資金從一個(gè)賬戶轉(zhuǎn)到另外一個(gè)賬戶上。它需要四個(gè)輸入?yún)?shù):String fromAccount:轉(zhuǎn)帳的帳戶帳號(hào)。String toAccount:被轉(zhuǎn)到的帳戶帳號(hào)。double amount:轉(zhuǎn)帳的資金數(shù)目。String bankName:服務(wù)的銀行名稱。XFire是一個(gè)免費(fèi)的開(kāi)源SOAP框架,它不僅可以極大方便地實(shí)現(xiàn)這樣一個(gè)環(huán)境,并且可以提供許多Web Services規(guī)范中的高級(jí)特征,這些特征在多數(shù)的商業(yè)或者開(kāi)源工具都沒(méi)有提供。下面你將會(huì)看到使用XFire創(chuàng)建Web Services是多么的簡(jiǎn)單。接口的設(shè)計(jì):接口的設(shè)計(jì):package com.test.webservice;public interface IBankService public String transferFunds(String fromAccount,String toAccount,double amount,String bankName);編寫(xiě)編寫(xiě)Java類簡(jiǎn)單的實(shí)現(xiàn)以上接口(代碼省略)類簡(jiǎn)單的實(shí)現(xiàn)以上接口(代碼省略)Web應(yīng)用的部署描述符應(yīng)用的部署描述符 首先,修改首先,修改web.xml。我們需要增加下面的。我們需要增加下面的XFire servlet相關(guān)的條相關(guān)的條目,部分代碼如下:目,部分代碼如下:XFireServlet/servlet/XFireServlet/*XFireServlet/services/*在Java中,Web應(yīng)用程序通常需要至少一個(gè)部署描述符對(duì)其進(jìn)行配置。XFire本身是一個(gè)基于Servlet的應(yīng)用程序。因此,我們需要增加必要的引用到描述符文件中。然后我們還必須配置將要?jiǎng)?chuàng)建的Web Services。我們使用一個(gè)稱為services.xml的新文件來(lái)完成這件事。services.xml Web Services是由一個(gè)叫做是由一個(gè)叫做services.xml的文件組成的,的文件組成的,存放在存放在META-INF/xfire目錄下目錄下。該文件的部分配置代碼如下:。該文件的部分配置代碼如下:BankServicecom.test.webservice.IBankServicecom.test.webservice.BankServiceImplwrappedliteralapplication分析分析service.xml文件中的元素文件中的元素 ,它可以是你提供任何的合法名字。這將會(huì)被客,它可以是你提供任何的合法名字。這將會(huì)被客戶端程序和其它需要定位你的服務(wù)的組件用到??梢栽跒g戶端程序和其它需要定位你的服務(wù)的組件用到??梢栽跒g覽器上使用這個(gè)名字來(lái)查看覽器上使用這個(gè)名字來(lái)查看WSDL。任何合法的。任何合法的XML名字都是可以的。名字都是可以的。用來(lái)唯一標(biāo)識(shí)你的服務(wù)的各個(gè)參數(shù)。用來(lái)唯一標(biāo)識(shí)你的服務(wù)的各個(gè)參數(shù)。元素包含了元素包含了Java類的名字,它指定了方法類的名字,它指定了方法簽名。在我們的例子中,它是接口簽名。在我們的例子中,它是接口IBankingService。如果。如果Java類沒(méi)有實(shí)現(xiàn)任何接口,就需要把類的名字放在這里。類沒(méi)有實(shí)現(xiàn)任何接口,就需要把類的名字放在這里。在你的在你的Java類或者接口中可能有幾個(gè)方法。只需要一個(gè)入類或者接口中可能有幾個(gè)方法。只需要一個(gè)入口把它們?nèi)堪l(fā)布為口把它們?nèi)堪l(fā)布為Web Services。保存了實(shí)現(xiàn)方法的保存了實(shí)現(xiàn)方法的Java類名。這類名。這是一個(gè)可選元素。如果上一個(gè)元素是一個(gè)可選元素。如果上一個(gè)元素包含了一包含了一個(gè)接口,那么相應(yīng)的實(shí)現(xiàn)類必須在這里指定。個(gè)接口,那么相應(yīng)的實(shí)現(xiàn)類必須在這里指定。基本的基本的Web Services開(kāi)發(fā)步驟開(kāi)發(fā)步驟 基本的基本的Web Services開(kāi)發(fā)步驟開(kāi)發(fā)步驟 如下:如下:1編寫(xiě)Java類,類中的方法和默認(rèn)構(gòu)造函數(shù)確保為public。2增加X(jué)Fire servlet相關(guān)條目到web.xml中。3創(chuàng)建services.xml,把它放到WEB-INF/classes/META-INF/xfire目 錄下。4增加X(jué)Fire和第三方包到你的Web應(yīng)用的WEB-INF/lib文件夾中。XFire的其他高級(jí)特性的其他高級(jí)特性 本地?cái)?shù)據(jù)綁定支持本地?cái)?shù)據(jù)綁定支持POJOs(plain-old Java objects)、)、XMLBeans、JAXB(Java Architecture for XML Binding)、)、Castor等等。等等。使用使用StAX(Streaming API for XML)處理處理XML文檔。文檔。支持多種傳輸協(xié)議,如支持多種傳輸協(xié)議,如HTTP、JMS(Java Message Service)和和JVM內(nèi)部傳輸。內(nèi)部傳輸。嵌入式,這是嵌入式,這是XFire的核心功能之一。的核心功能之一。豐富的豐富的API,它使,它使XFire可高度自定義可高度自定義。兼容最新的標(biāo)準(zhǔn)例如兼容最新的標(biāo)準(zhǔn)例如SOAP1.1(沒(méi)有加密遠(yuǎn)程工程調(diào)用,或者(沒(méi)有加密遠(yuǎn)程工程調(diào)用,或者RPC)和)和1.2、WSDL1.1等。等。其他開(kāi)發(fā)其他開(kāi)發(fā)Web服務(wù)的途徑服務(wù)的途徑一:使用EJB來(lái)暴露Web服務(wù)二:將Web工程發(fā)布為Web服務(wù) 查看查看Web服務(wù)服務(wù) 假如我們的Web服務(wù)是發(fā)布在JBoss服務(wù)器中的,我們可以通過(guò)JBoss管理平臺(tái)查看剛才發(fā)布的Web Service,我們可以輸入:“http:/localhost:8080/jbossws/”進(jìn)入JBossWS的查看界面,點(diǎn)擊“View”連接后,可以查看已經(jīng)發(fā)布的Web服務(wù) 兩種實(shí)現(xiàn)兩種實(shí)現(xiàn)Web服務(wù)的方法服務(wù)的方法 1開(kāi)始編寫(xiě)Java類,并讓容器去生成WSDL及其它所需要的XML文檔;2開(kāi)始編寫(xiě)(或直接使用現(xiàn)成的)WSDL文件,并借助于開(kāi)發(fā)工具生成所需要的Java類。其他開(kāi)發(fā)其他開(kāi)發(fā)Web服務(wù)的途徑服務(wù)的途徑實(shí)現(xiàn)實(shí)現(xiàn)WEB服務(wù)客戶服務(wù)客戶調(diào)用調(diào)用WebService的方法的方法 在在J2EE平臺(tái)中,平臺(tái)中,Web服務(wù)客戶同服務(wù)客戶同EJB客戶類似。如以下兩種方式能客戶類似。如以下兩種方式能夠訪問(wèn)到夠訪問(wèn)到Web服務(wù):服務(wù):1單獨(dú)的JAX-WS客戶。它們不借助于JNDI來(lái)訪問(wèn)Web服務(wù)。2J2EE客戶(比如Web客戶、J2EE應(yīng)用客戶)。它們借助于客戶端的JNDI上下文訪問(wèn)Web服務(wù)。分析:分析:第一種方式:不借助于JNDI,即單獨(dú)客戶,比如那些未運(yùn)行在應(yīng)用服務(wù)器中的遠(yuǎn)程Java客戶能夠訪問(wèn)到Web服務(wù)。第二種方式:依賴于Dispatch對(duì)象。它在運(yùn)行的時(shí)候以來(lái)動(dòng)態(tài)調(diào)用接口(Dynamic Invocation Interface,DII)創(chuàng)建調(diào)用對(duì)象。開(kāi)發(fā)一個(gè)客戶端開(kāi)發(fā)一個(gè)客戶端 如以下代碼:/創(chuàng)建一個(gè)服務(wù)模型創(chuàng)建一個(gè)服務(wù)模型Service serviceModel=new ObjectServiceFactory().create(IBankService.class);/獲得服務(wù)的代理工廠獲得服務(wù)的代理工廠XFire xfire=XFireFactory.newInstance().getXFire();XFireProxyFactory factory=new XFireProxyFactory(xfire);可以使用任何的SOAP工具創(chuàng)建客戶端,例如,.Net或者Apache Axis,有很多種方法,使用從WSDL產(chǎn)生的stubs,使用動(dòng)態(tài)代理等等。下面這個(gè)例子中,我們使用一個(gè)動(dòng)態(tài)代理,以一個(gè)簡(jiǎn)單的Servlet形式,叫做WsClient.java。為了保持代碼量最小,所有在屏幕顯示的元素都放在了doGet()方法中。String serviceUrl=http:/localhost:8080/BankWebService/services/BankService;IBankService client=null;try client=(IBankService)factory.create(serviceModel,serviceUrl);catch(MalformedURLException e)log.error(WsClient.callWebService():出現(xiàn)異常:+e.toString();/調(diào)用服務(wù)調(diào)用服務(wù)String serviceResponse=;try serviceResponse=client.transferFunds(fromAccount,toAccount,amount,currency);catch(Exception e)/返回服務(wù)的調(diào)用結(jié)果返回服務(wù)的調(diào)用結(jié)果return serviceResponse;WEB服務(wù)的應(yīng)用探討服務(wù)的應(yīng)用探討WebService的缺點(diǎn)的缺點(diǎn) XML限制限制 無(wú)狀態(tài)(無(wú)狀態(tài)(stateless)的服務(wù))的服務(wù) 數(shù)據(jù)綁定也存在一些不足數(shù)據(jù)綁定也存在一些不足 技術(shù)要求高,學(xué)習(xí)曲線較長(zhǎng)技術(shù)要求高,學(xué)習(xí)曲線較長(zhǎng) 在體會(huì)到在體會(huì)到WebService自身的優(yōu)點(diǎn)的同時(shí),不要忘了自身的優(yōu)點(diǎn)的同時(shí),不要忘了WebService也存在很多的缺點(diǎn):也存在很多的缺點(diǎn):什么應(yīng)用適合什么應(yīng)用適合Web Services?基于基于WAN和和Internet的應(yīng)用的應(yīng)用 基于異構(gòu)平臺(tái)的應(yīng)用基于異構(gòu)平臺(tái)的應(yīng)用 需要強(qiáng)安全特性的應(yīng)用需要強(qiáng)安全特性的應(yīng)用 EAI(企業(yè)應(yīng)用集成)(企業(yè)應(yīng)用集成)行業(yè)內(nèi)部行業(yè)內(nèi)部B2B應(yīng)用應(yīng)用 就目前來(lái)說(shuō),就目前來(lái)說(shuō),Web Services比較適合用于下列形式的應(yīng)用:比較適合用于下列形式的應(yīng)用:提高提高Web Services的性能的性能 要想提高要想提高Web Services應(yīng)用的性能,需要對(duì)整個(gè)系統(tǒng)做全應(yīng)用的性能,需要對(duì)整個(gè)系統(tǒng)做全盤(pán)的考慮。一般來(lái)說(shuō),有以下幾點(diǎn)需要注意:盤(pán)的考慮。一般來(lái)說(shuō),有以下幾點(diǎn)需要注意:(1)Web Services的顆粒度的顆粒度,Web Services比較適用于比較適用于大顆粒度的應(yīng)用,在一個(gè)調(diào)用中便獲得所有的信息大顆粒度的應(yīng)用,在一個(gè)調(diào)用中便獲得所有的信息(2)謹(jǐn)慎使用)謹(jǐn)慎使用XML接口接口,避免不必要的,避免不必要的XML文檔的解文檔的解析和效驗(yàn);在處理析和效驗(yàn);在處理XML的時(shí)候,盡量將的時(shí)候,盡量將XML轉(zhuǎn)換成內(nèi)部轉(zhuǎn)換成內(nèi)部對(duì)象,對(duì)象,XML的傳遞只會(huì)增加系統(tǒng)的開(kāi)銷。的傳遞只會(huì)增加系統(tǒng)的開(kāi)銷。(3)最大可能性使用)最大可能性使用CACHE,可以使用可以使用CACHE(緩沖緩沖技術(shù)技術(shù))。無(wú)論是客戶端的。無(wú)論是客戶端的CACHE還是服務(wù)器端的還是服務(wù)器端的CACHE,都能大大提高系統(tǒng)的性能。,都能大大提高系統(tǒng)的性能。本章總結(jié)本章總結(jié)WebService的各種創(chuàng)建和查看 實(shí)現(xiàn)WebService客戶端 WebService的應(yīng)用場(chǎng)合WebService的優(yōu)點(diǎn)和缺點(diǎn) WebService的性能優(yōu)化 動(dòng)手實(shí)踐:人數(shù)計(jì)算器動(dòng)手實(shí)踐:人數(shù)計(jì)算器人數(shù)計(jì)數(shù)器人數(shù)計(jì)數(shù)器 要開(kāi)始本章的體驗(yàn)項(xiàng)目首先要做以下的準(zhǔn)備工作:要開(kāi)始本章的體驗(yàn)項(xiàng)目首先要做以下的準(zhǔn)備工作:(1)首先將本章體驗(yàn)項(xiàng)目下配置文件按照指定要求放到指定目錄)首先將本章體驗(yàn)項(xiàng)目下配置文件按照指定要求放到指定目錄 下:下:C盤(pán)根目錄下。盤(pán)根目錄下。(2)之后將體驗(yàn)項(xiàng)目部署到服務(wù)器中,并啟動(dòng)服務(wù)器。)之后將體驗(yàn)項(xiàng)目部署到服務(wù)器中,并啟動(dòng)服務(wù)器。(3)最后在瀏覽器中輸入以下地址:)最后在瀏覽器中輸入以下地址:http:/localhost:8080/CounterWebService/counter.jsp 如果成功運(yùn)行則會(huì)看到類似以下的畫(huà)面,如圖如果成功運(yùn)行則會(huì)看到類似以下的畫(huà)面,如圖6-1所示:所示:圖6-1 計(jì)數(shù)器頁(yè)面 可以看到頁(yè)面中成功的輸出了當(dāng)天的訪問(wèn)量以及當(dāng)周的訪問(wèn)量和總訪可以看到頁(yè)面中成功的輸出了當(dāng)天的訪問(wèn)量以及當(dāng)周的訪問(wèn)量和總訪問(wèn)量,當(dāng)刷新頁(yè)面的時(shí)候,會(huì)看到統(tǒng)計(jì)的數(shù)字依次加一。問(wèn)量,當(dāng)刷新頁(yè)面的時(shí)候,會(huì)看到統(tǒng)計(jì)的數(shù)字依次加一。實(shí)現(xiàn)步驟實(shí)現(xiàn)步驟(1)新建一個(gè))新建一個(gè)WebService工程工程,之后編寫(xiě)業(yè)務(wù)操作的接口,之后編寫(xiě)業(yè)務(wù)操作的接口類:類:ICounterSerivce;(2)實(shí)現(xiàn)該接口的業(yè)務(wù))實(shí)現(xiàn)該接口的業(yè)務(wù)Bean:CounterServiceImpl(3)編寫(xiě)一個(gè)簡(jiǎn)單客戶端是如何調(diào)用以上)編寫(xiě)一個(gè)簡(jiǎn)單客戶端是如何調(diào)用以上Web服務(wù)服務(wù)(4)在工程中新建一個(gè))在工程中新建一個(gè)JSP頁(yè)面:頁(yè)面:counter.jsp,通過(guò)客戶端,通過(guò)客戶端Bean應(yīng)用該應(yīng)用該Web服務(wù)服務(wù) 在開(kāi)始開(kāi)發(fā)在開(kāi)始開(kāi)發(fā)WebSerivce之前,我們首先要做的是在之前,我們首先要做的是在c盤(pán)下或者是其它目盤(pán)下或者是其它目錄下新建一個(gè)文件錄下新建一個(gè)文件-counter.xml,用于保存記錄的數(shù)字,用于保存記錄的數(shù)字。(1)創(chuàng)建一個(gè)Web服務(wù),實(shí)現(xiàn)對(duì)用戶訪問(wèn)頁(yè)面的次數(shù)進(jìn)行分天或分周進(jìn)行統(tǒng)計(jì)。(2)在Java中調(diào)用該Web服務(wù),并在JSP頁(yè)面中把結(jié)果顯示出來(lái)。(1)在開(kāi)始開(kāi)發(fā)Web Serivce之前,我們首先要做的是在C盤(pán)下或者是其它目錄下新建一個(gè)文件counter.xml,用于保存記錄的數(shù)字,counter.xml文件內(nèi)容如下:admin123456124562007-6-18 5:42:58(2)新建一個(gè)Web Services工程,命名為CounterWebSerivce,之后編寫(xiě)業(yè)務(wù)操作的接口類ICounterSerivce,代碼如下:package com.test.webserivce;public interface ICounterSerivce public String counter(String userName,String password);(3)編寫(xiě)實(shí)現(xiàn)類CounterServiceImpl,代碼如下:package com.test.webservice;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.DateFormat;import java.text.ParseException;import java.util.*;import org.dom4j.*;public class CounterServiceImpl implements ICounterService private final String filePath=c:/counter.xml;private final static DateFormat DATEFORMATER=DateFormat.getDateTimeInstance();private final String errorInfor=0;0;/*功能:打開(kāi)計(jì)數(shù)器文檔*/private Document openDocument()/*功能:對(duì)文檔進(jìn)行解析,之后進(jìn)行加一操作,保存*該方法為同步的*/public synchronized String doCount(String userName,String passWord)/public String counter(String userName,String password)if(userName=null|password=null)return null;elsereturn doCount(userName,password);/測(cè)試用的main()方法,最后屏蔽該段代碼/*public static void main(String args)CounterServiceImpl c=new CounterServiceImpl();String src=c.counter(admin,123456);System.out.println(src);*/(4)下面我們一一實(shí)現(xiàn)以上的方法:openDocument()方法的實(shí)現(xiàn):主要是使用SAXReader的read()方法來(lái)獲得一個(gè)指定xml文件路徑的Document文檔對(duì)象。代碼如下:private Document openDocument()Document doc=null;SAXReader reader=new SAXReader();try File xmlfile=new File(filePath);doc=reader.read(xmlfile);xmlfile=null;catch(DocumentException e)e.printStackTrace();return doc;doCount()方法的實(shí)現(xiàn):該方法一定是要同步的,不然會(huì)導(dǎo)致數(shù)據(jù)的不正確。該方法是主要的操作方法,通過(guò)openDocument()方法獲取的Document對(duì)象doc來(lái)對(duì)XML文件進(jìn)行解析,分別獲取代表周訪問(wèn)量、日訪問(wèn)量、登記時(shí)間、總訪問(wèn)量的數(shù)據(jù),并分別保存到wc、dc、rt、tc變量中,之后利用Date對(duì)象和Calendar對(duì)象和當(dāng)前時(shí)間進(jìn)行對(duì)比,從而修改XML文件的數(shù)據(jù)并將修改后的數(shù)據(jù)返回以供客戶端調(diào)用。具體代碼如下:public synchronized String doCount(String userName,String passWord)Document doc=openDocument();Date currdt=new java.util.Date();/wc:month counter(周計(jì)數(shù)器);dc:day counter(日計(jì)數(shù)器);/rt:registe time登記時(shí)間;tc:Total counter(總計(jì)數(shù)器)String wc=-1,dc=-1,tc=-1,rt=-1;Element root=doc.getRootElement();Element selitem=null,item=null;for(Iterator it=root.elementIterator(item);it.hasNext();)item=(Element)it.next();if(userName.equals(item.element(userName).getText()selitem=item;if(!passWord.equals(item.elementText(passWord)/密碼不對(duì),直接返回return errorInfor;dc=item.element(dc).getText();wc=item.element(wc).getText();tc=item.element(tc).getText();rt=item.element(rt).getText();break;/處理計(jì)數(shù)器加一操作。Calendar currcr=Calendar.getInstance();Date lastdt=null;try/獲得xml文件記錄的登錄時(shí)間lastdt=DATEFORMATER.parse(rt);catch(ParseException e)lastdt=new java.util.Date();Calendar lastcr=Calendar.getInstance();lastcr.setTime(lastdt);currcr.setTime(currdt);/System.out.println(上次登記時(shí)間:+DATEFORMATER.format(lastdt);/System.out.println(本次登記時(shí)間:+DATEFORMATER.format(currdt);/對(duì)年判斷是否相同if(lastcr.get(Calendar.YEAR)=currcr.get(Calendar.YEAR)/如果周相同,周計(jì)數(shù)加1if(lastcr.get(Calendar.WEEK_OF_YEAR)=currcr.get(Calendar.WEEK_OF_YEAR)wc=String.valueOf(Integer.parseInt(wc)+1);elsewc=1;/如果日相同,日計(jì)數(shù)加1if(lastcr.get(Calendar.DAY_OF_YEAR)=currcr.get(Calendar.DAY_OF_YEAR)dc=String.valueOf(Integer.parseInt(dc)+1);elsedc=1;/年不一樣,則月計(jì)數(shù)器、周計(jì)數(shù)器日計(jì)數(shù)器肯定也不一樣。elsedc=1;wc=1;tc=String.valueOf(Integer.parseInt(tc)+1);/總數(shù)器總是加1。selitem.element(wc).setText(wc);selitem.element(dc).setText(dc);selitem.element(tc).setText(tc);/登記記錄時(shí)間selitem.element(rt).setText(DATEFORMATER.format(currdt);try XMLWriter xw=new XMLWriter(new FileWriter(filePath);xw.write(doc);xw.close();catch(IOException e)e.printStackTrace();return dc+;+wc+;+tc;(5)以上代碼主要涉及到了XML的讀寫(xiě)操作和日期的判斷,這些此處我們不必深究,主要是以上業(yè)務(wù)的邏輯操作掌握即可。下面我們看一下客戶端是如何調(diào)用以上Web服務(wù)的:客戶端Bean:CounterServiceClient.javapackage com.counterservice.client;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import com.test.webservice.ICounterService;public class CounterServiceClient private String counterarr;public boolean getCounter(String CounterName,String password)boolean flag=false;try Service srvcModel=new ObjectServiceFactory().create(ICounterService.class);XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire();String endpointURL=http:/localhost:8080/CounterWebService/services/CounterService;/填寫(xiě)你要調(diào)用的方法名稱ICounterService srvc=(ICounterService)factory.create(srvcModel,endpointURL);String counter=srvc.counter(CounterName,password);counterarr=counter.split(;);flag=(counterarr!=null&counterarr.length=3);catch(Exception e)e.printStackTrace();return flag;public String getDc()return counterarr0;public String getWc()return counterarr1;public String getTc()return counterarr2;/測(cè)試用的main()方法,測(cè)試完畢后屏蔽該段代碼/*public static void main(String args)CounterServiceClient cl=new CounterServiceClient();boolean b=cl.getCounter(admin,123456);System.out.println(獲得服務(wù):+b);System.out.println(總訪問(wèn)量:+cl.counterarr2);*/(6)最后在工程中新建一個(gè)JSP頁(yè)面:counter.jsp,通過(guò)客戶端Bean應(yīng)用該Web服務(wù)。counter.jsp代碼如下:base href=My JSP counter.jsp starting page計(jì)數(shù)器頁(yè)面 今天訪問(wèn)量:本周訪問(wèn)量:總訪問(wèn)量:

注意事項(xiàng)

本文(企業(yè)級(jí)開(kāi)發(fā)WEB服務(wù)應(yīng)用)為本站會(huì)員(痛***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!