版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 目 錄摘要- 1 -abstract- 1 -1、 xml技術(shù)概述- 1 -1.1 xml技術(shù)背景介紹- 1 -1.2 xml的優(yōu)點(diǎn)- 1 -1.3 xml基礎(chǔ)- 2 -1.3.1 xml的術(shù)語- 2 -1.3.2 xml語法- 2 -1.3.3 用xsl顯示xml文檔- 6 -1.3.4 dom技術(shù)- 6 -1.4 xml與數(shù)據(jù)庫- 8 -2、 web編程開發(fā)方法- 10 -2.1 結(jié)構(gòu)化開發(fā)方法- 10 -2.1.1 基本思想- 10 -2.1.2 java與結(jié)構(gòu)化開發(fā)方法- 10 -2.2 面向?qū)ο箝_發(fā)方法- 11 -2.2.1 基本思想- 11 -2.2.2 java與面向?qū)ο箝_發(fā)方
2、法- 11 -2.3 基于組件的開發(fā)方法- 12 -2.3.1 基本思想- 12 -2.3.2 框架規(guī)則- 12 -2.3.3 mvc框架- 13 -2.3.4 struts框架- 14 -3、 結(jié)論- 14 -參考文獻(xiàn)- 15 -xml與web編程開發(fā)方法摘要:本文主要對(duì)xml技術(shù)和基于組件驅(qū)動(dòng)的web編程技術(shù)進(jìn)行了說明和分析。xml技術(shù)作為現(xiàn)今最流行的可擴(kuò)展置標(biāo)語言,基于xml的系統(tǒng),具有方便、靈活和擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)?;诮M件的開發(fā)是現(xiàn)今軟件復(fù)用理論實(shí)用化的研究熱點(diǎn),在組件的支持下,通過復(fù)用已有的構(gòu)件,軟件開發(fā)者可以“即插即用”地快速構(gòu)造應(yīng)用軟件。這樣不僅可以節(jié)省時(shí)間和經(jīng)費(fèi),提高工作效率,而
3、且可以產(chǎn)生更加規(guī)范、更加可靠的軟件。而基于組件驅(qū)動(dòng)的web編程,開發(fā)web應(yīng)用的過程中最常用的框架是模型視窗控制器(mvc)框架,它減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合程度,讓視圖層更加富于變化。abstract:this paper mainly driven by xml technology and web-based programming techniques for description and analysis.as of this moment, the most popular xml extensible markup language, xml-based syste
4、m is convenient, flexible and extensible etc.web-based and driven programming, the process of web application development framework is the most commonly used model-windows-controller (mvc) framework, it weakened the business logic and data adapter to the coupling between the adapters so that more ri
5、chly varied view layer.1、 xml技術(shù)概述1.1 xml技術(shù)背景介紹“可擴(kuò)展標(biāo)記語言”(xml)提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法。與主要用于控制數(shù)據(jù)的顯示和外觀的html標(biāo)記不同,xml標(biāo)記用于定義數(shù)據(jù)本身的結(jié)構(gòu)和數(shù)據(jù)類型。xml使用一組標(biāo)記來描繪數(shù)據(jù)元素。每個(gè)元素封裝可能十分簡單也可能十分復(fù)雜的數(shù)據(jù)。您可以定義一組無限制的xml標(biāo)記。xml是一種簡單、與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn)。xml相對(duì)于html的優(yōu)點(diǎn)是它將用戶界面與結(jié)構(gòu)化數(shù)據(jù)分隔開來。1.2 xml的優(yōu)點(diǎn)使用xml來交換信息有很多好處,包括下列方面:使用人的語言而不是計(jì)算機(jī)語言。xml便于閱讀且容易理解,即使對(duì)于初
6、學(xué)者亦是如此,它與html編碼一樣容易。與java完全兼容且完全可以移植。(在任何操作系統(tǒng)上)可以何應(yīng)用程序都可以使用您的信息??蓴U(kuò)展。創(chuàng)建您自己的標(biāo)記或使用別人創(chuàng)建的標(biāo)記,這些標(biāo)記使用您的域的基本語言、具有您需要的屬性,且對(duì)您和您的用戶都很有意義。xml標(biāo)記名便于閱讀,且表達(dá)了數(shù)據(jù)的含義。每個(gè)xml標(biāo)記就位于相關(guān)聯(lián)數(shù)據(jù)的前面,這樣人和計(jì)算機(jī)都可以容易地識(shí)別信息結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)遵循顯而易見且有用的模式,使得處理和交換數(shù)據(jù)更容易。1.3 xml基礎(chǔ)1.3.1 xml的術(shù)語1.element(元素)元素在html我們已經(jīng)有所了解,它是組成html文檔的最小單位,在xml中也一樣。一個(gè)元素由一個(gè)標(biāo)識(shí)來
7、定義,包括開始和結(jié)束標(biāo)識(shí)以及其中的內(nèi)容,就像這樣:john。唯一不同的就是在html中,標(biāo)識(shí)是固定的,而在xml中,標(biāo)識(shí)需要你自己創(chuàng)建。2.tag(標(biāo)識(shí))標(biāo)識(shí)是用來定義元素的。在xml中,標(biāo)識(shí)必須成對(duì)出現(xiàn),將數(shù)據(jù)包圍在中間。標(biāo)識(shí)的名稱和元素的名稱是一樣的。例如這樣一個(gè)元素:john其中就是標(biāo)識(shí)。3.attribute(屬性)屬性是對(duì)標(biāo)識(shí)進(jìn)一步的描述和說明,一個(gè)標(biāo)識(shí)可以有多個(gè)屬性。xml中的屬性與html中的屬性是一樣的,每個(gè)屬性都有它自己的名字和數(shù)值,屬性是標(biāo)識(shí)的一部分,就像這樣:john。xml中屬性也是自己定義的,我們建議你盡量不使用屬性,而將屬性改成子元素,原因是屬性不易擴(kuò)充和被程序操作
8、。4.declaration(聲明)在所有xml文檔的第一行都有一個(gè)xml聲明。這個(gè)聲明表示這個(gè)文檔是一個(gè)xml文檔,它遵循的是哪個(gè)xml版本的規(guī)范。一個(gè)xml的聲明語句就像這樣:。1.3.2 xml語法 xml語法規(guī)則規(guī)則1:必須有xml聲明語句聲明是xml文檔的第一句,其格式如下:聲明的作用是告訴瀏覽器或者其它處理程序:這個(gè)文檔是xml文檔。聲明語句中的version表示文檔遵守的xml規(guī)范的版本;standalone表示文檔是否附帶dtd文件,如果有,參數(shù)為no;encoding表示文檔所用的語言編碼,默認(rèn)是utf-8。規(guī)則2:是否有dtd文件如果文檔是一個(gè)有效的xml文檔
9、,那么文檔一定要有相應(yīng)dtd文件,并且嚴(yán)格遵守dtd文件制定的規(guī)范。dtd文件的聲明語句緊跟在xml聲明語句后面,格式如下:其中:“!doctype”是指你要定義一個(gè)doctype;“type-of-doc”是文檔類型的名稱,由你自己定義,通常與dtd文件名相同;“system/public”這兩個(gè)參數(shù)只用其一。system是指文檔使用的私有dtd文件的網(wǎng)址,而public則指文檔調(diào)用一個(gè)公用的dtd文件的網(wǎng)址。“dtd-name”就是dtd文件的網(wǎng)址和名稱。所有dtd文件的后綴名為“.dtd”。規(guī)則3:注意你的大小寫在xml文檔中,大小寫是有區(qū)別的。在寫元素時(shí),前后標(biāo)識(shí)大小寫要保持一致。規(guī)則
10、4:給屬性值加引號(hào)在html代碼里面,屬性值可以加引號(hào),也可以不加。但是在xml中則規(guī)定,所有屬性值必須加引號(hào)(可以是單引號(hào),也可以是雙引號(hào)),否則將被視為錯(cuò)誤。規(guī)則5:所有的標(biāo)識(shí)必須有相應(yīng)的結(jié)束標(biāo)識(shí)在html中,標(biāo)識(shí)可能不是成對(duì)出現(xiàn)的。而在xml中規(guī)定,所有標(biāo)識(shí)必須成對(duì)出現(xiàn),有一個(gè)開始標(biāo)識(shí),就必須有一個(gè)結(jié)束標(biāo)識(shí),否則將被視為錯(cuò)誤。規(guī)則6:所有的空標(biāo)識(shí)也必須被關(guān)閉空標(biāo)識(shí)就是標(biāo)識(shí)對(duì)之間沒有內(nèi)容的標(biāo)識(shí)。在xml中,規(guī)定所有的標(biāo)識(shí)必須有結(jié)束標(biāo)識(shí),針對(duì)這樣的空標(biāo)識(shí),xml中處理的方法是在原標(biāo)識(shí)最后加/,就可以了。元素的語法元素由一對(duì)標(biāo)識(shí)以及其中的內(nèi)容組成。元素的名稱和標(biāo)識(shí)的名稱是一樣的。
11、標(biāo)識(shí)可以用屬性來進(jìn)一步描述。在xml中沒有任何保留字,所以可以用任何詞語來作為元素名稱。但是必須遵守下列規(guī)范:1.名稱中可以包含字母、數(shù)字以及其它字母;2.名稱不能以數(shù)字或“_”(下劃線)開頭;3.名稱不能以字母xml(或xml或xml)開頭;4.名稱中不能包含空格;5.名稱中間不能包含“:”(冒號(hào))。注釋的語法注釋是為了便于閱讀和理解,在xml文檔添加的附加信息,將不會(huì)被程序解釋或則瀏覽器顯示。注釋的語法如下: cdata的語法cdata全稱character data,翻譯為字符數(shù)據(jù)。我們?cè)趯憍ml文檔時(shí),有時(shí)需要顯示字母,數(shù)字和其它的符號(hào)本身,比如,而在xml
12、中,這些字符已經(jīng)有特殊的含義,我們?cè)趺崔k呢?這就需要用到cdata語法格式如下:例如:!cdatajohn在頁面上顯示為:“john”。 namespaces的語法namespaces翻譯為名字空間。名字空間有什么作用呢?當(dāng)我們?cè)谝粋€(gè)xml文檔中使用他人的或者多個(gè)dtd文件,就會(huì)出現(xiàn)這樣的矛盾:因?yàn)閤ml中標(biāo)識(shí)都是自己創(chuàng)建的,在不同的dtd文件中,標(biāo)識(shí)名可能相同但表示的含義不同,這就可能引起數(shù)據(jù)混亂。比如在一個(gè)文檔wood table中表示桌子,而在另一個(gè)文檔namelist中表示表格。如果我需要同時(shí)處理這兩個(gè)文檔,就會(huì)發(fā)生名字沖突。了解決這個(gè)問題,我們引進(jìn)了namespaces
13、這個(gè)概念。namespaces通過給標(biāo)識(shí)名稱加一個(gè)網(wǎng)址(url)定位的方法來區(qū)別這些名稱相同的標(biāo)識(shí)。namespaces同樣需要在xml文檔的開頭部分聲明,聲明的語法如下:其中yourname是由你定義的namespaces的名稱,url就是名字空間的網(wǎng)址。假設(shè)上面的桌子文檔來自,我們就可以聲明為然后在后面的標(biāo)識(shí)中使用定義好的名字空間:wood table這樣就將這兩個(gè)區(qū)分開來。注意的是:設(shè)置url并不是說這個(gè)標(biāo)識(shí)真的要到那個(gè)網(wǎng)址去讀取,僅僅作為一種區(qū)別的標(biāo)志而已。 entity的語法entity翻譯為實(shí)體。它的作用類似word中的宏,也可以理解為dw中的摸板,你可以預(yù)先定義一個(gè)
14、entity,然后在一個(gè)文檔中多次調(diào)用,或者在多個(gè)文檔中調(diào)用同一個(gè)entity。entity可以包含字符,文字等等,使用entity的好處在于:1.它可以減少差錯(cuò),文檔中多個(gè)相同的部分只需要輸入一遍就可以了。2.它提高維護(hù)效率。比如你有40個(gè)文檔都包含copyright的entity,如果需要修改這個(gè)copyright,不需要所有的文件都修改,只要改最初定義的entity語句就可以了。xml定義了兩種類型的entity。一種是我們這里說的普通entity,在xml文檔中使用;另一種是參數(shù)entity,在dtd文件中使用。entity的定義語法為:!doctype filename例如我要定義一
15、段版權(quán)信息:!doctype copyright如果我的版權(quán)信息內(nèi)容和他人共享一個(gè)xml文件,也可以使用外部調(diào)用的方法,語法像這樣:!doctype copyright定義好的entity在文檔中的引用語法為:&entity-name;例如,上面定義的版權(quán)信息,調(diào)用時(shí)寫作?copyright;完整的例子如下,你可以copy下來存為copyright.xml觀看實(shí)例:!doctype copyrightxmlajieajie20010115©right; schema的語法xml schema是microsoft指定的技術(shù)規(guī)范它是基于xml-data和dcd的。dtd使用了
16、一種特殊的規(guī)范來定義在各種文件中使用xml標(biāo)記的規(guī)范。但是,有些常用的限制不能用dtd來表述。這就需要使用schema,它的很多情況下的作用和dtd差不多。但它的功能要超過dtd。xml schema是用來描述xml元素和屬性的。它基本上包括屬性和元素類型說明,可以為xml元素和屬性提供內(nèi)容模塊。schema相對(duì)與dtd的明顯不同是xml schema文檔本身也是xml文檔,而不像dtd一樣使用特殊格式。這給用戶帶來了三個(gè)好處:不需要知道兩種語法來編寫語法合格的xml schema。軟件工具可以利用xml文檔和schema之間的語法通用這一點(diǎn)為兩者提供支持。作為xml文檔,xml schema
17、能夠擴(kuò)展出去。能向xml schema中加入元素和屬性。只要元素和屬性名域不同,它們?cè)谝粋€(gè)schema中是合法的,這個(gè)大大方便了用戶和開發(fā)者,因?yàn)樗麄兛梢允褂孟嗤墓ぞ邅硖幚韝ml schema和其它xml信息,而不必專門為schema使用特殊工具。schema定義的數(shù)據(jù)類型要比dtd全面。dtd值允許把內(nèi)容類型定義為一個(gè)字符串。xml schema允許把內(nèi)容類型定義為整型、浮點(diǎn)型、數(shù)據(jù)型、布爾型或者許多其它的簡單數(shù)據(jù)類型。如果想要編寫一個(gè)應(yīng)用軟件來處理某個(gè)值為整型的元素內(nèi)容,在dtd的例子中必須把它轉(zhuǎn)換為整型,而在schema例子中,可以直接得到那個(gè)整數(shù)值。xml schema集成了名域,允
18、許文檔的特殊節(jié)點(diǎn)與schema中的類型說明聯(lián)系起來。聯(lián)系xml節(jié)點(diǎn)和dtd的唯一方法是通過doctype說明。這是有限的,因?yàn)槊總€(gè)文檔實(shí)例只能用一個(gè)dtd。多個(gè)schema可以來描述一個(gè)xml文檔,因?yàn)閤ml schema自身不描述xml文檔,它描述xml元素。schema的優(yōu)勢(shì)以及它的可以擴(kuò)充的能力使它成為描述數(shù)據(jù)的最佳的選擇之一。下面列出了schema的一些例子:/表示該元素出現(xiàn)次數(shù)大于1/表示該元素僅包括文本不含有子元素/表示所列的子元素必須安升序出現(xiàn)1.3.3 用xsl顯示xml文檔xml是一種元標(biāo)記語言,沒有許多固定的標(biāo)記,為web開發(fā)人員提供了更大的靈活性。使用xml我們可以做到自
19、定義標(biāo)記,用標(biāo)記表明內(nèi)容的含義。這樣在internet上交流資料時(shí),為用計(jì)算機(jī)處理文檔提供了極大的方便。然而,由于xml并沒有為標(biāo)記規(guī)定顯示方式,我們無法在瀏覽器中看到以諸如表格方式顯示的xml文檔。為了解決這個(gè)問題,xml可以采用以下兩種技術(shù):css與xsl。但使用css來格式化xml文檔的效果交不令人滿意,而xsl則是專門為了xml所設(shè)計(jì)的樣式表。xsl包含兩大部分:xslt和xsl formatting object。xslt(xsl31 transformations)一種用來轉(zhuǎn)換文件的語言。xsl formatting object:一組用來格式化(排版)語意的詞匯。xsl轉(zhuǎn)換xml
20、分為兩個(gè)步驟:(1)xsl處理器首先要做的是通過分析器(dom或sax)技術(shù)讀取xml標(biāo)記及數(shù)據(jù)。當(dāng)瀏覽器通過xml dom對(duì)象讀取到xml的樹狀結(jié)構(gòu)與數(shù)據(jù)后,將xml樹狀結(jié)構(gòu)重新排行組合后產(chǎn)生一個(gè)暫時(shí)的數(shù)狀結(jié)構(gòu),這個(gè)樹狀結(jié)構(gòu)稱為結(jié)果樹。在這個(gè)結(jié)果樹產(chǎn)生后,若又出現(xiàn)了新的標(biāo)記或數(shù)據(jù),必須把它一起并入結(jié)果樹。(2)結(jié)果樹也是樹狀結(jié)構(gòu),可以利用dom技術(shù)訪問結(jié)果樹的數(shù)據(jù),其中數(shù)據(jù)以節(jié)點(diǎn)方式顯示,并且預(yù)留一個(gè)記錄樣式的位置。xsl處理其中的程序?qū)⑦@些數(shù)據(jù)轉(zhuǎn)換為另一種well-formed xml文件(如:wml、html、voicexml等)。1.3.4 dom技術(shù)dom是對(duì)xml開發(fā)者相當(dāng)重要的,
21、對(duì)于xml應(yīng)用開發(fā)來說就是一個(gè)對(duì)象化的xml數(shù)據(jù)接口。最基本的xml開發(fā)通常都要使用它。簡單說,dom就是一組對(duì)象的集合,通過操縱這些對(duì)象,我們就能操縱xml和html數(shù)據(jù)。dom全稱是document object model,人如其名,dom就是一個(gè)文檔對(duì)象組成的模型,它不光用于xml,最先是起于html的。對(duì)作過web開發(fā)的人,特別是寫過動(dòng)態(tài)dhtml的人,應(yīng)該對(duì)html中的文檔對(duì)象有一定概念,dom就是這樣一個(gè)對(duì)象模型的標(biāo)準(zhǔn)。dom另外又是一個(gè)接口,一個(gè)與語言無關(guān)的接口,應(yīng)用通過這個(gè)接口來和xml或html內(nèi)的數(shù)據(jù)打交道。無論是在瀏覽器里,還是在瀏覽器外,在服務(wù)器上,還是客戶端,我們只
22、要用xml就會(huì)碰到dom。1.dom的來由為什么要定義這樣一個(gè)接口呢?這樣講吧,我們知道數(shù)據(jù)庫有標(biāo)準(zhǔn)的odbc/jdbc這樣的接口規(guī)范,那么我們使用xml數(shù)據(jù)如果沒有一個(gè)統(tǒng)一的接口,我們寫程序是不是要每個(gè)人都要自己去處理xml的語法細(xì)節(jié),如果我們手頭有xml的語法分析器(有人譯為解析器),它也必然有一個(gè)接口讓我們通過它訪問xml數(shù)據(jù),所有語法分析器的接口如果都不相同,我們開發(fā)就必須針對(duì)某一個(gè)分析器,如果換了分析器,程序就必須重寫。到這里,又和數(shù)據(jù)庫有可比性了,我們編數(shù)據(jù)庫應(yīng)用可以不管后面的數(shù)據(jù)庫系統(tǒng)究竟是oracle還是sybase,或informix,是因?yàn)橛辛薿dbc,所以要是我們做xml
23、應(yīng)用開發(fā),就應(yīng)該有一個(gè)統(tǒng)一的xml數(shù)據(jù)接口,這個(gè)接口就是dom。2.dom的三部分目前的dom分為核心(core)、html、xml三部分。核心:這部分是結(jié)構(gòu)化文檔比較底層的對(duì)象的集合,但他們就已經(jīng)可以表達(dá)出任何html和xml文件了。html和xml:這兩部分是專為xml和html提供的另外的高級(jí)接口,使操縱者兩類文件更方便。3.dom組成圖1.1是dom的整體組成圖,給出了dom模型基本組成的概念。圖1.1 dom整體組成4.文件樹dom中的最基本對(duì)象應(yīng)該就是node了。從它又派生出許多類型的node。所有這些node組成一棵文件樹,它包含了xml或html文檔的幾乎全部信息。在結(jié)構(gòu)化文檔
24、中,信息是按層次化的樹形結(jié)構(gòu)組織的。所以結(jié)構(gòu)化文檔的模型的組織也必然是樹形的。node簡單的說,就是上面樹形結(jié)構(gòu)中的節(jié)點(diǎn),但對(duì)xml來說還包括其他xml語法相關(guān)的節(jié)點(diǎn),包括xml聲明,文件類型聲明,處理指令等等。node提供一些基本屬性和操作,各種類型的node則繼承node的屬性和操作,同時(shí)有各自特殊的屬性和操作。比如elementnode。5.基本對(duì)象上面已經(jīng)講了dom中最基本的對(duì)象就是節(jié)點(diǎn),它的接口定義如下:從node派生出的幾個(gè)比較重要的節(jié)點(diǎn)類型有document、element、attribute、text。document是dom樹的根,它代表一個(gè)完整的xml文檔。它會(huì)有一些自己的
25、子節(jié)點(diǎn),至少應(yīng)該有一個(gè)文檔元素的子節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)類型為element,是xml文件最外層的根元素,此外他還可能有documenttype(唯一),processinginstruction,comment這幾種作為子節(jié)點(diǎn)。element代表xml元素,是最常用的節(jié)點(diǎn),它可以組成以它為根的dom的子樹。他還可以有element子節(jié)點(diǎn),以及attribut,text,processinginstruction,cdatasection,comment子節(jié)點(diǎn)。attribute是xml元素的屬性,它的父節(jié)點(diǎn)必然是element,它的子節(jié)點(diǎn)有text和entityreference。除了node,do
26、m里還有兩個(gè)比較重要的對(duì)象:nodelist它實(shí)現(xiàn)的一個(gè)節(jié)點(diǎn)的序列,用于表示有順序關(guān)系的一組節(jié)點(diǎn),比如某個(gè)節(jié)點(diǎn)的孩子節(jié)點(diǎn)序列,它還出現(xiàn)在一些方法的返回值中,例如getnodebyname。namednodemap它表示的是一組節(jié)點(diǎn)和其唯一的名字的對(duì)應(yīng)關(guān)系,這個(gè)對(duì)象主要用在屬性節(jié)點(diǎn)的表示上。1.4 xml與數(shù)據(jù)庫xml的特性使之成為在線和離線數(shù)據(jù)的共同語言?,F(xiàn)在的問題是,怎樣管理xml標(biāo)記的數(shù)據(jù)。一種可行的方法是用數(shù)據(jù)庫對(duì)xml進(jìn)行存儲(chǔ)、檢索和操作,即把xml標(biāo)記的數(shù)據(jù)收入一個(gè)框架中,在一種更容易管理、更系統(tǒng)化、更為人們所熟悉的環(huán)境中完成搜索、分析、更新和成果輸出工作。目前有兩種不同的觀點(diǎn):一種
27、觀點(diǎn)認(rèn)為,只有以xml原始的格式存儲(chǔ)xml的數(shù)據(jù)庫才能稱為xml數(shù)據(jù)庫;另一種觀點(diǎn)認(rèn)為,只要能存入和檢出xml,且它本身又是一個(gè)數(shù)據(jù)庫,那它就是一個(gè)xml數(shù)據(jù)庫,而不必考慮數(shù)據(jù)是怎樣存入的。而我們認(rèn)為,凡內(nèi)部不是以xml格式存儲(chǔ)的xml數(shù)據(jù)庫,叫做“xml-enabled數(shù)據(jù)庫”;如果內(nèi)部以xml格式存儲(chǔ)數(shù)據(jù),就稱為“native-xml數(shù)據(jù)庫”。使用現(xiàn)有的數(shù)據(jù)庫類型和產(chǎn)品而不是以原始格式來存儲(chǔ)xml,是出自以下幾種考慮:首先,普通的關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫己盡人皆知,而native-xml數(shù)據(jù)庫是新的;其次,人們熟知現(xiàn)有的關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫,也了解它們的行為和性能,因此他們不愿意轉(zhuǎn)
28、向native-xml數(shù)據(jù)庫,因?yàn)槠湫阅?,特別是可伸縮性尚未經(jīng)過檢驗(yàn);最后,在企業(yè)看來,選擇關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫是比較安全的,使用新的native-xml數(shù)據(jù)庫具有一定的風(fēng)險(xiǎn)?,F(xiàn)在己經(jīng)有一些能夠很好地處理xml的xml-enabled數(shù)據(jù)庫,并且是由久經(jīng)考驗(yàn)的關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫擔(dān)此重任。這些數(shù)據(jù)庫在收到xml后,將其分解為字段并按通常的方式存儲(chǔ)它們,當(dāng)檢索xml時(shí),這些字段再被拼接成原狀。在關(guān)系數(shù)據(jù)庫中處理xml數(shù)據(jù)時(shí),可用第三方中間件進(jìn)行轉(zhuǎn)換,如xml-dbms,這是一種基于java database connectivity(jdbc)的工具,可以在xml文檔和數(shù)據(jù)庫之間傳輸
29、數(shù)據(jù)。但是,利用關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫存儲(chǔ)xml也有很大的缺點(diǎn),例如,xml最具吸引力的特性之一是其分層結(jié)構(gòu),而關(guān)系數(shù)據(jù)庫卻將xml映射成關(guān)系表,從而將xml結(jié)構(gòu)變成了平面的行和列。另外,遇到大型或復(fù)雜文檔時(shí),在xml與數(shù)據(jù)庫之間進(jìn)行來回轉(zhuǎn)換要耗費(fèi)相當(dāng)多的處理時(shí)間,從而降低了web頁面的生成速度。目前,native-xml數(shù)據(jù)庫已經(jīng)開始出現(xiàn),盡管人們還不能完全信任它,但的確有一些native-xml數(shù)據(jù)庫開始在實(shí)際應(yīng)用中受到得青睞。另外,主流的數(shù)據(jù)庫廠商也可能在適當(dāng)?shù)臅r(shí)機(jī)推出自己的native-xml數(shù)據(jù)庫產(chǎn)品。第一個(gè),可能也是最有名的商用native-xml數(shù)據(jù)庫是位于美國加州的soft
30、wareag公司開發(fā)的tamino。除了可以存儲(chǔ)和訪問xml外,tamino多項(xiàng)功能,包括open database connectivity、符合unicode要求、http通信以及處理非xml數(shù)據(jù)的能力。gartner group的一份報(bào)告指出:“tamino特別適用于需要從多種不同平臺(tái)和格式整合信息并向業(yè)務(wù)伙伴或客戶散發(fā)這些信息的機(jī)構(gòu)?!睋?jù)介紹,tamino擁有直接xml檢索和特殊檢索的能力,其查詢語言強(qiáng)大而簡短,可進(jìn)入任意深度,使sql相形見絀。其它native-xml數(shù)據(jù)庫包括dbxml、excelon和xhive/db,分別由美國的dbxml group llc公司、excelon
31、公司和荷蘭的the connectionfactory公司研制。奇怪的是,對(duì)native-xml數(shù)據(jù)庫的主要批評(píng)之一是性能問題。有人預(yù)見到,當(dāng)所搜尋的信息位于大文檔的末尾時(shí),由于缺乏其它機(jī)制native-xml數(shù)據(jù)庫只能艱苦跋涉到最后,而關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫則可以將文檔分成小塊同時(shí)進(jìn)行搜索,速度當(dāng)然要快得多。當(dāng)然,上述困難并非無法克服,只要在存儲(chǔ)時(shí)給各文檔分別加上索引就行了。tamino就具有這種索引能力,從而彌補(bǔ)了大型文檔搜索的不足,另外native-xml存儲(chǔ)消除了不必要的轉(zhuǎn)換操作。目前,tamina有windowsnt、windows 2000、solaris和sco unix等版
32、本,將來還要出linux和一些大型機(jī)版本。目前,許多主流的數(shù)據(jù)庫廠商都在把xml支持結(jié)合到其產(chǎn)品中,或者提供可在其數(shù)據(jù)庫中使用xml的工具。ibm提供了xml extender fordb2,以允許用戶在db2中存儲(chǔ)xml文檔,并提供一些新功能協(xié)助用戶處理xml文檔;microsoft的sql server 6.5和7.0也進(jìn)行了xml擴(kuò)充,據(jù)悉sql將來要加入xml輸出選項(xiàng),用以向其它系統(tǒng)傳送信息。oracle也擁有功能強(qiáng)大的xml索引引擎。這些數(shù)據(jù)庫廠商不久將推出自己的native-x ml數(shù)據(jù)庫,以滿足基web的電子商務(wù)對(duì)xml數(shù)據(jù)處理的需求??傊瑇ml的需求正在擴(kuò)大,新的應(yīng)用包括采用
33、xml標(biāo)簽的internet搜索引擎、必須快速輸出結(jié)果的電子商務(wù)系統(tǒng)、電子政務(wù)系統(tǒng)、帶xml標(biāo)簽的電子數(shù)據(jù)交換、數(shù)據(jù)重復(fù)使用和內(nèi)容個(gè)性化。作為處理上述應(yīng)用的一環(huán),xml數(shù)據(jù)庫的需求也將快速增長。2、 web編程開發(fā)方法實(shí)現(xiàn)一個(gè)web應(yīng)用的發(fā)布要經(jīng)歷很多個(gè)發(fā)布的過程,包括原始內(nèi)容、設(shè)計(jì)、建立原型、編程、測(cè)試以及最終的發(fā)布。設(shè)計(jì)是個(gè)非常重要的過程,這是一個(gè)非常重要的過程,因?yàn)樵愀獾脑O(shè)計(jì)過程所導(dǎo)致的問題只有在發(fā)布以后才能顯現(xiàn)出來,而那時(shí)己經(jīng)太晚了。相反一個(gè)好的考慮周到的設(shè)計(jì)可以使可能出現(xiàn)的問題盡早被發(fā)現(xiàn),并且使web應(yīng)用更容易進(jìn)行維護(hù)和修改。有三種常見的設(shè)計(jì)方法:結(jié)構(gòu)化、面向?qū)ο?、基于組件。2.1
34、結(jié)構(gòu)化開發(fā)方法2.1.1 基本思想結(jié)構(gòu)化系統(tǒng)開發(fā)方法(structured system analysis and design ,ssa&d,)又稱結(jié)構(gòu)化生命周期法,是系統(tǒng)分析員、軟件工程師、程序以及最終用戶按照用戶至上的原則,自頂向下分析與設(shè)計(jì)和自底向上逐步實(shí)施的建立計(jì)算機(jī)信息系統(tǒng)的一個(gè)過程,是組織、管理和控制信息系統(tǒng)開發(fā)過程的一種基本框架。結(jié)構(gòu)化系統(tǒng)開發(fā)方法由管理策略和開發(fā)策略兩個(gè)部分組成:.管理策略部分強(qiáng)調(diào)系統(tǒng)開發(fā)的規(guī)劃、進(jìn)程安排、評(píng)估、監(jiān)控和反饋。.開發(fā)策略部分任務(wù)分解結(jié)構(gòu)(work breakdown structure優(yōu)先級(jí)結(jié)構(gòu)、開發(fā)經(jīng)驗(yàn)、開發(fā)標(biāo)準(zhǔn),簡稱wbs)。2.1.2 ja
35、va與結(jié)構(gòu)化開發(fā)方法使用jsp腳本來開發(fā)web應(yīng)用時(shí),如果只是用jsp而不使用任何benas或者自定義標(biāo)記,當(dāng)web應(yīng)用的規(guī)模比較小的時(shí)候不會(huì)出現(xiàn)太多的問題,但是在web應(yīng)用的規(guī)模增大時(shí),肯定會(huì)出現(xiàn)前面的問題。開發(fā)人員就很難修改它在體系上的問題,或是進(jìn)行功能的擴(kuò)展。在大多數(shù)情況下,這個(gè)程序中很少有文檔可以幫助用戶增加對(duì)它的理解,更重要的是,應(yīng)用程序的每個(gè)部分是緊密聯(lián)系在一起的,這個(gè)意味著開發(fā)所需要的時(shí)間會(huì)增加,對(duì)開發(fā)進(jìn)行的管理時(shí)間也必然會(huì)增加。結(jié)構(gòu)化的設(shè)計(jì)有一下幾個(gè)問題:1.html與java代碼的結(jié)合,這個(gè)需要web開發(fā)人員有java的知識(shí)。2.在客戶端的javascript和jsp代碼可能
36、會(huì)產(chǎn)生混淆。3.為了理解應(yīng)用程序內(nèi)在的邏輯,開發(fā)人員必須查看應(yīng)用程序調(diào)用的所有網(wǎng)頁,這對(duì)用上百個(gè)網(wǎng)頁的web來說是很難做的。4.一個(gè)包含了html、jsp代碼和java腳本的網(wǎng)頁查看起來是比較困難的,也會(huì)帶來調(diào)試方面的問題,并且不容易維護(hù)。在上述幾個(gè)問題中,有些可以使用面向?qū)ο蟮拈_發(fā)方法得到解決。2.2 面向?qū)ο箝_發(fā)方法2.2.1 基本思想面向?qū)ο箝_發(fā)方法認(rèn)為,客觀世界是由各種各樣的對(duì)象組成的,每種對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同的對(duì)象之間的相互作用和聯(lián)系就構(gòu)成了各種不同的系統(tǒng)。當(dāng)我們?cè)O(shè)計(jì)和實(shí)現(xiàn)一個(gè)客觀系統(tǒng)時(shí),如能在滿足需求的條件下,把系統(tǒng)設(shè)計(jì)成由一些不可變的(相對(duì)固定)部分組成的最小集
37、合,這個(gè)設(shè)計(jì)就是最好的。而這些不可變的部分就是所謂的對(duì)象。對(duì)象是面向?qū)ο箝_發(fā)方法的主體,對(duì)象至少應(yīng)有以下特征:模塊性。即對(duì)象是一個(gè)獨(dú)立存在的實(shí)體,從外部可以了解它的功能,但其內(nèi)部細(xì)節(jié)是“隱蔽”的,它不受外界干擾。對(duì)象之間的相互依賴性很小,因而可以獨(dú)立地被其它各個(gè)系統(tǒng)所選用。繼承和類比性。事物之間都有一定的相互聯(lián)系,事物在整體結(jié)構(gòu)中都會(huì)占有它自身的位置。在對(duì)象之間有屬性關(guān)系的共同性,在面向?qū)ο箝_發(fā)方法學(xué)中稱之為繼承性,即子模塊繼承了父模塊的屬性。通過類比方法抽象出典型對(duì)象的過程稱之為類比。動(dòng)態(tài)連接性。即各種對(duì)象之間統(tǒng)一、方便、動(dòng)態(tài)的消息傳送機(jī)制。因此,以對(duì)象為主體的面向?qū)ο箝_發(fā)方法就可以簡單解釋
38、為:客觀事物都是由對(duì)象(object)組成的,對(duì)象是在原事物基礎(chǔ)上抽象的結(jié)果。任何復(fù)雜的事物都可以通過對(duì)象的某種組合結(jié)構(gòu)構(gòu)成。對(duì)象由屬性和方法組成。屬性(attribute)反映了對(duì)象的信息特征,如特點(diǎn)、值、狀態(tài)等。而方法(method)則是用來定義改變屬性狀態(tài)的各種操作。對(duì)象之間的聯(lián)系主要是通過傳遞消息(message)來實(shí)現(xiàn)的,而傳遞的方式是通過消息模式(message pattern)和方法所定義的操作過程來完成的。對(duì)象可按其屬性進(jìn)行歸類(class)。類有一定的結(jié)構(gòu),類上可以有超類(superclass),類下可以有子類(subclass),這種對(duì)象或類之間的層次結(jié)構(gòu)是靠繼承關(guān)系維系著
39、的。對(duì)象是一個(gè)被嚴(yán)格模塊化了的實(shí)體,稱之為封裝(encapsulation)。這種封裝了的對(duì)象滿足軟件工程的一切要求,而且可以直接被面向?qū)ο蟮某绦蛟O(shè)計(jì)語言所接受。2.2.2 java與面向?qū)ο箝_發(fā)方法java servlet技術(shù)為開發(fā)高級(jí)web應(yīng)用提供了一個(gè)面向?qū)ο蟮目蚣?。servlet中包含了大量的邏輯和流程控件。servlet技術(shù)對(duì)高級(jí)web開發(fā)提供了很多支持,然而html的代碼內(nèi)嵌在java代碼中,這個(gè)對(duì)于web開發(fā)人員來說不是很好。另一方面,不適當(dāng)?shù)某橄蟛粌H不能減少問題,反而會(huì)帶來更多的問題。另外,在較大的或者復(fù)雜的系統(tǒng)中,對(duì)象的作用域需要跨越整個(gè)系統(tǒng),這也是十分繁瑣的,因此它需要額外
40、的補(bǔ)充。在使用面向?qū)ο蟮拈_發(fā)方法時(shí)候,用servlet和jsp進(jìn)行開發(fā)還存在一些沒有解決的問題,因此我們還需要面向組件的開發(fā)方法。2.3 基于組件的開發(fā)方法2.3.1 基本思想組件技術(shù)進(jìn)一步深化了抽象的層次。通過使用組件技術(shù),復(fù)雜的系統(tǒng)可以有任意的具有結(jié)合性的小系統(tǒng)組成。每個(gè)組件都十分簡單,從而可以設(shè)計(jì)的十分完善,如果要進(jìn)行大的改動(dòng),我們可以改寫某個(gè)組件。每個(gè)組件可以實(shí)現(xiàn)一組緊密相關(guān)的功能,它們被認(rèn)為是自包含的,與其它的組件沒有太多的關(guān)聯(lián),并且在很高的層次對(duì)接口進(jìn)行抽象來減少關(guān)聯(lián)。換句話,組件可以被認(rèn)為是實(shí)現(xiàn)了一組接口的軟件的單元。組件的主要特性如下:(1)組件具有對(duì)象的所以特性:數(shù)據(jù)是封裝的
41、,有定義好的響應(yīng),有定義好的接口。(2)組件獨(dú)立與其它的組件,這樣就可以在系統(tǒng)中減少關(guān)聯(lián)的緊密度。(3)基于組件的開發(fā)提高了重用性。(4)復(fù)雜性得到了很好的控制,因此也提高了系統(tǒng)的性能。(5)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試過程是獨(dú)立,因此可以實(shí)現(xiàn)高度并行的開發(fā)過程。(6)由于組件之間的關(guān)聯(lián)很少,當(dāng)系統(tǒng)需求發(fā)生改變或者增強(qiáng)功能時(shí)候,整個(gè)系統(tǒng)并不會(huì)受到太大的影響。2.3.2 框架規(guī)則組件通常設(shè)計(jì)為框架的組成部分,框架的作用是將獨(dú)立的組件結(jié)合起來形成應(yīng)用程序進(jìn)行發(fā)布,它可以解決一系列的特定問題,或者簡化問題的方法。大多數(shù)常用的框架包含一些通用的組件來解決一般的問題,這些組件包含了一些通用的類或者接口。可以進(jìn)行擴(kuò)展
42、或者實(shí)現(xiàn)完成特定的功能。下面是框架的一些類型:應(yīng)用框架:用于各種應(yīng)用程序。域框架:用來解決特定的域的問題。支持框架:提供系統(tǒng)的服務(wù)。java servlet api就是一個(gè)簡單的應(yīng)用程序框架的例子,它提供了:(1)一組工具類,這是由框架創(chuàng)建并且分發(fā)的對(duì)象,比如session和request。(2)一組高級(jí)類,實(shí)現(xiàn)一般的功能,比如genericservlet和httpservlet。(3)一組接口,使用戶的類可以進(jìn)行擴(kuò)展以實(shí)現(xiàn)其它功能比如singlethreadmodel。所有這些功能都在servlet外殼組件的內(nèi)部進(jìn)行實(shí)現(xiàn)。基于組件的開發(fā)具有以下優(yōu)點(diǎn):易于解決開發(fā)方案中的問題。提高產(chǎn)品的質(zhì)量。
43、縮短開發(fā)的時(shí)間。能夠輕松地適應(yīng)變化。降低開發(fā)成本。實(shí)現(xiàn)代碼的高度重用。2.3.3 mvc框架mvc(模型-視窗-控制器)是在web開發(fā)中最常用的框架模式,當(dāng)用戶和應(yīng)用程序進(jìn)行頻繁交互時(shí),這個(gè)模板十分有效。目前它已經(jīng)成為了最適合web程序的模板。它把程序分成三部分,簡化了開發(fā)過程。其體系結(jié)構(gòu)如圖2.1所示: 圖2.1 mvc框架體系結(jié)構(gòu) model(模型)表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在mvc的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用像ejb和coldfusioncomponents這樣的構(gòu)件對(duì)象來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)
44、。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。 view(視圖)是用戶看到并與之交互的界面。對(duì)老式的web應(yīng)用程序來說,視圖就是由html元素組成的界面,在新式的web應(yīng)用程序中,html依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括macromedia flash和像xhtml, xml/xsl, wml等一些標(biāo)識(shí)語言,以及web service。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。mvc一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來講,它只是作為
45、一種輸出數(shù)據(jù)并允許用戶操縱的方式。controller(控制器)接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊web頁面中的超鏈接和發(fā)送html表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化傳播機(jī)制。2.3.4 struts框架strut
46、s是apache組織的一個(gè)項(xiàng)目,像其他的apache組織的項(xiàng)目一樣它也是開放源碼項(xiàng)目。struts是一個(gè)比較好的mvc框架提供了對(duì)開發(fā)mvc系統(tǒng)的底層支持,它采用的主要技術(shù)是servlet,jsp和custom ta library。作為一個(gè)mvc的框架,struts對(duì)model、view和controller都提供了對(duì)應(yīng)的實(shí)現(xiàn)組件,對(duì)應(yīng)上面的uml圖,分別進(jìn)行介紹,并且看看它們是如何結(jié)合在一起的。1controller:控制器的作用是從客戶端接受請(qǐng)求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。在struts中controller功能由圖中actionservlet和action
47、mapping對(duì)象構(gòu)成:核心是一個(gè)servle類型的對(duì)象actionservlet,它用來接受客戶端的請(qǐng)求。actionservlet包括一組基于配置的actionmapping對(duì)象,每個(gè)actionmapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)具體的model部分中action處理器對(duì)象之間的映射。2model:mvc系統(tǒng)中的model部分從概念上可以分為兩類,系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動(dòng)作。struts為model部分提供了action和action form對(duì)象:所有的action處理器對(duì)象都是開發(fā)者從struts的action類派生的子類。action處理器對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的view組件以產(chǎn)生響應(yīng)。struts提供的action form組件對(duì)象,它可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以從它派生子類對(duì)象,利用它和struts提供的自定義標(biāo)記庫結(jié)合可以實(shí)現(xiàn)對(duì)客戶端的表單數(shù)據(jù)的良好封裝和支持,action處理器對(duì)象可以直接對(duì)它進(jìn)行讀寫,而不再需要和request、response對(duì)象進(jìn)行數(shù)據(jù)交互通過action form組件對(duì)象實(shí)現(xiàn)了對(duì)view
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車動(dòng)力電池回收利用合同范本4篇
- 2024食用菌種植基地環(huán)境保護(hù)與生態(tài)修復(fù)合同3篇
- 2024版美容院產(chǎn)品購銷合同
- 2025年度商業(yè)地產(chǎn)項(xiàng)目租賃收益分成合同范本4篇
- 編制加油站生產(chǎn)建設(shè)項(xiàng)目可行性研究報(bào)告編制說明
- 2025年綠色建筑裝修垃圾清運(yùn)及節(jié)能減排合同2篇
- 2025年度個(gè)人樓房房買賣合同標(biāo)準(zhǔn)范本下載4篇
- 2025年社區(qū)商業(yè)綜合體商鋪?zhàn)赓U管理協(xié)議3篇
- 2025年版影視作品版權(quán)轉(zhuǎn)讓合同范本3篇
- 2025年度個(gè)人股東股權(quán)轉(zhuǎn)讓協(xié)議范本全面規(guī)范股權(quán)轉(zhuǎn)讓手續(xù)2篇
- 2024年09月2024興業(yè)銀行總行崗測(cè)評(píng)筆試歷年參考題庫附帶答案詳解
- 山東省煙臺(tái)市招遠(yuǎn)市2024-2025學(xué)年九年級(jí)上學(xué)期期末考試英語(筆試)試題(含答案)
- 2025年安徽銅陵市公安局第二批輔警招聘158人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 駱駝祥子讀書筆記一至二十四章
- 急診科輸液的規(guī)律護(hù)理
- 商會(huì)年會(huì)策劃方案范例(3篇)
- 2022年公務(wù)員多省聯(lián)考《申論》真題(安徽C卷)及答案解析
- 【高考語文】2024年全國高考新課標(biāo)I卷-語文試題評(píng)講
- 大型活動(dòng)保安培訓(xùn)
- 中心食堂(蔬菜類、豆制品、畜肉、禽肉類、水產(chǎn)類) 投標(biāo)方案(技術(shù)方案)
- 信息系統(tǒng)運(yùn)維服務(wù)類合同6篇
評(píng)論
0/150
提交評(píng)論