電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例分析_第1頁
電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例分析_第2頁
電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例分析_第3頁
電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例分析_第4頁
電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例分析_第5頁
已閱讀5頁,還剩150頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章電子商務(wù)系統(tǒng)開發(fā)工具及應(yīng)用實(shí)例前面我們系統(tǒng)地討論了網(wǎng)絡(luò)商務(wù)網(wǎng)站的設(shè)計(jì)與開發(fā)問題,一旦有了一個(gè)良好的分析和設(shè)計(jì)方案后,企業(yè)商務(wù)網(wǎng)站的實(shí)現(xiàn)就成了一項(xiàng)比較簡(jiǎn)單的工作。目前計(jì)算機(jī)軟件技術(shù)的進(jìn)展差不多為企業(yè)商務(wù)網(wǎng)站創(chuàng)建提供了極為方便的框架,而且大多數(shù)是“所見即所得”(WhatyouSeeWhatyouget,簡(jiǎn)稱WYSIWYG〕類型的開發(fā)工具。利用這些工具,企業(yè)能夠迅速地建立起自己的網(wǎng)絡(luò)商務(wù)處理系統(tǒng),實(shí)現(xiàn)網(wǎng)絡(luò)經(jīng)營和營銷的設(shè)想。本章將介紹實(shí)現(xiàn)這些軟件工具及其一些典型應(yīng)用實(shí)例。目前在Internet上,最常用的網(wǎng)絡(luò)商務(wù)網(wǎng)站的開發(fā)工具確實(shí)是HTML,COI,JAVA以及各種各樣的網(wǎng)站創(chuàng)立模板和編輯器。本章將分三個(gè)部分來討論企業(yè)商務(wù)網(wǎng)站的創(chuàng)建,首先是創(chuàng)建的程序語言和工具介紹,其次是各種各樣的創(chuàng)建工具簡(jiǎn)介,第三是用asp的實(shí)際例程表現(xiàn)構(gòu)建一個(gè)電子商務(wù)網(wǎng)站的實(shí)際操作過程。9.1HTML概述9.1.1HTML概述HTML是Internet上的要緊程序語言,也是企業(yè)制造商務(wù)網(wǎng)站的要緊工具。企業(yè)的網(wǎng)絡(luò)營銷策略和商務(wù)網(wǎng)站設(shè)計(jì)中的各種構(gòu)想都要通過HTML程序來實(shí)現(xiàn)。在Internet中,用戶在掃瞄器中所看到的所有信息實(shí)際上差不多上一組HTML代碼和程序定好的文字文件和圖像文件內(nèi)容。這些HTML程序被稱之為HTML文件,其命名規(guī)則同其他程序語言完全一致,即文件名.HTML。HTML程序能夠在網(wǎng)絡(luò)掃瞄器下用各種各樣的編輯器和編程工具完成。HTML代碼的編程工作也特不簡(jiǎn)單,它不需要用戶去死記語句形式,而只是用一些“所見即所得”類型的工具直接定義出程序代碼。9.1.2HTML標(biāo)記的語句在HTML文檔中使用標(biāo)記來指導(dǎo)掃瞄器如何在屏幕上顯示信息。HTML中有兩個(gè)差不多的標(biāo)記類型,即獨(dú)立標(biāo)記和成對(duì)標(biāo)記,它們能夠激活在測(cè)覽器中的相關(guān)格式。成對(duì)標(biāo)記類型由開始標(biāo)記部分和結(jié)束標(biāo)記部分組成,標(biāo)記的兩個(gè)部分差不多上需要的,兩個(gè)部分的名字相同,但后一個(gè)標(biāo)記前有一個(gè)“/”字符。下面例子講明了如何使用HTML成對(duì)標(biāo)記顯示文檔的標(biāo)題:<TITLE>中間寫標(biāo)題</TITLE>注意,成對(duì)標(biāo)記將作為標(biāo)題使用的文本包圍起來。在成對(duì)標(biāo)記的所有例子中,要處理的信息差不多上處于開始標(biāo)記和結(jié)束標(biāo)記之間的。獨(dú)立標(biāo)記只有一個(gè),并作為起始標(biāo)記使用。在遇到其他單一標(biāo)記或者成對(duì)標(biāo)記之前,獨(dú)立標(biāo)記中的標(biāo)記激活掃瞄器中的有關(guān)格式,獨(dú)立標(biāo)記的一個(gè)例子是分行標(biāo)記(<BR>),能夠使用那個(gè)標(biāo)記迫使在屏幕上產(chǎn)生新的一行文本每一個(gè)標(biāo)記都由尖括號(hào)“<”和“>”封裝。下面給出如何書寫這兩種標(biāo)記類型的例子:獨(dú)立標(biāo)記<TAGNAME>成對(duì)標(biāo)記<TAGNAME></TAGNAME>注意成對(duì)標(biāo)記中第二個(gè)標(biāo)記中含有一個(gè)“/”字符。它起到的是掃瞄結(jié)束那個(gè)標(biāo)記的作用。利用標(biāo)記能夠?qū)ξ臋n中的對(duì)象進(jìn)行一定的處理。例如,要使文本的開始部分為黑體同時(shí)其余部分為正常字體,能夠使用以下標(biāo)記:<B>Thisisboldtext</B>W(wǎng)hilethisisnotHTML中許多標(biāo)記能夠帶選項(xiàng)。只有單一標(biāo)記和成對(duì)標(biāo)記的起始標(biāo)記才能夠使用這些選項(xiàng)。這些標(biāo)記的完整句法為:<TAGNAMEoption1option2option3…optionX>9.1.3差不多文檔的創(chuàng)建有三個(gè)標(biāo)記能夠用來創(chuàng)建HTML文檔的差不多結(jié)構(gòu),它們是:<HTML>中間存放完整的HTML源程序文檔</HTML><HEAD>中間寫網(wǎng)站主頁標(biāo)題</HEAD><BODY>中間寫HTML文檔的主體</BODY>在實(shí)際書寫ASCII文本格式的HTML文件時(shí),上述描述的差不多文檔顯示如下:<HTML><HEAD>網(wǎng)站主頁標(biāo)題</HEAD><BODY>網(wǎng)站某個(gè)頁面反映的內(nèi)容程序(即實(shí)現(xiàn)腳本設(shè)計(jì)的HTML程序)</BODY></HTML>不管HTML文件的實(shí)際布局如何,掃瞄器都會(huì)按標(biāo)記格式顯示文檔內(nèi)容。在上面的例子中,元素嵌套或編排方式為一種好的編程結(jié)構(gòu),可使讀者易于閱讀,但可不能對(duì)掃瞄器產(chǎn)生任何阻礙。9.2XML語言9.2.1XML的產(chǎn)生XML是SGML(StandardGeneralizedMarkupLanguage)的優(yōu)化子集。SGML是ISO(國際標(biāo)準(zhǔn)化組織)在1986年推出的一個(gè)用來創(chuàng)建標(biāo)記語言的語言標(biāo)準(zhǔn),它源自IBM在1969年開發(fā)的GML(GeneralizedMarkupLanguage)。SGML為出版業(yè)提供了一種將數(shù)據(jù)內(nèi)容與顯示分離開來的數(shù)據(jù)表示方法,使得數(shù)據(jù)獨(dú)立于機(jī)器平臺(tái)和處理程序。SGML的確在許多大型出版系統(tǒng)中專門有用,然而它的復(fù)雜性使其難以直接應(yīng)用到Internet上,這也是它沒有被廣泛同意的要緊緣故。另一方面,作為一個(gè)用SGML定義標(biāo)記語言的典型例子,HTML是專為WEB上公布超文本而設(shè)計(jì)的標(biāo)記語言。正是HTML使Web迅速在世界范圍內(nèi)擴(kuò)展開來。然而,HTML本質(zhì)上要緊關(guān)注Web創(chuàng)覽器如何在頁面上安排文本、圖像和按鈕等,過多地考慮外觀使其缺乏對(duì)結(jié)構(gòu)化數(shù)據(jù)的表示能力。另外,HTML中有限的標(biāo)記不能滿足專門多Web應(yīng)用的需要,如基于Web的大型出版系統(tǒng)和新一代的電子商務(wù),而為各種應(yīng)用需要不斷地往HTML中增加標(biāo)記顯然不是最終的解決方法,究其緣故是HTML缺乏可擴(kuò)展性、解決方案應(yīng)該是簡(jiǎn)化SGML使之能應(yīng)用到Web上。在此背景下。作為Web上使用的的SQML的一個(gè)優(yōu)化子集,XML應(yīng)運(yùn)而生。9.2.2XML語法簡(jiǎn)介同SGML類似,XML是一種元標(biāo)記語言,使用者可按需創(chuàng)建新的標(biāo)記。XML的可擴(kuò)展性就在于此。帶標(biāo)記的元素是XML文檔的構(gòu)造塊,這種元素能夠有若干個(gè)屬性,并能夠包含零個(gè)或多個(gè)子元素。這些子元素能夠是文本數(shù)據(jù),也能夠是帶標(biāo)記的元素。XML文檔示例如下:<?XMLVERSION="1.0"ENCODE="UTF-R?"><!DOCTYPEHATLISTSYSTEM"httP://WWW.SALEHAT.COM/HATLIST.DTD"><Hatlist><Hat_id="Hat1"Style=”Sandal"><customizeXML-LINK="EXTENDED"inline="true"show="Replace><LOCATORXML-LINK=”LOCATOR”HREF="">在中國定制</LOCATOR><LOCATORXML-LINK="LOCATOR"HREF="httP://WWW.PRODUCEHAT.COM">在美國定制</LOCATOR></Hat></Hatlist>XML文檔能夠在它的文檔類型聲明星聲明某個(gè)DTD(DocumentTypeDefinition.文檔類型定義)。如上述XML文檔的DTD由文件hatlist.dtd定義。DTD是關(guān)于XML文檔中出現(xiàn)的標(biāo)記和元素結(jié)構(gòu)的語法約束,它可用來驗(yàn)證一個(gè)XML文檔。DTD是一系列關(guān)于元素類型、屬性、實(shí)體和符號(hào)的定義。它定義了文檔所需的標(biāo)記,比如能夠在文檔里使用的元素類型,這些元素之間可能的聯(lián)系等。DTD示例如下:<!ELEMENTHATLIST(HAT)*><!ELEMENTHAT(COLOR,SIZE,CUSTOMIZE)><!ELEMENTCOLOR(#PCDATA)><!ELEMENTSIZE(#PCDATA)><!ELEMENTcustomize(#PCDATA/LOCATOR)*><!ELEMENTLOCATORANY><!ATLISTHat_idID#REOUIREDStyleIDREF#REQUIRED><!ATLISTcustomizeXML-LINKCDATA#FIXED“EXTENDED”INLINE(TRUE/FALSE)“TRUE”SHOW(EMBED/REPLAC/NEW)“NEW”><!ATLISTLOCATORXML-LINKCDATA#FIXED“LOCATOR”HREFCDATA#REQUIRED>9.2.3XML的特點(diǎn)和特性概述1.XML特性⑴專門的域標(biāo)記語言:通過使用XML標(biāo)記,某個(gè)領(lǐng)域內(nèi)的每個(gè)人能夠交流注釋,數(shù)據(jù)和信息,而不必?fù)?dān)心接收端是否有解讀的能力。而且每個(gè)領(lǐng)域內(nèi)的標(biāo)記不互相干擾。⑵通用的數(shù)據(jù)格式:XML本身是一種純ASCII文件,與有格式的文件相比較,它的抗破壞性是專門強(qiáng)的。即使部分受損,其余部分仍然可讀。而且XML是一種自描述語言,即使不熟悉XML語言,也能理解其中的內(nèi)容含義,能夠使得文件的長期保存成為可能。⑶數(shù)據(jù)交換:當(dāng)今世界上,平臺(tái)應(yīng)用五花八門,想在不同的平臺(tái)交換數(shù)據(jù)十分困難。因?yàn)閄ML易理解,非專有,易讀寫,因此關(guān)于在不同的應(yīng)用程序之間的數(shù)據(jù)交換來講,XML是一種極好的格式。⑷結(jié)構(gòu)化數(shù)據(jù):XML不僅同意指定文檔中的詞匯,還同意指定元素之間的關(guān)系。這種結(jié)構(gòu)化的方法能夠有效驗(yàn)證數(shù)據(jù)有效性一致性。⑸XML語法嚴(yán)格:HTML的語法要求并不嚴(yán)格,掃瞄器能夠顯示有文法錯(cuò)誤的HTML文件。但XML就不同了,它不但要求標(biāo)記配對(duì)、嵌套,而且還要求嚴(yán)格遵守DTD的規(guī)定。關(guān)于任何一個(gè)XML文件,處理指示差不多上必須的。而假如一個(gè)HTML文件沒有開始標(biāo)記〈HTML〉,在大多數(shù)掃瞄器中仍能通過。因?yàn)閽呙槠魍ǔ>邆湟粋€(gè)內(nèi)置的修改功能去推測(cè)HTML文件中漏掉了什么,并試圖修改那個(gè)有誤的文件。XML則使用分析器,不管是內(nèi)嵌于掃瞄器依舊作為獨(dú)立的處理器,絕對(duì)不同意修改。就象編譯一個(gè)程序一樣,一個(gè)XML文件或者被判不為“正確”而被同意,或者被判不為“錯(cuò)誤”不予運(yùn)行。這種嚴(yán)格的語法能夠規(guī)范開發(fā),降低掃瞄器開發(fā)的復(fù)雜度。2.XML值得強(qiáng)調(diào)的是以下優(yōu)點(diǎn)(1)可擴(kuò)展性XML是設(shè)計(jì)標(biāo)記語言的元語言,而不是HTML如此只有一個(gè)固定標(biāo)記集的特定的標(biāo)記語言。正如JAVA讓使用者聲明他們自己的類,XML讓使用者創(chuàng)建和使用他們自己的標(biāo)記而不是HTML的有限詞匯表??蓴U(kuò)展性是至關(guān)重要的,企業(yè)能夠用XML為電子商務(wù)和供應(yīng)鏈集成等應(yīng)用定義自己的標(biāo)記語言,甚至特定的行業(yè)一起來定義該領(lǐng)域的專門標(biāo)記語言,作為該領(lǐng)域信息共享與數(shù)據(jù)交換的基礎(chǔ)。(2)靈活性HTML專門難進(jìn)展,因?yàn)樗歉袷?、超文本和圖形用戶界面語義的混合,要同時(shí)進(jìn)展這些混合在一起的功能是專門困難的。而XML提供了一種結(jié)構(gòu)化的數(shù)據(jù)表示方式.使得用戶界面分離于結(jié)構(gòu)化數(shù)據(jù)。在XML中,能夠使用樣式表,如XSL(ExtensiblestylesheetLanguage,可擴(kuò)展樣式表語言)和CSS2(CascadingStyleSheetsLevel2,層疊樣式表第2進(jìn)階)將數(shù)據(jù)呈現(xiàn)到掃瞄器中。另外,XML文檔之間的超鏈接(HyperLink)功能由獨(dú)立的XLink(Extensiblelinkinglanguage,可擴(kuò)展鏈接語言)來支持。所有這些方面都能夠互相獨(dú)立地改進(jìn)并進(jìn)展。因此,web用戶所追求的許多先進(jìn)功能在XML環(huán)境下更容易實(shí)現(xiàn)。(3)自描述性XML文檔通信包含一個(gè)文檔類型聲明,因而XML文檔是自描述的。不僅人能讀明白XML文檔,計(jì)算機(jī)也能處理。XML文檔中的數(shù)據(jù)能夠被任何能夠?qū)ML數(shù)據(jù)進(jìn)行解析的應(yīng)用所提取、分析、處理,并以所需格式顯示。XML表示數(shù)據(jù)的方式真正做到了獨(dú)立于應(yīng)用系統(tǒng),同時(shí)這些數(shù)據(jù)能重用。因此XML適合開放的信息治理。因?yàn)樗淖悦枋鲂?,文檔里的數(shù)據(jù)能夠由支持XML的〔XML—aware〕應(yīng)用來創(chuàng)建、查詢和更新,跟處理傳統(tǒng)的關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫里的數(shù)據(jù)類似。XML甚至還能用來表示那些往常不被看作文檔然而對(duì)傳統(tǒng)構(gòu)數(shù)據(jù)庫來講又過于復(fù)雜而難以處理的數(shù)據(jù)。因此,XML文擋被看作是文檔的數(shù)據(jù)庫化和數(shù)據(jù)的文檔化。(4)簡(jiǎn)明通用性除上述特性以外,XML具有簡(jiǎn)明性。它的復(fù)雜性大約只有SGML的20%,但功能大約是SGML的80%。同完整的SGML相比,XML簡(jiǎn)單、易學(xué)、易用并易實(shí)現(xiàn)。另外,XML的誕生也汲取了人們多年來在WEB上使用HTML的經(jīng)驗(yàn),正如HTML開發(fā)了一種計(jì)算機(jī)用戶能創(chuàng)建Internet文檔的途徑,XML將成為人們讀和寫的世界語。值得注意的是,XML采納Unicode字符編碼系統(tǒng),從而支持世界上幾乎所有的要緊語言,同時(shí)不同語言的文本可從在同一文檔中混合使用,支持XML的軟件能處理所有這些語言的任何組合。因此,XML使得信息交換能夠跨越民族與文化邊界。所有這一切將使XML成為數(shù)據(jù)表示的一個(gè)開發(fā)標(biāo)準(zhǔn),這種數(shù)據(jù)表示獨(dú)立于機(jī)器平臺(tái)、提供商、和編程語言。它將為網(wǎng)絡(luò)計(jì)算注入新的活力,并為信息技術(shù)帶來新的機(jī)遇。9.2.4XML的用途和應(yīng)用開發(fā)技術(shù)簡(jiǎn)介盡管人們對(duì)XML的某些技術(shù)標(biāo)準(zhǔn)尚有爭(zhēng)議,然而人們已普遍認(rèn)識(shí)到XML的作用及用途。作為SGML的一個(gè)簡(jiǎn)化子集,XML在SGML的應(yīng)用領(lǐng)域中依舊有它的用武之地,包括文檔和信息治理、大型出版系統(tǒng)等。除此之外,XML在專門多方面有著重要用途,其中包括數(shù)據(jù)交換和Web應(yīng)用。1.?dāng)?shù)據(jù)交換數(shù)據(jù)交換是XML最重要的用途之一。XML使得不同計(jì)算機(jī)應(yīng)用系統(tǒng)之間交換數(shù)據(jù)變得容易起來,這是因?yàn)樗目蓴U(kuò)展特性和文檔中使用許多據(jù)。XML尤其在下列領(lǐng)域有重要應(yīng)用。(l)EDI(電子數(shù)據(jù)交換)。EDI被用來在異構(gòu)系統(tǒng)間進(jìn)行數(shù)據(jù)交換而支持事務(wù)處理。20多年來,EDI著重于合作伙伴之間的事務(wù)處理標(biāo)準(zhǔn)化,它提供一系列標(biāo)準(zhǔn)的消息和格式(如ANSIX.和EDIPACT),然而這些標(biāo)準(zhǔn)缺乏靈活性和可擴(kuò)展性。使用XML程序能夠理解在交換數(shù)據(jù)中所表示的商務(wù)數(shù)據(jù)及概念,依照明確的商務(wù)規(guī)則進(jìn)行數(shù)據(jù)處理并給出適當(dāng)?shù)捻憫?yīng)。因此XML能夠和現(xiàn)有不的EDI系統(tǒng)相結(jié)合,并擴(kuò)展現(xiàn)有的EDI應(yīng)用。(2)Agent(智能體)。構(gòu)造一個(gè)Agent所面臨的挑戰(zhàn)之一是如何理解接收到的數(shù)據(jù)。好的Agent能智能地解釋這些數(shù)據(jù),然后作出相應(yīng)的反應(yīng)。倘若送到agent的是XML結(jié)構(gòu)化的數(shù)據(jù),Agent就專門容易理解這些數(shù)據(jù)的含義及與它已有知識(shí)的關(guān)系——及相關(guān)技術(shù)必將促進(jìn)Agent及移動(dòng)Agent技術(shù)的進(jìn)展。(3)軟件設(shè)計(jì)元素的交換。XML能夠用來描述軟件設(shè)計(jì)中有關(guān)的設(shè)計(jì)元素,如對(duì)象模型,甚至能描述最終設(shè)計(jì)出來的軟件。這些基于XML的設(shè)計(jì)元素能夠借助Web在開發(fā)組內(nèi)進(jìn)行交換,在不同的開發(fā)工具之間交換。由IBM、Unisys;及其他合作伙伴提出的XMI(XMLMetadateinterchange)正是朝該方向努力的結(jié)果,XMI為存儲(chǔ)和共享基于對(duì)象的程序設(shè)計(jì)信息建立了一個(gè)標(biāo)準(zhǔn)。使合作應(yīng)用開發(fā)能夠在Internet上進(jìn)行,即使開發(fā)組成員使用不同的建模工具。另外。XML及相關(guān)技術(shù)使得軟件的分發(fā)及更新在web上更容易實(shí)現(xiàn)。Microsoft及合作伙伴提出的OSD(OpensoftwareDescription)正是XML的一個(gè)應(yīng)用,它定義了一個(gè)標(biāo)記集用來描述軟件包及其與各種客戶平臺(tái)的依靠關(guān)系。2.Web應(yīng)用XML文檔無疑將成為Web資源的重要組成部分,而且基于XML的文檔資源使Web搜索引擎的智能化變得容易起來。除此之外,XML能夠用來建立HTML所不能達(dá)到的多層Web應(yīng)用。XML在Web應(yīng)用中的用途如下:(l)集成不同數(shù)據(jù)源。XML的特性使得它能用來描述包含在不同應(yīng)用中的數(shù)據(jù)。,從Web頁面到數(shù)據(jù)庫中的記錄,Web應(yīng)用的中間層服務(wù)程序能夠容易地將這些用XML表示的數(shù)據(jù)組合起來,直接傳送給客戶或報(bào)交其他服務(wù)程序進(jìn)一步處理。(2)本地計(jì)算。基于XML的數(shù)據(jù)被傳送到客戶后,客戶端應(yīng)用能夠?qū)@些數(shù)據(jù)進(jìn)行解析和操縱,完成應(yīng)用系統(tǒng)所需的功能。這些本地計(jì)算不需要與服務(wù)器的額外通信。這種對(duì)本地計(jì)算的支持有利于在服務(wù)器和客戶之間合理分配計(jì)算的比例。(3)數(shù)據(jù)的多種顯示。XML與HTML具有互補(bǔ)性,HTML描述數(shù)據(jù)的外觀,而XML描述數(shù)據(jù)本身。用XML定義的數(shù)據(jù)能以不同的外觀顯示。一旦這些數(shù)據(jù)到達(dá)客戶端,它們的顯示方式能夠由客戶配置動(dòng)態(tài)確定。CSS和XSL提供了描述數(shù)據(jù)所需顯示的語言機(jī)制。(4)支持Web應(yīng)用的工操作和集成。作為XML的早期應(yīng)用之一,WIDL(WebInterfaceDefinitionLanguage)是一個(gè)用來定義支持Web資源或企業(yè)應(yīng)用接口的語言標(biāo)準(zhǔn)。通過用WIDL定義的接口,Web應(yīng)用之間能夠自動(dòng)存取Web資源及企業(yè)應(yīng)用。9.6.3XML應(yīng)用開發(fā)技術(shù)概述開發(fā)XML應(yīng)用通常涉及以下四個(gè)方面:1.構(gòu)造XML標(biāo)記語言XML同意任何人創(chuàng)建他自己的標(biāo)記語言,然而設(shè)計(jì)一個(gè)好的標(biāo)記語言并非易事。首先通過DTD來設(shè)計(jì)標(biāo)記,其次還要用自然語言解釋這些標(biāo)記的含義,以使程序員能正確處理XML文檔中的元素。然而,在專門多場(chǎng)合。用XML1.0中規(guī)定的DTD來定義標(biāo)記顯得有些不夠,另外,人們也希望用XML文檔來定義標(biāo)記結(jié)構(gòu)及約束。為此,W3C的XML工作組正在設(shè)計(jì)一個(gè)適合于XML的XMLSchemaLanguage,以使用XML文檔來定義增強(qiáng)的DTD。由Microsoft及其合作伙伴提交的XML—data正是這種語言的一個(gè)典型代表。XML—data既能用于像XML如此嚴(yán)格的語法種類,也能適用于像關(guān)系數(shù)據(jù)庫那樣需要指示概念和概念問關(guān)系的領(lǐng)域。如此,復(fù)訓(xùn)已文檔類型能夠用XML本身來描述,而不僅僅是DTD語法。另外,XML—Dataschemas為交疊在語法、數(shù)據(jù)庫和概念Schemas之中的方法提供一個(gè)公用詞匯表。2.生成XML文擋生成XML文檔的數(shù)據(jù)來源多種多樣,可能來自數(shù)據(jù)庫,也可能來自XML文檔,也可能是Web上的其他資源。XML-QL、SQLX、XQL等查詢語言及相關(guān)技術(shù)可用來生成XML文檔。XML—QL能表達(dá)那些用來從XML文檔里抽取數(shù)據(jù)的查詢,也能表達(dá)轉(zhuǎn)換。例如在不同的DTD之間映射XML數(shù)據(jù)、從不同的數(shù)據(jù)源中集成XML數(shù)據(jù)等。SQLX(SQLEMBEDDEDINXML、嵌入XML中的結(jié)構(gòu)化查詢語言)是一個(gè)嵌入XML中的SQL語言,它為基于DOM的應(yīng)用程序提供了一個(gè)存取關(guān)系數(shù)據(jù)庫的簡(jiǎn)便方法。SQLX同意一個(gè)用XML描述的查詢,并把它翻譯成一個(gè)JDBC調(diào)用序列,查詢結(jié)果被轉(zhuǎn)換為DOM結(jié)構(gòu)并返回。XQL(XMLQueryLANGUAGE,XML查詢語言)是一個(gè)通用的XML查詢語言,它提供了對(duì)XSL模式語言的自然擴(kuò)展,如增加過濾器、節(jié)點(diǎn)索引等功能,它適用于查詢和尋址等。3.解釋XML文襠解釋XML文檔能夠通過使用DOM或SAX(SimpleAPIforXML)應(yīng)用編程接口來實(shí)現(xiàn)。DOM是W3C為XML文檔和HTML文檔制定的一個(gè)獨(dú)立于平臺(tái)和語言的編程接口標(biāo)準(zhǔn),使得程序和腳本能以標(biāo)準(zhǔn)的方式存取與更新文檔的內(nèi)容、結(jié)構(gòu)和樣式。而SAX是XML-Dev郵件列表組推出的一個(gè)XML的JAVA應(yīng)用編程接口標(biāo)準(zhǔn),JAVA應(yīng)用程序能夠使用支持SAX的XML解析器來同意解析事件。使用XML比使用DOM要節(jié)約專門多內(nèi)存開銷,然而DOM提供了更豐富的編程接口。4.顯示XML文檔顯示XML文檔有多種途徑。Web上的XML文檔資源能夠直接顯示在支持文檔的掃瞄器中,或者使用XSL式表將XML文檔轉(zhuǎn)換為掃瞄器能處理的東西,如HTML文檔。也能夠使用程序?qū)ML文檔進(jìn)行操作,再將結(jié)果按任何一種用戶要求的方式顯示。另外,XML技術(shù)也支持為同一個(gè)XML文檔生成在多種輸出設(shè)備上的輸出。9.3公共網(wǎng)關(guān)接口概述公共網(wǎng)關(guān)接口(CommonGatewayInterface,CGI)在商務(wù)網(wǎng)站的開發(fā)中起著重要的作用。CGI是用來在用戶掃瞄器和網(wǎng)絡(luò)服務(wù)器之間傳遞信息的一系列統(tǒng)一命名的變量和方法操作治理程序。CGI的開發(fā)工作最早起源于美國伊利諾斯大學(xué)的NCSA。為了能夠在掃瞄器中訪問NCSAHTTPd服務(wù)器上的動(dòng)態(tài)數(shù)據(jù),需要一個(gè)中間程序,因此開發(fā)出了CGI。CGI一經(jīng)提出趕忙受到了普遍地歡迎。近來被廣泛應(yīng)用于各類Web開發(fā)工具和商務(wù)網(wǎng)站的創(chuàng)建中。目前在企業(yè)商務(wù)網(wǎng)站的創(chuàng)建過程中,CGI程序常常被用于對(duì)HTML表單和數(shù)據(jù)庫的操作。例如用CGI程序?qū)?shù)據(jù)進(jìn)行搜索、修改或添加記錄等等。9.3.1CGI編程語言簡(jiǎn)介公共網(wǎng)關(guān)接口是用于HTML服務(wù)器和外部應(yīng)用程序之間的一個(gè)標(biāo)準(zhǔn)。不對(duì)靜態(tài)的HTML文檔進(jìn)行檢索,URL能夠?qū)心硞€(gè)程序或腳本的文件進(jìn)行標(biāo)識(shí),那個(gè)程序或者腳本在用戶選用URL指定的鏈接時(shí)得到執(zhí)行。例子之一是頁面計(jì)數(shù)器程序,每檢索一次文件,該計(jì)數(shù)器就累加1。在Internet上,人們經(jīng)常能夠看到“在該站點(diǎn)上你的訪問編號(hào)為XXX,XXX”。當(dāng)你選擇那個(gè)鏈接并將那個(gè)具體頁面下載到掃瞄器時(shí),CGI程序運(yùn)行并查看存儲(chǔ)在CGI程序文件中的某個(gè)變量和編號(hào)值,使編號(hào)加1,然后在HTML文件內(nèi)顯示那個(gè)編號(hào)。使用外部應(yīng)用程序的例子能夠分兩個(gè)步驟進(jìn)行講明,即在HTML文檔中選擇和完成一個(gè)表單。用戶單擊提交(submit)按鈕后,輸入的數(shù)據(jù)被傳遞到CGI程序,接著CGI程序?qū)?shù)據(jù)進(jìn)行一定的處理。啟動(dòng)CGI程序的差不多方法如下:(l)用戶在HTML頁面中單擊某個(gè)鏈接。(2)掃瞄器請(qǐng)求服務(wù)器運(yùn)行CGI程序。(3)假如用戶具有適當(dāng)權(quán)限,服務(wù)器運(yùn)行CGI程序。(4)CGI程序的結(jié)果返回到掃瞄器。(5)掃瞄器顯示輸出結(jié)果。在創(chuàng)建CGI程序時(shí),需要使用某種編程語言。早期CGI所采納的編程語言多為在Unix操作系統(tǒng)下的PERL(practicalextensionandreportinglanguage),而目前最常用的是在Windows操作系統(tǒng)下的JAVA語言。在介紹JAVA語言之前,那個(gè)地點(diǎn)臨時(shí)采納PERL作為例子來講明CGI的編程語言。在選擇CGI編程語言時(shí)要注意:HTTP服務(wù)器中的操作系統(tǒng)應(yīng)能支持這種語言;這種語言功能應(yīng)足夠強(qiáng)大,如此才能夠編寫CGI程序,完成預(yù)定的任務(wù)。9.3.2CGI編程語言及程序介紹下面是使用PERL編寫的一個(gè)專門簡(jiǎn)單的傳送數(shù)據(jù)的程序:#!/set/local/bin/perl#File:firstscript.perl.cgiprint“Content-type:text/html\n\n”;#BecausethiscomesbackasHTMLweputintoaformat#thatisunderstandable,includingatitleprint“<HTML><HEAD><TLTLE>FirstScriptResponse</TITLE></HEAD>\n”#AndnowthebodyoftheGTMLpagewewillseereturnedprint“<BODY><HI>MyFirstScripot</HI>HR>Congratulations!YouProgrammedyourfirstCGIscript!</BODY></HTML>\n”;該程序的目的是讓CGI程序在程序啟動(dòng)后向創(chuàng)覽器發(fā)回一個(gè)消息。為了對(duì)代碼進(jìn)行解釋下面是對(duì)用PERL編寫的程序的一些講明。(1)PERL腳本的第一行必須指定在服務(wù)器上何處能夠找到PERL解釋器。(2)以#開頭的行是注釋行,不被PERL解釋器進(jìn)行任何操作。(3)Print命令用于輸出文本(4)文本串用引號(hào)包圍。(5)需要的新行(newline)用“\n”指明。(6)PERL的所有語句必須以分號(hào)結(jié)束。該例講明了CGI程序使用服務(wù)器把消息回傳給用戶掃瞄器的方法。為了調(diào)用那個(gè)CGI程序,調(diào)用CGI程序的超級(jí)鏈接必須放置在HTML文件中,同時(shí)用戶必須單擊那個(gè)超級(jí)鏈接。最好將那個(gè)CGI程序放在服務(wù)器上,如此用戶可能激活指向程序的超級(jí)鏈接。要把CGI程序放在服務(wù)器上能夠有若干種方法。除非服務(wù)器連到LAN中同時(shí)能把CGI程序文件拷貝到合適的目錄下,否則使用文件傳輸協(xié)議(FTP)傳輸CGI程序是最常用的方法。CGI文件一般存儲(chǔ)在/user/cgi-bin目錄中。1.啟動(dòng)CGI程序前面部分已提到啟動(dòng)CGI程序以及其他程序的最簡(jiǎn)單的方法,是在調(diào)用CGI程序的GTML文檔中放入一個(gè)超鏈。假如使用表單給CGI程序傳遞數(shù)據(jù)(如使用本章開發(fā)的表單),那么當(dāng)單擊“提交(Submit)”按鈕后FORMACTION屬性調(diào)用那個(gè)CGI程序。使用為創(chuàng)建主頁而開發(fā)的模板文件創(chuàng)建一個(gè)頁面,用那個(gè)頁面測(cè)試CGI程序,為第一個(gè)CGI程序創(chuàng)建的超級(jí)鏈接如下,該超級(jí)接鏈被嵌入在HTML文檔中:InvokethesimpliePerIscript:<AHREF=“user/cgi-bin/2.理解變量調(diào)用CGI程序時(shí),HGML服務(wù)器(Web服務(wù)器)要建立一些環(huán)境變量,通過這些環(huán)境變量,數(shù)據(jù)可被傳遞到CGI程序。并非所有的環(huán)境變量都用于所有的掃瞄器、服務(wù)器和站點(diǎn)。一些程序(包括CGI程序)查找這些環(huán)境變量以確定它們的值,包括用戶輸入到表單中的數(shù)據(jù)。有時(shí),假如變量不在某個(gè)環(huán)境中,則會(huì)使用默認(rèn)值,但在其他情況下,除非設(shè)置變量為環(huán)境變量,否則程序會(huì)崩潰。一旦熟悉了環(huán)境變量同時(shí)明白這些變量給服務(wù)器傳遞何種信息,就能夠創(chuàng)建PERL程序,使用包含在這些環(huán)境變量中的值。3.使用PERL編寫顯示環(huán)境變量的程序介紹。為了提高編寫PERL程序的能力,以及講明環(huán)境變量如何傳遞數(shù)據(jù),我們將創(chuàng)建第二個(gè)PERL程序,使得服務(wù)器顯示環(huán)境變量中存儲(chǔ)的值,那個(gè)程序的代碼如下:#!/user/local/bin/perl#Filename:printvars.perl.cgiprint“Content-type:text/plain\n\n”;#displaytheCGIenvironmentvariablesprintqq(AUTH-TYPE=$ENV{“AUTH-TYPE”}\n);printqq(CONTENT-LENGTH=$ENV{“CONTENT=LENGTH”}\n);printqq(CONTENT-TYPE=$ENV{“CONTENT-TYPE”}\ n);printqq(CONTENT-INTERNET=$ENV{“GATEWAY-NTERFACE”}\N)printqq(HTTP-ACCEPT=$ENV{“HTTP-ACCEPT”}\ n);printqq(HTTP-REFERER=$ENV{“HTTP-REFERER”}\n);printqq(HTTP-USER-AGENT=$ENV{“HTTP-USER-AGENT”}\n);printqq(PATH-INFO=$ENV{“PATH-INFO”}\n);printqq(PATH-TRANSLATED=$ENV{“PATH-TRANSLATED”}\n);printqq(QUERY-STRING=$ENV{“REMOTE-ADDR”}\n);printqq(REMOTE-ADDR=$ENV{“REMOTE-ADDR”}\n);printqq(REMOTE-HOST=$ENV{“REMOTE-HOST”}\n);printqq(REQUEST-METHOD=$ENV{“REQUEST-NETHOD”}\n);printqq(SCRIRP-NAME=$ENV{“SCRIPT-NAME”}\n);printqq(SERVER-NAME=$ENV{“SERVER-NAME”}\n);printqq(SERVER-PORT=$ENV{“SERVER-PORT”}\n);printqq(SERVER-PROTOCOL=$EVN{“SERVER-PROTOCOL”}\n);printqq(SERVER-SOFTWARE=$ENV{“SERVER-SOFTWARE”}\n);為了啟動(dòng)那個(gè)CGI程序,要?jiǎng)?chuàng)建一個(gè)超鏈,并將其放置在cgitemp.html文件顯示的HTML頁面“CGITestPage”上。使用HTML表單從文本域、復(fù)選框、單選按鈕和文本框中輸入數(shù)據(jù)意味著使用標(biāo)準(zhǔn)輸入(stdin)給HTTP服務(wù)器發(fā)送信息。默認(rèn)情況下,用戶使用標(biāo)準(zhǔn)輸入給程序輸入數(shù)據(jù),或者在Intranet掃瞄器終端使用標(biāo)準(zhǔn)輸入。一旦輸入程序請(qǐng)示的信息,該信息便通過標(biāo)準(zhǔn)輸入傳遞給服務(wù)器。標(biāo)準(zhǔn)輸入是將輸入設(shè)備連到運(yùn)行程序的一個(gè)數(shù)據(jù)通道。Intranet上的HTTP服務(wù)器變是一個(gè)運(yùn)行著的程序。它獵取用戶輸入的數(shù)據(jù)并將其發(fā)送給CGI程序。CGI程序的結(jié)果通過標(biāo)準(zhǔn)輸出返回。標(biāo)準(zhǔn)輸出(stdout)是輸出流到達(dá)用戶計(jì)算機(jī)的標(biāo)準(zhǔn)位置。HTTP服務(wù)器不處理傳遞到CGI程序的自變量,自變量原封不動(dòng)地從掃瞄器傳遞到服務(wù)器。9.4ASP技術(shù)概述ASP是ActiveServerPages(動(dòng)態(tài)服務(wù)主頁)的簡(jiǎn)稱,它代表了Web頁技術(shù)從靜態(tài)內(nèi)容鏈接到動(dòng)態(tài)生成文檔的重要發(fā)燕尾服歷程,它代表著Web技術(shù)一個(gè)新的進(jìn)展方向。ASP技術(shù)的精髓確實(shí)是“動(dòng)態(tài)”,這也是它與HTML頁面的本質(zhì)區(qū)不,那個(gè)“動(dòng)態(tài)”和前面介紹的動(dòng)態(tài)HTML的動(dòng)態(tài)是有全然區(qū)不的,前者是從頁面?zhèn)鬏?、頁面生成真到頁面?nèi)容的完全動(dòng)態(tài)化,而后者僅是頁面內(nèi)容的動(dòng)態(tài)效果。下面我們將對(duì)那個(gè)技術(shù)作一簡(jiǎn)要介紹。9.4.1與靜態(tài)聯(lián)接的比較Web最初建立在靜態(tài)內(nèi)容聯(lián)接上,直到今天許多站點(diǎn)仍保持靜態(tài):這確實(shí)是講,為了改變從Web服務(wù)器送到掃瞄器的HTML文檔,你不得不手工編輯HTML頁面。在靜態(tài)模式下,掃瞄器使用HTTP(超文本傳輸協(xié)議)向Web服務(wù)器請(qǐng)求HTML文件。服務(wù)器受到請(qǐng)求并傳送一個(gè)已設(shè)計(jì)好的靜態(tài)HTML的文檔給掃瞄器,然后掃瞄器以一定格式顯示那個(gè)頁面。若要更新這些表態(tài)頁面的內(nèi)容,必須手動(dòng)更新其HTML的文件數(shù)據(jù)。盡管HTML通過JavaScript等操縱頁面元素具有一定的動(dòng)態(tài)特性,但它僅是客戶端靜態(tài)頁面內(nèi)容的改善,只能增加一些頁面修飾方面的動(dòng)態(tài)效果,腳本所具有的交互能力十分有限。通過網(wǎng)關(guān)接口例如CGI(公共網(wǎng)關(guān)接口)、IISAPI(微軟IIS的編程接口)以及其他接口能夠用來在HTML頁面中加入動(dòng)態(tài)的內(nèi)容。這種模式提供了一定程度的動(dòng)態(tài)特性,但它們不是和HTML集成在一起的。事實(shí)上,它們的設(shè)計(jì)過程與HTML文件完全不同。而且這類程序?qū)iT難創(chuàng)建和修改。使用ASP的不同之處是制作者能夠直接在文件中插入可執(zhí)行腳本代碼,依照訪問者的具體情況動(dòng)態(tài)地生成頁面。頁面開發(fā)和腳本開發(fā)變成相同的過程,使網(wǎng)頁制作者直接注意力集中到web網(wǎng)頁的外觀和感受。ASP完全與HTML文件集成易于創(chuàng)建,無需手工編譯或連接面向?qū)ο?,可通過ActiveX服務(wù)端構(gòu)件擴(kuò)展功能。ASP的好處在于,使得Web腳本開發(fā)應(yīng)用是專門容易的。裝備了合適的腳本引擎,能夠使用任何腳本語言。ASP提供了VBScript和Jscript腳本引擎。使用ActiveX服務(wù)端構(gòu)件(往常稱Automationservers自動(dòng)化服務(wù)器),能夠使用ASP結(jié)合數(shù)據(jù)庫操作腳本等高級(jí)功能來處理數(shù)據(jù)和動(dòng)態(tài)產(chǎn)生有用信息。9.4.2ASP的要緊特點(diǎn)ActiveServerPages(動(dòng)態(tài)服務(wù)器主頁,簡(jiǎn)稱ASP),內(nèi)含于InternetInformationServer(IIS)當(dāng)中,提供一個(gè)服務(wù)器端(server-side)的scripting環(huán)境,產(chǎn)生和執(zhí)行動(dòng)態(tài)、交互式、高效率的站點(diǎn)服務(wù)器的應(yīng)用程序。當(dāng)用戶對(duì)一個(gè)ASP文檔發(fā)出請(qǐng)求時(shí),服務(wù)器會(huì)自動(dòng)將ActiveServerPages的程序碼,解釋為標(biāo)準(zhǔn)HTML格式的網(wǎng)頁內(nèi)容,在送到用戶端的掃瞄器上顯示出來。用戶端只要使用常規(guī)可執(zhí)行HTML碼的掃瞄器,即可掃瞄ActiveServerPages所設(shè)計(jì)的主頁內(nèi)容。因此這就意味著沒有ASP服務(wù)器,就無法正確掃瞄一個(gè)ASP文檔。ActiveServerPages的特點(diǎn)是:⑴需編譯:容易產(chǎn)生,無需編譯或鏈接即可執(zhí)行解釋,集成于HTML中;⑵使用常規(guī)文本編輯器,如Windows的記事本,即可設(shè)計(jì);⑶與掃瞄器無關(guān)(BrowserIndependence):用戶端只要使用常規(guī)的可執(zhí)行HTML代碼的掃瞄器,即可掃瞄ActiveServerPages所設(shè)計(jì)的主觀內(nèi)容,Script語言(Vbscript,Jscript)是在站點(diǎn)服務(wù)器(Server端)執(zhí)行,用戶不需要執(zhí)行這些Script語言;⑷面向?qū)ο螅∣bject-Orient);⑸可通過ActiveXServerComponents(ActiveX服務(wù)器組件)來擴(kuò)充功能。ActiveXServerComponent,可使用VisualBasic,Java,VisualC++,COBOL等語言來實(shí)現(xiàn);⑹ActiveServerPages與任何ActiveXScripting語言兼容。除了可使用VBScript或Jscript語言來設(shè)計(jì),并可通過Plug-in的方式,使用由第三方所提供的其他譬如REXX;Perl,Tcl等Scripting語言。Script引擎是處理Script的COM(ComponentObjectModel)對(duì)象;⑺ActiveServerPages的源程序代碼可不能傳到用戶的掃瞄器,因此能夠保證辛辛苦苦寫出來的源程序可不能外瀉。傳到用戶掃瞄器的是ActiveServerPages執(zhí)行的結(jié)果的常規(guī)HTML碼;⑻使用服務(wù)器端Script產(chǎn)生客戶端Script,能夠使用ASP程序碼,在站點(diǎn)服務(wù)器執(zhí)行Script語言(VBScript或JScript),來產(chǎn)生或更改在客戶端執(zhí)行的Script語言。9.4.3ASP語法介紹及簡(jiǎn)單示例ActiveServerPages(ASP)制作成.a(chǎn)sp擴(kuò)展名的文件,一個(gè).asp文件是一個(gè)文本文件,一般包括三部分:HTML標(biāo)記(tags);Vbscript或Jscript語言的程序碼;ASP語法。下面介紹ASP語法。ASP實(shí)質(zhì)上并不是一個(gè)script語言,而是提供一個(gè)能夠集成script語言(Vbscript或Jscript)到HTML主頁的環(huán)境。HTML標(biāo)記(tags)使用"<……>"將HTML程序碼包含起來;而ASP使用"%……%"將ASP的script程序碼包含起來。當(dāng)用戶請(qǐng)求該ASP文檔時(shí),服務(wù)器將其中的程序碼翻譯成相應(yīng)的HTML標(biāo)記傳送給客戶掃瞄器顯示。下面是幾個(gè)簡(jiǎn)單的例子,讀者通過它們能夠?qū)SP有更深的感性認(rèn)識(shí)。1.顯示現(xiàn)在的日期時(shí)刻譬如站點(diǎn)服務(wù)器的asp1.asp文件中有下面的語句:現(xiàn)在是:<%=now%>在用戶端掃瞄器中將會(huì)顯示:現(xiàn)在是:1999/8/17下午3:11:202.重復(fù)循環(huán)那個(gè)ASP例子在用戶端掃瞄器,掃瞄執(zhí)行的結(jié)果是顯示五個(gè)重復(fù)的句子,同時(shí)字體越來越大。站點(diǎn)服務(wù)器asp2.asp文件的ASP源代碼如下:ASP求例—循環(huán)<%fori=1to5%><fontsize=<%=i%>color=#0000ff>快速掌握Internet技術(shù)</font><br><%next%>ActiveServerPages的源代碼,可不能傳到用戶的掃瞄器,能夠愛護(hù)網(wǎng)頁制作者編寫的源代碼可不能外漏。在用戶端觀看到的是常規(guī)的HTML碼,你的站點(diǎn)服務(wù)器會(huì)自動(dòng)將ActiveServerpages的程序代碼,解釋為標(biāo)準(zhǔn)的HTML格式的主頁內(nèi)容,如上面的asp代碼將會(huì)解釋成如下形式:<fontsize=1color=#0000ff>快速掌握Internet技術(shù)</font><br><fontsize=2color=#0000ff>快速掌握Internet技術(shù)</font><br><fontsize=3color=#0000ff>快速掌握Internet技術(shù)</font><br><fontsize=4color=#0000ff>快速掌握Internet技術(shù)</font><br><fontsize=5color=#0000ff>快速掌握Internet技術(shù)</font><br>3.傳送字符串到用戶端的掃瞄器ASP語法中的Response.write方法是最常用的傳送字符串到掃瞄器的方法,其地位就和JavaScript中的document.write一樣。語法如下:Response.write字符串以下的例子用來向用戶打招呼:<%Response.write"歡迎光臨"%>也能夠用如下方法:<%…%>歡迎光臨<%…%>另外ASP能夠使用VBScript或Jscript,同時(shí)可與任何ActiveXScripting語言兼容,可通過plug-in的方式,使用由thirdparty所提供的其他譬如REXX,Perl,Tcl等Scripting語言。與HTML一樣,ASP文檔也使用<script>標(biāo)記來嵌入腳本。ASP默認(rèn)的Script語言為vbscript,若要設(shè)定某一段ASP程序代碼使用的Script語言,能夠使用“<scriptrunat=serverlangrage=…>……</script>”加以設(shè)定,譬如ASP程序碼使用Jscript語言。ASP示例——使用JavaScript<html><body><%call函數(shù)不清%></body></html><scriptrunat=serverLangrage=Jscript>function函數(shù)10{Response.write“叫到我了”;}</script>設(shè)定某一主頁的script語言使用“<%@language=…%>”加以設(shè)定,語法如下:<%@language=Vbscript%>但要注意@和LANGUAGE之間一定得有空格隔開。9.5JAVA語言由SUN公司推出的JAVA語言是當(dāng)今世界上最為熱門的網(wǎng)絡(luò)編程語言之一。JAVA的產(chǎn)生能夠追溯到1991年。當(dāng)時(shí)SUN公司的一個(gè)專家小組企圖用一種全新的語言來取代C++,并最終用它來操縱所有的家電,這種語言確實(shí)是JAVA。有味的是,JAVA產(chǎn)生以后,并沒有在操縱家電行業(yè)流行開來。反而在網(wǎng)絡(luò)信息處理系統(tǒng)開發(fā)過程中風(fēng)行一時(shí),成為目前最為流行的軟件開發(fā)工具。Java是一種具有簡(jiǎn)單,面向?qū)ο?,分布式,解釋型,健壯,安全,體系結(jié)構(gòu)中立,可移植,高性能,多線程和動(dòng)態(tài)等各種特性的語言。Java是一種從C++繼承來的完整的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。它具有C++的所有優(yōu)點(diǎn),但卻取消了一些不可靠的功能,如指針和不安全性。Java是通過庫來擴(kuò)展自己的。例如它有一個(gè)稱為AWT的用戶界面對(duì)象的庫、一個(gè)I/O庫、一個(gè)網(wǎng)絡(luò)庫等等。能夠使用Java來建立裝到web上并在掃瞄器上執(zhí)行的applet以及單獨(dú)的應(yīng)用程序。我們將重點(diǎn)討論掃瞄器上用的applet,然而由于Java具有專門強(qiáng)的能力,你能夠把Java用作差不多的開發(fā)環(huán)境。Java實(shí)際上不僅僅是一門編程語言,它還包含一個(gè)客戶/服務(wù)器模式下的開發(fā)和執(zhí)行環(huán)境。假如你差不多掌握了C++和面向?qū)ο蟪绦蚋拍睿瑒t對(duì)學(xué)習(xí)Java是專門有關(guān)心的。9.5.1JAVA的要緊特點(diǎn)Java是一種純面向?qū)ο蟮恼Z言。相對(duì)而言C++,Dephi等實(shí)際上是混合型語言,是過程語言加上面向?qū)ο蟮臄U(kuò)展。而Java則不然,任何方面差不多上基于消息或基于對(duì)象的。所有數(shù)據(jù)類型均為對(duì)象類。甚至于數(shù)學(xué)運(yùn)算也是面向?qū)ο蟮?。為了保證編程的簡(jiǎn)易性,也能夠按非對(duì)象處理。這也是推舉使用的方法。關(guān)于面向?qū)ο笤韰⒄掌渌墨I(xiàn)。Java語言之因此流行是因?yàn)樗?jiǎn)單、易學(xué)、容易操作和使用,而且功能強(qiáng)大。概括起來,Java的要緊特點(diǎn)如下:1.解釋性、可移植性和與應(yīng)用平臺(tái)的無關(guān)性解釋性是指Java是一種解釋性的程序設(shè)計(jì)語言,從而幸免了傳統(tǒng)編譯型語言在系統(tǒng)開發(fā)時(shí)所遇到的各種問題。可移植性和與應(yīng)用平臺(tái)的無關(guān)性是指Java在運(yùn)行上不依靠于某個(gè)固定的軟件平臺(tái),因而專門容易移植。程序的移植性是指程序不通過修改而在不同硬件或軟件平臺(tái)上運(yùn)行的特性??梢浦残园▋煞N層次:源代碼級(jí)可移植性和二進(jìn)制級(jí)可移植性。C和C++只具有源代碼級(jí)可移植性,表明C或C++源程序要能夠在不同平臺(tái)上運(yùn)行,必須重新編譯。而Java是真正的二進(jìn)制可移植的。Java編譯器所生成的可執(zhí)行代碼并不基于任何具體硬件平臺(tái),而是基于Java虛擬機(jī)(JavaVirtualMachine,JVM)。通過預(yù)先把Java源程序編譯成字節(jié)碼,Java幸免了傳統(tǒng)的解釋語言的性能瓶頸,并確保了其可移植性。2.簡(jiǎn)單性。在支持強(qiáng)大功能的同時(shí)保持系統(tǒng)開發(fā)和使用上的簡(jiǎn)單性是Java開發(fā)小組一開始就遵循的宗旨。由于Java起源于信息家電的嵌入式系統(tǒng),因此具備了簡(jiǎn)單明了的特性。Java開發(fā)小組把它戲稱為:KISS(KeepItSimple,Stupid)策略。正式因?yàn)镴ava語言的如此一個(gè)特點(diǎn),使得它既能夠支持面向?qū)ο蟮拈_發(fā)方法,又能使開發(fā)過程簡(jiǎn)單易行。從而Java開始在眾多的面向?qū)ο箝_發(fā)語言中脫穎而出,成為當(dāng)今軟件開發(fā)工具中的新寵。3.高性能。Java是多線程的語言,提高了程序執(zhí)行的并發(fā)程度。而C++采納的是單線程的體系結(jié)構(gòu),均未提供對(duì)線程的語言級(jí)支持。4.面向?qū)ο笮訨ava具有面向?qū)ο蟮牟畈欢嗵匦院蛢?yōu)點(diǎn),但Java不是真正意義上的面向?qū)ο蟮某绦蛘Z言。因此,Java在操作上遠(yuǎn)比真正意義上的面向?qū)ο蟮钠渌绦蛘Z言要簡(jiǎn)單。5.動(dòng)態(tài)性、分布性和安全性Java具有把分布在網(wǎng)絡(luò)上的對(duì)象當(dāng)作本地對(duì)象來處理的能力,整個(gè)系統(tǒng)的分布能力極好。Java的網(wǎng)絡(luò)處理功能是靠Java良好的系統(tǒng)安全性能來保障的。沒有安全性能的保障,再好的系統(tǒng)商務(wù)處理系統(tǒng)也不敢使用。Java與C++一樣大量使用類庫,而C++面臨的一個(gè)問題是一旦類庫升級(jí),應(yīng)用程序必須重新編譯。而Java采納滯后聯(lián)編技術(shù),類是在運(yùn)行時(shí)動(dòng)態(tài)裝載的。自動(dòng)維護(hù)其一致性;分布包括數(shù)據(jù)分布和操作分布。Java兩種都支持。9.5.2面向?qū)ο蟮腏AVA編程Java程序有兩種類型:Applet和Application。簡(jiǎn)單的講,Applet確實(shí)是嵌入Web文檔的程序,而Application則是所有其它類型的程序。本文中要緊討論Applet。在編譯和檢驗(yàn)Javaapplet前,需要兩樣?xùn)|西:Java編譯器和支持Java的掃瞄器。假如你差不多有了編譯器和支持Java的掃瞄器,則能夠用文本編輯器輸入下面的代碼“歡迎來到Java世界”://Hello.javaimportjava.awt.*;importjava.applet.*;publicclassHelloextendsApplet{publicvoidpaint(Graphicsg){for(intx=0;x<size().height;x++){g.drawString("歡迎來到Java世界!",10,x*15);}}}

為了編譯該程序,把它存成名為“Hello.java”的文本文件。在命令行上鍵入:javacHello.java要注意字母的大小寫,即使在Windows95和WindowsNT中也是如此。該命令會(huì)編譯上面的Java代碼,并建立一個(gè)稱為“Hello.class”的文件,它是包含有二進(jìn)制代碼的applet。注意,假如類名稱與文件名稱相同,會(huì)省去一些苦惱。編譯器所產(chǎn)生的是applet。applet是一個(gè)二進(jìn)制文件,它包含有可執(zhí)行的代碼。為了執(zhí)行該代碼,你需要把它裝如到支持Java的掃瞄器中。用下面的HTML來實(shí)現(xiàn),你應(yīng)該把它與你的applet裝到同一目錄中:<title>歡迎來到Java世界Demo</title><hr><appletcode=Hello.classwidth=300height=120></applet></hr>在你的掃瞄器中裝入上面的HTML代碼,就能夠看到“歡迎來到Java世界”applet在該HTML所在頁中的一個(gè)300×120小窗口中運(yùn)行的結(jié)果。讓我們一行行來研究一下上面的代碼以理解程序,看看它是如何工作的。在下面的列表中,我們?yōu)榱擞懻摰姆奖悖o代碼加上了行號(hào)://Hello.java1importjava.awt.*;2importjava.applet.*;3publicclassHelloextendsApplet4{5publicvoidpaint(Graphicsg){for(intx=0;x<size().height;x++){g.drawString("歡迎來到Java世界!",10,x*15);}}頭兩行的“import”是輸入庫,這有些象C或C++的include語句。然而在Java中,庫是一種層次結(jié)構(gòu)的存在的,你能夠只裝入你所需要的那一段。那個(gè)地點(diǎn)我們java庫裝入了applet和AWT段。第三行中的代碼講明了一個(gè)稱為Hello的新類。文件名與類名應(yīng)該是相同的,因?yàn)樵揳pplet被稱為Hello,其文件名也應(yīng)該是Hello.java,前面曾經(jīng)提到過。該類是從Applet類繼承來的,并進(jìn)行了擴(kuò)展。applet類有一個(gè)名為paint的方法(實(shí)際上,paint方法來自超級(jí)類Applet的Component)。該方法是在exposure上調(diào)用的。它接收一個(gè)指向用于該applet的Graphics類引用。用于該applet的Graphics類是applet在掃瞄器中的“窗口”。當(dāng)你使用該Graphics類繪圖時(shí),所繪制的圖形出現(xiàn)在該applet的窗口中。在第5行,paint方法差不多被重載,并循環(huán)10次來繪制“歡迎來到Java世界!”字符9.6JSP技術(shù)介紹9.6.1JSP簡(jiǎn)介JSP(JavaServerPages)是一種基于Java的腳本技術(shù)。在JSP的眾多優(yōu)點(diǎn)中,有一點(diǎn)是它能將HTML編碼從Web頁面的業(yè)務(wù)邏輯中有效地分離出來。用JSP訪問可重用的組件,Servlet、JavaBean 和基于Javar的Web應(yīng)用程序。JSP還支持在Web頁面中直接嵌入Java代碼??捎脙煞N方法訪問JSP文件:掃瞄器發(fā)送JSP文件請(qǐng)求、發(fā)送至Servlet的請(qǐng)求。JSP文件訪問Bean或其他能將生成的動(dòng)態(tài)內(nèi)容發(fā)送到掃瞄器的組件。圖9-1講明了該JSP訪問模型。當(dāng)Web服務(wù)器接收到一個(gè)JSP文件請(qǐng)求時(shí),服務(wù)器將請(qǐng)求發(fā)送至WebSphere應(yīng)用服務(wù)器。WebSphere應(yīng)用服務(wù)器對(duì)JSP文件進(jìn)行語法分析并生成Java源文件(被編譯和執(zhí)行為Servlet)。Java源文件的生成和編譯僅在初次調(diào)用Servlet時(shí)發(fā)生,除非差不多更新了原始的JSP文件。在這種情況下,WebSphere應(yīng)用服務(wù)器將檢測(cè)所做的更新,并在執(zhí)行它之間重新生成和編譯Servlet。掃瞄器掃瞄器JSP文件Bean數(shù)據(jù)庫圖9-1掃瞄器發(fā)送JSP文件請(qǐng)求發(fā)送至Servlet的請(qǐng)求生成動(dòng)態(tài)內(nèi)容,并調(diào)用JSP文件將內(nèi)容發(fā)送到掃瞄器。圖9-2講明了該訪問模型。該訪問模型使得將內(nèi)容生成從內(nèi)容顯示中分離出來更為方便。WebSphere應(yīng)用服務(wù)器支持HttpServiceRequest對(duì)象和HttpServiceRequest對(duì)象的一套新方法。這些方法同意調(diào)用的Servlet將一個(gè)對(duì)象放入(通常是一個(gè)Bean)請(qǐng)求對(duì)象中,并將該請(qǐng)求傳遞到另一個(gè)頁面(通常是一個(gè)JSP文件)以供顯示。調(diào)用的頁面從請(qǐng)求對(duì)象中檢索Bean,并用JSP來生成客戶機(jī)端的HTML。ServletServlet數(shù)據(jù)庫JSP文件JDBCJDBC請(qǐng)求響應(yīng)結(jié)果請(qǐng)求響應(yīng)結(jié)果bean圖9-2發(fā)送至Servlet的請(qǐng)求9.6.2JSP語法JSP文件(擴(kuò)展名為.jsp)能夠包含指令(或稱為指示語句)、Class-wide變量和方法、直接插入的Java代碼(scriptlet)、訪問JavaBean、變量數(shù)據(jù)的HTML模型、變量數(shù)據(jù)的Java表達(dá)式的組合。1.JSP指令使用JSP指令(在<%@和%>內(nèi)的)來指定所使用的腳本語言、Servlet實(shí)現(xiàn)的接口、Servlet擴(kuò)展的類、Servlet導(dǎo)入的軟件包。JSP指令的一般語法形式為:<%@指令名="值"%>。其中有效的指令名為:(1)language:文件中所使用的腳本語言?,F(xiàn)在關(guān)于Java程序設(shè)計(jì)語言來講,僅Java為有效值和默認(rèn)值。該指令作用于整個(gè)文件。當(dāng)多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@language="java"%>(2)Method:由嵌入的Java代碼(scriptlet)生成的方法的名稱。生成的代碼會(huì)成為指定方法名的主體。默認(rèn)的方法是service。當(dāng)多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@method="doPost"%>(3)Import:Servlet導(dǎo)入的Java語言軟件包名或類名列表,該列表是用逗號(hào)分隔的。在JSP文件中,能夠多次指定該指令來導(dǎo)入不同的軟件包。示例如下:<%@import="java.io.*,java.util.Hashtable"%>(4)content-type:生成的響應(yīng)的MIME類型。默認(rèn)值為text/html。當(dāng)多次使用該指令時(shí),只有第一次使用是有效的。該指令可用來指定在其中對(duì)頁面進(jìn)行編碼的字符集。示例如下:<%@content-type="text/html;charset=gb2312"%>(5)mplements:用于生成Servlet實(shí)現(xiàn)的Java語言接口列表,該列表是用逗號(hào)分隔的。能夠在一個(gè)JSP文件中多次使用該命令,以實(shí)現(xiàn)不同的接口。示例如下:<%@implements="javax.servlet.http.HttpSessionContext"%>(6)extends:Servlet擴(kuò)展的Java語言類的名稱。該類必須是有效的,且不能是一個(gè)Servlet類。該指令作用于整個(gè)JSP文件。當(dāng)多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@extends="javax.servlet.http.HttpServlet"%>2.Class-wide變量和方法使用<SCRIPT>和</SCRIPT標(biāo)記來講明Servlet類的class-wide變量和class-wide方法。一般語法如下:<scritprunat=server>//class-wide變量和方法的代碼</script>屬性runat=server是必需的,它表明該標(biāo)記是用于服務(wù)器端處理的。指定class-wide變量和方法的示例如下:<scriptrunat=server>//class-wide變量initI=0;Stringfoo="Hello";//Class-wide方法privatevoidfoo(){//該方法的代碼}</script>9.6.3JSP開發(fā)工具下列工具使用JSP文件的開發(fā)更為容易:1.IBMWebSphereStudio1.0版本Studio向?qū)?chuàng)建用于動(dòng)態(tài)內(nèi)容的Servlet、JavaBean和JSP。向?qū)О▽?duì)建立關(guān)系數(shù)據(jù)庫的SQL查詢和關(guān)于Web訪問者的信息維護(hù)支持。能夠用向?qū)л敵鑫募罢赵瓨印被蚨ㄖ埔院蟮妮敵鑫募?.NetObjectsScriptBuilder2.01版本在ScriptBuilder2.01版本中,JSP支持JSP模板、JSP文件示例和重要的JSP語法。3.IBMVisualAgeforJava2.0企業(yè)版VisualAgeforJava2.1提供了ServletLauncher和JSPExecutionMonitor。ServletLauncher使用戶能啟動(dòng)Web服務(wù)器,打開Web掃瞄器并啟動(dòng)Servlet,而JSPExecutionMonitor使用戶能監(jiān)控JSP源、生成Servlet和生成HTML源的執(zhí)行情況。VisualAgeforJava2.1還同意在Servlet代碼內(nèi)設(shè)置斷點(diǎn)、在斷點(diǎn)上動(dòng)態(tài)地更新Servlet、使用合并后的更改接著運(yùn)行Servlet。能夠做所有這些情況,而不用重新啟動(dòng)Servlet。9.7常用的編輯器及開發(fā)工具簡(jiǎn)介過去,在創(chuàng)建Wed頁面時(shí)必須在WindowsNotepad這類簡(jiǎn)單的文本編輯器中輸入適當(dāng)?shù)拇a。這種過程特不乏味和耗時(shí),而且當(dāng)所生成的頁面與預(yù)想的不一樣時(shí),通常也較難排除錯(cuò)誤。而現(xiàn)在的情況就不同了,目前市面上有專門多種網(wǎng)絡(luò)商務(wù)站的創(chuàng)建工具,而且使用起來也越來越簡(jiǎn)單。特不是近年來出現(xiàn)的一些“所見即所得”類型的開發(fā)工具,簡(jiǎn)直簡(jiǎn)單得不用具體地介紹了。幾乎是只要有人告訴他如何去調(diào)出這些工具,余下的事只要是略微有一點(diǎn)軟件技術(shù)基礎(chǔ)的人都能夠依圖或提示操作,并在專門短的時(shí)刻內(nèi)開發(fā)出一個(gè)網(wǎng)絡(luò)商務(wù)網(wǎng)站。這些編輯器為復(fù)雜頁面的創(chuàng)建和高級(jí)HTML規(guī)范提供了廣泛支持,支持用戶輕松地編輯和從事頁面創(chuàng)建。至于哪個(gè)(或哪些)編輯器最適合你的需要,應(yīng)依照具體的環(huán)境條件以及分析設(shè)計(jì)對(duì)商務(wù)網(wǎng)站的專門要求而定。9.7.1HotDogHotDog是一個(gè)早期的HTML編輯器,它為NetscapeNavigator和Microsoft的InternetExplorer提供了大量的高級(jí)HTML標(biāo)記。它所提供的對(duì)文本進(jìn)行操作和格式化的方法與常用的字處理軟件幾乎相同,只要對(duì)HTML有初步的了解,學(xué)會(huì)使用HotDog編輯器就不成問題。HotDog有兩種版本——Standard和Pro。對(duì)兩者進(jìn)行一定的配置后,均可通過選擇“Preview”按鈕將當(dāng)前文檔裝載到默認(rèn)掃瞄器中。兩者的要緊區(qū)不是Pro版本帶有ROVER,這是一個(gè)實(shí)時(shí)輸出查看程序,用它能夠隨時(shí)查看對(duì)HTML代碼進(jìn)行編輯的結(jié)果。9.7.2MicrosoftFrontPageMicrosoftfrontpage是一個(gè)特不有用的商務(wù)網(wǎng)站創(chuàng)建工具,它提供了“所見即所得”的開發(fā)界面。那個(gè)界面使得創(chuàng)建Web頁面的工作變得異常簡(jiǎn)單。然而,F(xiàn)rontPage是在大多數(shù)HTML編輯器的基礎(chǔ)上做了進(jìn)一步的開發(fā),用它所提供的環(huán)境,能夠在觀看將郵送到Web上的Web頁面的同時(shí),對(duì)其進(jìn)行創(chuàng)建性的編輯和操作。然而,F(xiàn)rontPage并不支持編輯和查看所需的所有特征。例如,只在編輯時(shí)支持框架(Frame),因此關(guān)于某些頁面來講,還需要用像InternetExplorer或NetscapeNavigator如此的掃瞄器來查看其輸出。FrontPage軟件包中的一個(gè)最全然的進(jìn)步確實(shí)是它的“bots”(“Robots”的縮寫),除非你明白如何樣使用CGI腳本,否則你確信沒有用過它所提供的先進(jìn)的Web頁面特征。例如,用FrontPage能夠在Web頁面中放置一個(gè)bot,使用戶能夠輸入一個(gè)掃描全部Web站點(diǎn)并顯示結(jié)果列表的搜索請(qǐng)求。同時(shí),運(yùn)用FrontPage的先進(jìn)的技術(shù),能夠不用任何CGI腳本而在幾分鐘內(nèi)創(chuàng)建交互式的基于Web的公告板。FrontPage的另一個(gè)強(qiáng)大的特征是它的wizard。為了讓用戶能夠利用預(yù)先配置好的標(biāo)準(zhǔn)格式來快速創(chuàng)建Web頁面,F(xiàn)rontPage提供了許多wizard,那么你的頁面就專門可能與其他那些使用wizard,那么你的頁面就專門可能與其他那些使用FrontPage的站點(diǎn)的頁面雷同。9.7.3NetscapeGoldNetscapeGold也是由開發(fā)NetscapeNavigator掃瞄器的小組開發(fā)的。用NetscapeGold作為Web編輯器,能夠在掃瞄Web時(shí)完全相同的界面中創(chuàng)建和編輯Web頁面。盡管NetscapeGold屬于商業(yè)產(chǎn)品,但仍能夠從Netscape在的Web站點(diǎn)免費(fèi)下載它的新的beta版。NetscapeGold的一個(gè)最好的特征是用它能夠先掃瞄Web頁面,然后單擊鉛筆圖標(biāo),即可在“所見即所得”環(huán)境中對(duì)該頁面的HTML代碼進(jìn)行編輯,這意味著假如遇到具有你特不喜愛的風(fēng)格和布局的頁面時(shí),能夠立即使用NetscapeGold來編輯HTML代碼,加入你自己的信息和圖形,并將該文檔保存在本地,以便你的Web站點(diǎn)上使用。9.8電子商務(wù)系統(tǒng)實(shí)例以下給出的是網(wǎng)上電腦專賣店的應(yīng)用程序?qū)崿F(xiàn),其中包括首頁default.asp、本期促銷商品網(wǎng)頁forsale.asp、商品目錄網(wǎng)頁product.asp、定單網(wǎng)頁orderinform.asp、商品選購網(wǎng)頁(購物袋)shoppingbag.asp、付款結(jié)帳網(wǎng)頁pay.asp。另外附有一個(gè)普遍的用戶注冊(cè)網(wǎng)頁reg.asp。1、首頁default.asp<html><head><title>電腦專賣店網(wǎng)上購物網(wǎng)站</title><metaname="GENERATOR"content="MicrosoftFrontPage3.0"><metaname="MicrosoftBorder"content="none"></head><bodybackground="Background.gif"><palign="center"><big><big><big>電腦專賣店</big></big></big></font></p><palign="center"><big><big>網(wǎng)上購物網(wǎng)站</big></big></font></p><palign="center">歡迎光臨電腦專賣店網(wǎng)上購物網(wǎng)站??!本網(wǎng)站支持SSL安全協(xié)議,您能夠安心選購</p><p><fontcolor="#800000"><small>您是第<!--webbotbot="HitCounter"i-image="2"i-digits="0"PREVIEW="<;strong>;[HitCounter]<;/strong>;"u-customi-resetvalue="100"startspan--><imgsrc="../_vti_bin/fpcount.exe/all_test/?Page=onlineshopping/default.asp|Image=2"alt="站點(diǎn)計(jì)數(shù)器"><!--webbotbot="HitCounter"endspani-checksum="38395"-->位光臨者</small></font><ul><li><ahref="ForSale.asp?temp_id=<%=Request.QueryString("temp_id")%>">本期促銷商品</a><big><big></big>Hot!!</big></font></font></li></ul><ul><li>看看本站的<ahref="Product_List.asp?temp_id=<%=Request.QueryString("temp_id")%>">商品目錄</a>吧!</font></li></ul><p><imgsrc="key.gif"alt="BS00048A.gif(1605bytes)"align="center"WIDTH="100"HEIGHT="100"><fontcolor="#000080">本網(wǎng)站采納</font><fontcolor="#800000">SSL</font>交易,所有個(gè)人機(jī)密資料皆加密后傳送,請(qǐng)安心購物。</font></p><palign="center">[<ahref="ForSale.asp?temp_id=<%=Request.QueryString("temp_id")%>">促銷商品</a>] [<ahref="Product_List.asp?temp_id=<%=Request.QueryString("temp_id")%>">商品目錄</a>][<ahref="ShoppingBag.asp?temp_id=<%=Request.QueryString("temp_id")%>">我的購物袋</a>]</p></body></html>圖9-1首頁default.asp的Frontpage2000界面2、本期促銷商品網(wǎng)頁forsale.asp<%DimdbOnlineShoppingDBDimrsForSaleDimstrSQLdimrs'OpenConnectiontoDataBase"OnlineShoppingDB"SetdbOnlineShoppingDB=Server.CreateObject("ADODB.Connection")dbOnlineShoppingDB.Open"DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&server.mappath("OnlineShoppingDB.mdb")'SelectProductFieldsstrSQL="SELECT*FROMRef_Product"'WHEREProduct_ForSale=True"SetrsForSale=Server.CreateObject("ADODB.Recordset")rsForSale.OpenstrSQL,dbOnlineShoppingDB,3,1%><html><head></head><bodybackground="Background.gif"><palign="center"><fontcolor="#004080"><big><big><big>電腦專賣店</big></big></big></font></p><palign="center"><fontcolor="#FF0000"><big><big>本期促銷商品</big></big></font></p><p>商品促銷開始了</p><p>本期促銷商品</p><tableborder="1"width="79%"><tr><tdwidth="23%"bgcolor="#008080"><fontcolor="#FFFFFF">商品圖片</font></td><tdwidth="55%"bgcolor="#008080"><fontcolor="#FFFFFF">商品講明</font></td><tdwidth="22%"bgcolor="#008080"><fontcolor="#FFFFFF">促銷價(jià)</font></td></tr> <%DoWhileNotrsForSale.Eof%><tr><tdwidth="23%"><imgsrc="<%=rsForSale("Product_Picture")%>"WIDTH="100"HEIGHT="100"></td><tdwidth="55%"><%=rsForSale("Product_Name")%><p><%=rsForSale("Product_Spec")%></td><tdwidth="22%"><%=rsForSale("Product_Price")%><p><ahref="ShoppingBag.asp?temp_id=<%=Request.QueryString("temp_id")%>&;Product_No=<%=rsForSale("Product_No")%>">放入購物袋</a></td></tr> <%rsForSale.MoveNext%> <%Loop%></table><palign="center">[促銷商品][<ahref="Product_List.asp?temp_id=<%=Request.QueryString("temp_id")%>">商品目錄</a>][<ahref="ShoppingBag.asp?temp_id=<%=Request.QueryString("temp_id")%>">我的購物袋</a>]</p></body></html>圖9-4本期促銷商品網(wǎng)頁forsale.asp的Frontpage2000界面3、商品目錄網(wǎng)頁product.asp<%DimdbOnlineShoppingDBDimrsProductDimstrSQL'OpenConnectiontoDataBase"OnlineShoppingDB"SetdbOnlineShoppingDB=Server.CreateObject("ADODB.Connection")dbOnlineShoppingDB.Open"DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&server.mappath("OnlineShoppingDB.mdb")'SelectProductFieldsstrSQL="SELECT*FROMRef_Product"SetrsProduct=Server.CreateObject("ADODB.Recordset")rsProduct.OpenstrSQL,dbOnlineShoppingD

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論