專利名稱:一種在Web端動態(tài)顯示圖片的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種顯示圖片的方法,具體來說,涉及一種在Web端動態(tài)顯示圖片的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的廣泛應(yīng)用及J2EE(Java 2企業(yè)版)平臺的日趨成熟,J2EE成為了開發(fā)基于B/S(客戶端/服務(wù)器)結(jié)構(gòu)的企業(yè)級應(yīng)用軟件的首選。在J2EE技術(shù)中,發(fā)展最迅猛的當(dāng)屬“Java服務(wù)器頁面”(JavaServer Page,Jsp)技術(shù),幾乎所有基于Java的Web應(yīng)用都在使用Jsp。Web頁面上所使用的HTML(超文本標(biāo)示語言)是一種靜態(tài)的文本信息,無法對用戶的請求進(jìn)行處理,這就意味著在把HTML(超文本標(biāo)示語言)發(fā)送給用戶之前便必須根據(jù)用戶的請求來產(chǎn)生超文本。而在諸如,如何給用戶更友好的使用界面,如何給用戶顯示更多元化的信息,如何規(guī)避HTML顯示的局限性方面,Java在Web應(yīng)用上有著強(qiáng)大的優(yōu)勢,Jsp能夠方便的產(chǎn)生了文本形式的HTML,把Web由靜態(tài)轉(zhuǎn)化為動態(tài)顯示。
然而,當(dāng)用戶有更高的需求時(shí),如要顯示動態(tài)圖片、動態(tài)圖形,甚至是動態(tài)報(bào)表等,則簡單的文本形式顯然滿足不了用戶的需求,此時(shí)Jsp顯然無用武之地。此時(shí),需要考慮使用其他技術(shù)輔助來實(shí)現(xiàn)?,F(xiàn)在應(yīng)用中大多采取Applet來解決來實(shí)現(xiàn)動態(tài)的圖形顯示。
Applet是一種使用Java語言編寫的小程序,在服務(wù)器端編譯后通過HTML中的超鏈接下載到客戶端,并在內(nèi)存中的“沙盤”(與其他應(yīng)用程序隔離的區(qū)域)中運(yùn)行,不會影響系統(tǒng)運(yùn)作,也不會對系統(tǒng)的安全性構(gòu)成威脅。利用Applet程序可以動態(tài)的顯示圖形,對數(shù)據(jù)進(jìn)行計(jì)算統(tǒng)計(jì),得出報(bào)表,或者做一些簡單的邏輯操作等等。
但是,Applet程序必須在客戶端瀏覽器下載安裝有Java開發(fā)工具包(JavaDevelopment Kit,JDK)才能顯示,據(jù)調(diào)查,80%的用戶是沒有安裝JDK的。盡管Applet的安全性很強(qiáng),但用戶的不信任心理也造成大部分用戶拒絕安裝。這使得很多用戶不能正常瀏覽頁面。
Applet程序第一次運(yùn)行時(shí)必須下載Applet運(yùn)行程序到客戶端。
Applet程序運(yùn)行時(shí)反應(yīng)速度慢,必須長駐內(nèi)存,占據(jù)一定的內(nèi)存空間。
用Applet程序產(chǎn)生報(bào)表,不易保存,不易進(jìn)行打印。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,為克服現(xiàn)有技術(shù)中Applet程序使用不方便、占用內(nèi)存等不足,而提供一種在Web端動態(tài)顯示圖片的方法。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是提供一種在Web端動態(tài)顯示圖片的方法,其包括(a)用戶訪問Web頁面,發(fā)送請求至應(yīng)用服務(wù)器中流程處理類模塊;(b)流程處理類模塊將該請求發(fā)送給后臺處理模塊,后臺處理模塊查詢數(shù)據(jù)庫,得到要顯示的數(shù)據(jù),并把這些要顯示的數(shù)據(jù)傳送到流程處理類模塊中;(c)流程處理類模塊調(diào)用構(gòu)圖類模塊,根據(jù)后臺處理模塊所返回的數(shù)據(jù),產(chǎn)生一張圖片,并在該圖片上進(jìn)行畫圖,并返回關(guān)于該圖片參數(shù);(d)Web頁面根據(jù)流程處理類模塊所返回參數(shù),查找該圖片并顯示。
在本發(fā)明的在Web端動態(tài)顯示圖片的方法中,進(jìn)一步包括對后臺處理模塊對要顯示的數(shù)據(jù)進(jìn)行計(jì)算的步驟。
在本發(fā)明的在Web端動態(tài)顯示圖片的方法中,在步驟(c)與步驟(d)之間進(jìn)一步包括(e)根據(jù)用戶發(fā)送請求時(shí)所分配的種子,結(jié)合圖片產(chǎn)生時(shí)間為所述圖片的生成一個(gè)圖片名。
在本發(fā)明的在Web端動態(tài)顯示圖片的方法中,在步驟(e)之后進(jìn)一步包括判斷種子數(shù)是否達(dá)到上限的步驟,所述種子數(shù)上限為預(yù)先設(shè)定。
在本發(fā)明的在Web端動態(tài)顯示圖片的方法中,如果步驟(e)中所述種子數(shù)達(dá)到該預(yù)設(shè)的種子數(shù)上限,則將種子數(shù)清零,并且重新分配種子數(shù),同時(shí)刪除一段時(shí)間內(nèi)的歷史圖片,并保存該圖片。
在本發(fā)明的在Web端動態(tài)顯示圖片的方法中,如果步驟(e)中所述種子數(shù)未達(dá)到該預(yù)設(shè)的種子數(shù)上限,則保存該圖片。
實(shí)施本發(fā)明的在Web端動態(tài)顯示圖片的方法,具有以下有益效果本發(fā)明所提供的方法容易實(shí)現(xiàn),不需要特定環(huán)境支持,具有通用性,并且使HTML頁面的顯示更加多元化,更加友好。在本發(fā)明中不需要在客戶端安裝任何控件,就能像瀏覽一般網(wǎng)頁瀏覽頁面。且安全性好,因?yàn)楸痉椒ㄖ袩o需下載任何程序,而且不會占據(jù)額外的內(nèi)存,不會對用戶構(gòu)成威脅。另外,由于該方案最后產(chǎn)生的是一張圖片,所以只需通過瀏覽器就可以直接打印,或者通過直接保存圖片進(jìn)行保存,十分方便。
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是本發(fā)明一種在Web端動態(tài)顯示圖片的方法的主流程圖;圖2是本發(fā)明一種在Web端動態(tài)顯示圖片的方法的構(gòu)圖的流程圖。
具體實(shí)施例方式
本發(fā)明提供一種在Web端動態(tài)顯示圖片的方法。在本發(fā)明的很多地方會以Java語言為類來進(jìn)行說明,本發(fā)明不限于此,亦可以采用其它的語言。當(dāng)用戶需要獲得數(shù)據(jù)庫中的特定數(shù)據(jù),并希望這些數(shù)據(jù)以動態(tài)圖片(例如柱狀圖、餅圖、線條圖等)的形式顯示時(shí),可采用本發(fā)明所提供的方法。
如圖1所示,在本發(fā)明的主流程圖中,首先,用戶可以通過訪問web頁面,發(fā)送一個(gè)請求至應(yīng)用服務(wù)器中流程處理類模塊(如Java中的Servlet流程處理類模塊),在該請求中攜帶有所請求的數(shù)據(jù)相關(guān)的參數(shù)(如數(shù)據(jù)的時(shí)間范圍、數(shù)據(jù)類別、希望顯示的圖片類型等)。流程處理類模塊會將該請求發(fā)送給后臺處理模塊;后臺處理模塊查詢存儲有特定數(shù)據(jù)的數(shù)據(jù)庫,找到用戶所請求的基本數(shù)據(jù)(該基本數(shù)據(jù)可能是一些原始數(shù)據(jù),用戶希望得到數(shù)據(jù)可能是對這些原始數(shù)據(jù)進(jìn)行分析后的數(shù)據(jù))。后臺處理模塊把這些基本數(shù)據(jù)進(jìn)行計(jì)算,該計(jì)算包括對所述基本數(shù)據(jù)的統(tǒng)計(jì)(如求和、求平均值、排序等),并將其傳送給流程處理類模塊中。此時(shí),流程處理類模塊調(diào)用構(gòu)圖類模塊中的實(shí)例構(gòu)圖方法。該構(gòu)圖類模塊首先利用一定的工具(如Java JDK中的工具)產(chǎn)生一張圖片(該圖片可為用戶所請求的類型,例如,其可為一JPG圖片),并根據(jù)所要顯示的數(shù)據(jù)的多少,設(shè)定該圖片的大小。根據(jù)后臺產(chǎn)生的數(shù)據(jù)在該圖片上進(jìn)行畫圖的操作(如標(biāo)坐標(biāo)、畫點(diǎn)、畫線、畫圓等)。該構(gòu)圖類模塊根據(jù)圖片產(chǎn)生的時(shí)間對該圖片進(jìn)行命名并保存在應(yīng)用服務(wù)器的預(yù)定區(qū)域(如一個(gè)Java文件夾中),該命名是唯一的。此時(shí),構(gòu)圖類模塊可向流程處理類模塊返回該圖片的一些基本參數(shù)(如圖片名、圖片寬度、長度等);而Web頁面即可根據(jù)該圖片名在應(yīng)用服務(wù)器的預(yù)定區(qū)域查找到該圖片,并在Web頁面上顯示該圖片。
上述,Web頁面可存儲在一Web服務(wù)器中,而流程處理類模塊、構(gòu)圖類模塊及后臺處理模塊均可設(shè)在應(yīng)用服務(wù)器中。
在本發(fā)明中,根據(jù)后臺產(chǎn)生的數(shù)據(jù)在應(yīng)用服務(wù)器中產(chǎn)生圖片,然后在該圖片上進(jìn)行畫圖以產(chǎn)生用戶所請求的圖片,畫圖完成之后保存該圖片,由于Web頁面可提供多人同時(shí)訪問,如果所有用戶只用采用一個(gè)圖片來畫圖的話,由于用戶的并發(fā)訪問,則很有可能會出現(xiàn)用戶得到的錯(cuò)誤信息的情況。所以在本發(fā)明中采用一個(gè)靜態(tài)圖片名種子數(shù)來對圖片進(jìn)行命名,以保證每個(gè)圖片名都是唯一的。當(dāng)用戶向Web頁面發(fā)送一個(gè)請求時(shí),應(yīng)用服務(wù)器會為該用戶分配一個(gè)種子,根據(jù)該種子,并結(jié)合圖片產(chǎn)生時(shí)間可產(chǎn)生一張對應(yīng)名字的圖片(當(dāng)該步驟是同步操作,保證圖片名不會重名),而且每一張圖片的長度和寬度都有可能不同。當(dāng)應(yīng)用服務(wù)器中的種子數(shù)達(dá)到一個(gè)預(yù)定的上限的時(shí),應(yīng)用服務(wù)器自動便會把種子數(shù)清零,并且從頭分配種子數(shù),同時(shí)刪除一段時(shí)間內(nèi)的歷史圖片。
如圖2所示,是本發(fā)中構(gòu)圖類模塊的更詳細(xì)的流程圖。在本發(fā)明中,所述構(gòu)圖包括產(chǎn)生某類型的圖片,并且在其上面進(jìn)行畫圖(如畫線、畫坐標(biāo)等)的過程。當(dāng)流程處理類模塊接收到來自后臺處理模塊將要顯示的數(shù)據(jù)后,其可以調(diào)用構(gòu)圖類模塊中的構(gòu)圖方法。首先利用該構(gòu)圖類模塊中的工具(如Java JDK中的iava.awt.image.BufferedImage類)產(chǎn)生一張預(yù)定類型的圖片,并設(shè)定該圖片的大小。
然后利用工具(如java.awt.Graphics2D類)并結(jié)合來自后臺處理模塊的數(shù)據(jù)在該圖片上進(jìn)行畫圖(以將這些數(shù)據(jù)能在圖片上表示出來),并根據(jù)圖片產(chǎn)生時(shí)間結(jié)合應(yīng)用服務(wù)器所分配的種子數(shù)對圖片進(jìn)行唯一性命名;此時(shí)要判斷種子數(shù)是否達(dá)到預(yù)設(shè)上限,如果種子數(shù)達(dá)到該預(yù)設(shè)的上限時(shí),系統(tǒng)便會自動把種子數(shù)清零,并且重新分配種子數(shù),同時(shí)刪除一段時(shí)間內(nèi)的歷史圖片,并保存該圖片。
如果此時(shí)種子數(shù)尚未達(dá)到上限值,則對保存該圖片(如采用javax.imageio.ImageIO.write的方式),將該圖片保存在在應(yīng)用服務(wù)器的預(yù)定區(qū)域。
流程處理類模塊將該圖片的基本參數(shù)(諸如圖片名、圖片寬度、長度等)返回給Web頁面,Web頁面根據(jù)圖片名查找該圖片并顯示。
本發(fā)明所提供的方法容易實(shí)現(xiàn),不需要特定環(huán)境支持,具有通用性,并且使HTML頁面的顯示更加多元化,更加友好。在本發(fā)明中不需要在客戶端安裝任何控件,就能像瀏覽一般網(wǎng)頁瀏覽頁面。且安全性好,因?yàn)楸痉椒ㄖ袩o需下載任何程序,而且不會占據(jù)額外的內(nèi)存,不會對用戶構(gòu)成威脅。
權(quán)利要求
1.一種在Web端動態(tài)顯示圖片的方法,其包括(a)用戶訪問Web頁面,發(fā)送請求至應(yīng)用服務(wù)器中流程處理類模塊;(b)流程處理類模塊將該請求發(fā)送給后臺處理模塊,后臺處理模塊查詢數(shù)據(jù)庫,得到要顯示的數(shù)據(jù),并把這些要顯示的數(shù)據(jù)傳送到流程處理類模塊中;其特征在于,進(jìn)一步包括(c)流程處理類模塊調(diào)用構(gòu)圖類模塊,根據(jù)后臺處理模塊所返回的數(shù)據(jù),產(chǎn)生一張圖片,并在該圖片上進(jìn)行畫圖,并返回關(guān)于該圖片參數(shù);(d)Web頁面根據(jù)流程處理類模塊所返回參數(shù),查找該圖片并顯示。
2.如權(quán)利要求1所述的在Web端動態(tài)顯示圖片的方法,其特征在于,進(jìn)一步包括對后臺處理模塊對要顯示的數(shù)據(jù)進(jìn)行計(jì)算的步驟。
3.根據(jù)權(quán)利要求1所述的在Web端動態(tài)顯示圖片的方法,其特征在于,在步驟(c)與步驟(d)之間進(jìn)一步包括(e)根據(jù)用戶發(fā)送請求時(shí)所分配的種子,結(jié)合圖片產(chǎn)生時(shí)間為所述圖片的生成一個(gè)圖片名。
4.根據(jù)權(quán)利要求3所述的在Web端動態(tài)顯示圖片的方法,其特征在于,在步驟(e)之后進(jìn)一步包括判斷種子數(shù)是否達(dá)到上限的步驟,所述種子數(shù)上限為預(yù)先設(shè)定。
5.根據(jù)權(quán)利要求4所述的在Web端動態(tài)顯示圖片的方法,其特征在于,如果所述種子數(shù)達(dá)到該預(yù)設(shè)的種子數(shù)上限,則將種子數(shù)清零,并且重新分配種子數(shù),同時(shí)刪除一段時(shí)間內(nèi)的歷史圖片,并保存該圖片。
6.根據(jù)權(quán)利要求4所述的在Web端動態(tài)顯示圖片的方法,其特征在于,如果所述種子數(shù)未達(dá)到該預(yù)設(shè)的種子數(shù)上限,則保存該圖片。
全文摘要
一種在Web端動態(tài)顯示圖片的方法,其包括用戶訪問Web頁面,發(fā)送請求至應(yīng)用服務(wù)器中流程處理類模塊;流程處理類模塊將該請求發(fā)送給后臺處理模塊,后臺處理模塊查詢數(shù)據(jù)庫,得到要顯示的數(shù)據(jù),并把這些要顯示的數(shù)據(jù)傳送到流程處理類模塊中;流程處理類模塊調(diào)用構(gòu)圖類模塊,根據(jù)后臺處理模塊所返回的數(shù)據(jù),產(chǎn)生一張圖片,并在該圖片上進(jìn)行畫圖,并返回關(guān)于該圖片參數(shù);Web頁面根據(jù)流程處理類模塊所返回參數(shù),查找該圖片并顯示。本發(fā)明所提供的方法容易實(shí)現(xiàn),不占用額外的內(nèi)存,通用性強(qiáng),且使用方便、安全性好。
文檔編號G06F17/30GK1851697SQ200510100898
公開日2006年10月25日 申請日期2005年10月28日 優(yōu)先權(quán)日2005年10月28日
發(fā)明者賴俊彬 申請人:華為技術(shù)有限公司