版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第13章其他網(wǎng)站框架及開發(fā)技術(shù)13.1基于Java的網(wǎng)站設(shè)計(jì)框架13.2搜索引擎與網(wǎng)站推廣技術(shù)13.3ASP.NET技術(shù)介紹13.4PHP技術(shù)介紹
【學(xué)習(xí)提示】為了給讀者提供進(jìn)一步學(xué)習(xí)的思路,本章列舉了一些重要的信息以供參考。其中包括:在開發(fā)大型而復(fù)雜的網(wǎng)站時(shí)需要基于Java的設(shè)計(jì)框架,讓開發(fā)者可以站在巨人的肩膀上;搜索引擎和SEO技術(shù)可以幫助網(wǎng)站的開發(fā)者實(shí)現(xiàn)其商業(yè)目標(biāo);ASP.NET和PHP技術(shù)可以幫助開發(fā)者了解一些重要的、非Java的網(wǎng)站開發(fā)技術(shù),以擴(kuò)展開發(fā)思路。
13.1.1應(yīng)用框架的優(yōu)點(diǎn)
隨著用戶對(duì)網(wǎng)站功能和性能的要求不斷提高,網(wǎng)站的設(shè)計(jì)模式也需要不斷改進(jìn)。如果一個(gè)網(wǎng)站的架構(gòu)和所有功能都要用Java語言一一寫出來,那么開發(fā)的速度和質(zhì)量將會(huì)面臨很大的考驗(yàn)。因此,通過應(yīng)用Spring、Struts等設(shè)計(jì)框架提高網(wǎng)站建設(shè)的速度和質(zhì)量,已成為網(wǎng)站建設(shè)者的必要手段。采用應(yīng)用框架方式的主要優(yōu)點(diǎn)如下:13.1基于Java的網(wǎng)站設(shè)計(jì)框架
(1)能夠有效地提高代碼的重用性。如果應(yīng)用框架技術(shù)來開發(fā)應(yīng)用系統(tǒng),就能夠在多個(gè)不同的層次上實(shí)現(xiàn)重用,這不僅體現(xiàn)在系統(tǒng)功能代碼的實(shí)現(xiàn)方面,也體現(xiàn)在系統(tǒng)體系結(jié)構(gòu)及組件類的設(shè)計(jì)方面。比如在系統(tǒng)的分析抽象層上,重用的元素主要有子系統(tǒng)和類等,此時(shí)的系統(tǒng)設(shè)計(jì)人員只需要專注于對(duì)領(lǐng)域知識(shí)的了解,使需求分析能夠更充分;而在應(yīng)用系統(tǒng)的設(shè)計(jì)層面上,可重用的元素有系統(tǒng)體系結(jié)構(gòu)、子系統(tǒng)體系結(jié)構(gòu)、設(shè)計(jì)模式、框架、容器、組件、類庫、模板和組件類等,這不僅可以實(shí)現(xiàn)在代碼方面的重用,還包括在設(shè)計(jì)思想和方法等層次的重用。同時(shí),網(wǎng)站系統(tǒng)開發(fā)的效率和整體質(zhì)量也能夠得到明顯提高。
(2)能夠簡(jiǎn)化和優(yōu)化應(yīng)用系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。RickardBerg(Jboss的創(chuàng)始人之一)曾經(jīng)說過:“框架的強(qiáng)大之處不是源自它能讓你做什么,而是它不能讓你做什么”。Rickard的話不僅說明框架能夠使原本很混亂的東西變得結(jié)構(gòu)化,而且也提出在應(yīng)用某種框架時(shí)不應(yīng)該再進(jìn)行什么行為。因?yàn)閼?yīng)用框架能夠?qū)⒕W(wǎng)站系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)工作標(biāo)準(zhǔn)化,從而也就達(dá)到了簡(jiǎn)化和優(yōu)化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)的目的。
(3)能夠提高網(wǎng)站系統(tǒng)開發(fā)的工程化。利用框架來開發(fā)、集成網(wǎng)站系統(tǒng),可以使軟件開發(fā)更加符合軟件工程模式。這樣的工程化軟件生產(chǎn)方式將大大縮短開發(fā)周期。采用框架形式的開發(fā)可以充分利用繼承和重用等機(jī)制,因此要比一切從頭開始并且自己獨(dú)立地開發(fā)實(shí)現(xiàn)要快速、高效得多。
(4)能夠提高系統(tǒng)的靈活性。由于基于框架的系統(tǒng)有很多功能是通過配置(編輯XML文件設(shè)定配置參數(shù))而不是編程實(shí)現(xiàn)來完成的,因而提高了系統(tǒng)的靈活性。在系統(tǒng)需求發(fā)生變化時(shí),只需要修改相應(yīng)的系統(tǒng)配置文件中的項(xiàng)目?jī)?nèi)容。因此,框架技術(shù)提供的參數(shù)化配置使應(yīng)用系統(tǒng)本身的適應(yīng)性、靈活性得到了增強(qiáng)。
目前,在國際上已有多種基于J2EEWeb開發(fā)框架,它們都提供了較好的層次分隔能力。在實(shí)現(xiàn)MVC的基礎(chǔ)上,這些框架通過提供一些現(xiàn)成的輔助類庫,促進(jìn)了網(wǎng)站建設(shè)效率和質(zhì)量的提高。現(xiàn)在應(yīng)用較廣泛的框架包括Struts、Webwork、Tapestry、JSF以及SpringMVC等。其中,Struts和Spring的體系結(jié)構(gòu)和開發(fā)模式都非常符合網(wǎng)站建設(shè)的需要。13.1.2Struts框架
Struts是Apache軟件組織提供的一項(xiàng)開放源碼項(xiàng)目,它為JavaWeb應(yīng)用提供了模型-視圖-控制器(Model-View-Controller,MVC)框架,尤其適用于開發(fā)大型可擴(kuò)展的Web應(yīng)用,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。Struts框架提供了許多供擴(kuò)展和定制的地方,而且應(yīng)用程序也可以方便地?cái)U(kuò)展框架來更好地適應(yīng)用戶的實(shí)際需求。Apache于2007年推出了基于WebWork技術(shù)體系架構(gòu)的Struts2.0框架技術(shù),帶來了革命性的改進(jìn)。從某種程度上來講,Struts2不是Struts1的升級(jí),而是繼承了WebWork框架,或者說是WebWork的升級(jí)。Struts2吸收了Struts1和WebWork兩者的優(yōu)勢(shì),因此深受廣大Java程序員的關(guān)注。Struts的體系結(jié)構(gòu)如圖13-1所示。
圖13-1Struts的體系結(jié)構(gòu)13.1.3Spring框架
Spring是一個(gè)開源框架,它是為了解決大中型應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBeans來完成以前由EJB完成的功能,它是一個(gè)輕量的控制反轉(zhuǎn)和面向切面的容器框架,并且是非侵入式的。Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類,并且Spring通過控制反轉(zhuǎn)技術(shù)促進(jìn)了松耦合。Spring包含對(duì)面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)服務(wù)(如數(shù)據(jù)庫操作審計(jì)與事務(wù)管理等)進(jìn)行內(nèi)聚性的開發(fā);它也包含和管理應(yīng)用對(duì)象的配置以及生命周期。
Spring框架的發(fā)展離不開大量開源社區(qū)程序員的支持。2002年,RodJohnson在《ExpertOne-on-OneJ2EEDesignandDevelopment》一書中闡述了Spring的架構(gòu)思想。接著在他的另一本書《ExpertOneononeJ2EEDevelopmentWithoutEJB》出版之后,其在開源使用協(xié)議下提供了相關(guān)的源代碼。2003年2月,一批自愿拓展Spring框架的程序開發(fā)員組成團(tuán)隊(duì),在Sourceforge上構(gòu)建了一個(gè)項(xiàng)目,并在2004年3月發(fā)布了第一個(gè)版本。2005年12月,Spring第一次會(huì)議在邁阿密舉行。2010年11月,Spring推出了3.0.5版本,該版本提供了更加完善和穩(wěn)定的功能框架。
Spring框架是一個(gè)分層的J2EE應(yīng)用程序框架,它是一個(gè)從實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)中抽取出來的、可高度重用的開發(fā)框架。它基于控制反轉(zhuǎn)組件,使得Java組件被集中配置和管理,提高了代碼的可復(fù)用性、易測(cè)試性和可維護(hù)性。Spring是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的,因而可以使用Spring來替代EJB開發(fā)企業(yè)級(jí)應(yīng)用,而不用擔(dān)心工作量太大以及開發(fā)進(jìn)度難以控制和測(cè)試過程復(fù)雜等問題。該框架的主要優(yōu)勢(shì)是其良好的設(shè)計(jì)和分層架構(gòu),軟件開發(fā)人員可以只選擇Spring提供的某項(xiàng)技術(shù),而不需要使用所有的技術(shù),同時(shí),Spring還提供了和其他開源框架的無縫集成,為J2EE應(yīng)用程序開發(fā)提供了集成的框架。它以IoC(控制反轉(zhuǎn))和AOP(面向切面編程)兩種先進(jìn)的技術(shù)為基礎(chǔ),簡(jiǎn)化了企業(yè)級(jí)開發(fā)的復(fù)雜度。
Spring框架由七個(gè)模塊組成,如圖13-2所示。
圖13-2Spring框架由七個(gè)模塊
Spring的依賴注入技術(shù)(InversionofControl,IoC)使得應(yīng)用程序本身不負(fù)責(zé)依賴對(duì)象的創(chuàng)建和維護(hù),而依賴對(duì)象的創(chuàng)建和維護(hù)是由外部容器負(fù)責(zé)的,它外化了組件之間依賴關(guān)系的創(chuàng)建和管理。控制反轉(zhuǎn)就是控制權(quán)的轉(zhuǎn)移,控制權(quán)由應(yīng)用程序本身轉(zhuǎn)移到了外部容器。這是一種很好的解耦方式,應(yīng)用程序的實(shí)現(xiàn)完全和被調(diào)用者的實(shí)現(xiàn)沒有關(guān)系,也不需要主動(dòng)定位工廠,實(shí)例之間的依賴關(guān)系由IoC容器負(fù)責(zé)管理。
Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。使用Spring可插入的MVC架構(gòu),可以選擇使用內(nèi)置的SpringWeb框架或Struts的Web框架。通過策略接口,Spring框架是高度可配置的,而且包含多種視圖技術(shù),如JSP、Velocity、Tiles、iText和POI。SpringMVC框架和使用的視圖技術(shù)無關(guān),所以使用什么視圖技術(shù)由開發(fā)人員決定。SpringMVC分離了控制器、模型對(duì)象、分發(fā)器以及處理程序?qū)ο?,這種分離使它們更容易進(jìn)行定制。面向切面編程(AspectOrientedProgramming,AOP)作為面向?qū)ο缶幊痰囊环N補(bǔ)充,將程序運(yùn)行過程分解成各個(gè)切面,有效地剝離和當(dāng)前業(yè)務(wù)無關(guān)的代碼,并把與當(dāng)前業(yè)務(wù)無關(guān)的代碼統(tǒng)一寫到一個(gè)代理對(duì)象里面,由其代勞。這樣編寫的代碼很“干凈”,提高了代碼的可讀性和可維護(hù)性,使得模塊之間的分工更為明確。實(shí)際的網(wǎng)站建設(shè)過程中,可以通過AOP來處理一些具有切面性質(zhì)的系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全檢查、緩存和對(duì)象池管理等。Spring框架給AOP提供了豐富的支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)來進(jìn)行高內(nèi)聚性的開發(fā)。13.1.4Hibernate框架
Hibernate是最流行的開源ORM框架之一,被選作JBoss持久層的解決方案,而隨著JBoss加入RedHat組織,Hibernate也稱為RedHat的一個(gè)重要項(xiàng)目。
Hibernate對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以方便地使用面向?qū)ο缶幊趟季S來操縱關(guān)系數(shù)據(jù)庫。Hibernate既可以在Java的客戶端程序中使用,也可以在Servlet/JSP的Web應(yīng)用中使用。另外,Hibernate還可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任?;贖ibernate的ORM體系架構(gòu)如圖13-3所示。
圖13-3基于Hibernate的ORM體系架構(gòu)從圖中可以看出,Hibernate需要一個(gè)perties文件,該文件用于配置Hibernate和數(shù)據(jù)庫的連接信息,在實(shí)際應(yīng)用中也可用hibernate.cfg.xml文件來代替。另外,它還需要一些XML映射配置文件來確定持久化類和數(shù)據(jù)表、數(shù)據(jù)列之間的對(duì)應(yīng)關(guān)系。Hibernate的持久化解決方案將用戶從復(fù)雜的JDBC訪問中釋放出來,用戶無需關(guān)注底層的JDBC操作,而是以面向?qū)ο蟮姆绞竭M(jìn)行持久層操作。底層數(shù)據(jù)連接的獲得、數(shù)據(jù)訪問的實(shí)現(xiàn)以及事務(wù)控制等都無需用戶關(guān)心。這是一種“全面解決”的體系結(jié)構(gòu)方案,將應(yīng)用層從底層的JDBC/JTAAPI中抽象出來,并通過配置文件管理底層的JDBC連接。
13.2.1搜索引擎的工作原理
搜索引擎(SearchEngine)根據(jù)站點(diǎn)的內(nèi)容提取各網(wǎng)站的信息再分門別類地建立自己的數(shù)據(jù)庫并向用戶提供查詢服務(wù)。每個(gè)引擎的工作原理是不同的,有的根據(jù)頁面內(nèi)容,有的按頁面標(biāo)題,有的按Meta來分,還有的是將這些方法綜合起來運(yùn)用的。13.2搜索引擎與網(wǎng)站推廣技術(shù)搜索引擎的工作包括如下三個(gè)過程:一是在互聯(lián)網(wǎng)中發(fā)現(xiàn)、搜集網(wǎng)頁信息;二是對(duì)所搜集的信息進(jìn)行提取和組織,并建立索引庫;三是由檢索程序根據(jù)用戶輸入的查詢關(guān)鍵詞,在索引庫中快速檢出相關(guān)文檔,進(jìn)行文檔與查詢內(nèi)容的相關(guān)度比較,對(duì)檢出的結(jié)果進(jìn)行排序,并將查詢結(jié)果返回給用戶。前兩個(gè)過程是后臺(tái)系統(tǒng)的主要工作,第三個(gè)過程則面向搜索用戶。
在目前數(shù)量眾多的搜索引擎中,根據(jù)它們的技術(shù)原理,可以分為三大主要類型:基于robot的搜索引擎、目錄索引型(directory,也叫做catalog)搜索引擎和元(Meta)搜索引擎。
1.基于robot的搜索引擎
基于robot的搜索引擎是利用一個(gè)稱為robot(也叫做spider、Webcrawler或Webwanderer)的程序自動(dòng)訪問Web站點(diǎn),提取站點(diǎn)上的網(wǎng)頁。robot搜集的網(wǎng)頁被加入到搜索引擎的數(shù)據(jù)庫中,供用戶查詢使用?;趓obot的搜索引擎一般要定期訪問以前搜集的網(wǎng)頁,刷新索引數(shù)據(jù)庫,以反映出網(wǎng)頁的更新情況。
2.目錄索引型搜索引擎
目錄索引型與基于robot搜索引擎所不同的是,目錄索引型的索引數(shù)據(jù)庫是依靠編輯人員建立起來的,這些編輯人員在訪問了某個(gè)Web站點(diǎn)后根據(jù)一套自定的評(píng)判標(biāo)準(zhǔn)及主觀印象撰寫出對(duì)該站點(diǎn)的描述,并根據(jù)站點(diǎn)的內(nèi)容和性質(zhì)將其歸為一個(gè)預(yù)先分好的類別,再分門別類地存放在相應(yīng)的目錄中,當(dāng)用戶在查詢時(shí),可以通過關(guān)鍵詞搜索,也可以按分類目錄逐層檢索。由于目錄索引型的索引數(shù)據(jù)庫依靠人工來評(píng)價(jià)一個(gè)網(wǎng)站的內(nèi)容,因此用戶從目錄搜索得到的結(jié)果往往比從基于robot的搜索引擎得到的結(jié)果更具有參考價(jià)值。事實(shí)上,現(xiàn)在很多搜索站點(diǎn)都同時(shí)提供目錄和基于robot的搜索服務(wù),以便盡可能地為用戶提供全面的查詢結(jié)果。
3.元搜索引擎
元搜索引擎(Metasearchengine)將用戶提交的檢索請(qǐng)求送到多個(gè)獨(dú)立的搜索引擎上去搜索,并將檢索結(jié)果集中處理,以統(tǒng)一的格式提供給用戶,因此有“搜索引擎之上”的搜索引擎之稱。它的主要精力放在提高搜索速度、智能化處理搜索結(jié)果、個(gè)性搜索功能的設(shè)置和用戶檢索界面的友好性上,查全率和查準(zhǔn)率都比較高。它的特點(diǎn)是本身并沒有存放網(wǎng)頁信息的數(shù)據(jù)庫,當(dāng)用戶查詢一個(gè)關(guān)鍵詞時(shí),它把用戶的查詢請(qǐng)求轉(zhuǎn)換成其他搜索引擎所能夠接受的命令格式,并行地訪問數(shù)個(gè)搜索引擎來查詢這個(gè)關(guān)鍵詞,并把這些搜索引擎返回的結(jié)果經(jīng)過處理后再返回給用戶。13.2.2搜索引擎的發(fā)展趨勢(shì)
搜索引擎經(jīng)過多年的發(fā)展,功能越來越強(qiáng)大,為用戶提供的服務(wù)也越來越全面,查詢結(jié)果更精確,其發(fā)展的趨勢(shì)更加人性化、個(gè)性化和智能化。搜索引擎提供的主要服務(wù)和發(fā)展趨勢(shì)包括以下幾個(gè)方面:
●自然語言搜索技術(shù)。以自然語言理解技術(shù)為基礎(chǔ)的新一代搜索引擎,我們稱之為智能搜索引擎。由于它將信息檢索從目前基于關(guān)鍵詞層面提高到基于知識(shí)(或概念)層面,對(duì)知識(shí)有一定的理解與處理能力,能夠?qū)崿F(xiàn)分詞技術(shù)、同義詞技術(shù)、概念搜索、短語識(shí)別以及機(jī)器翻譯技術(shù)等。因而這種搜索引擎具有信息服務(wù)的智能化、人性化特征,允許檢索人員采用自然語言進(jìn)行信息的檢索,并提供更方便、更確切的搜索服務(wù)。
●目錄索引型與基于robot的搜索相結(jié)合。由于目錄索引型和基于robot的搜索引擎有各自的特點(diǎn),很多搜索站點(diǎn)同時(shí)提供這兩種類型的服務(wù)。
●智能化搜索。傳統(tǒng)的搜索引擎使用方法是被動(dòng)搜索。未來的搜索引擎可利用智能代理技術(shù)進(jìn)行主動(dòng)信息檢索,通過對(duì)用戶的查詢計(jì)劃、意圖、興趣方向進(jìn)行推理、預(yù)測(cè)并為用戶提供有效的檢索結(jié)果,是這種智能系統(tǒng)的支柱技術(shù)。它使用自動(dòng)獲得的知識(shí)進(jìn)行信息搜集過濾,并自動(dòng)地將用戶感興趣的信息通過電子郵件或其他方式提交給用戶。研究智能檢索系統(tǒng)已是形勢(shì)所迫并成為眾所關(guān)注的焦點(diǎn)。
●多媒體搜索。隨著互聯(lián)網(wǎng)寬帶技術(shù)的發(fā)展,未來的互聯(lián)網(wǎng)是多媒體數(shù)據(jù)的時(shí)代。開發(fā)出可查尋圖像、聲音、圖片和電影的搜索引擎是一個(gè)新的方向,它包括基于描述的多媒體檢索和基于內(nèi)容的多媒體檢索?;诿枋龅亩嗝襟w檢索就是用一個(gè)關(guān)鍵詞來描述所要查找的圖片或音樂;基于內(nèi)容的多媒體檢索就是用一些視覺特征來查找多媒體信息,這些視覺特征包括顏色、形狀、紋理等?!癖镜鼗阉?。本地化搜索是一個(gè)比較明顯的發(fā)展趨勢(shì)。世界上許多著名的搜索引擎都在美國,他們以英語為基礎(chǔ),按英文的思維方式和觀點(diǎn)搜集和檢索資料,這對(duì)于全球不同國家的用戶來說顯然是不適合的。各國的文化傳統(tǒng)、思維方式和生活習(xí)慣不同,在對(duì)網(wǎng)站內(nèi)容的搜索要求上也就存在差異。隨著互聯(lián)網(wǎng)在全球的迅速普及,綜合性的搜索引擎已經(jīng)不能滿足很多非美國網(wǎng)民的信息需求。搜索結(jié)果要符合當(dāng)?shù)赜脩舻囊?,搜索引擎就必須本地化,百度搜索就是成功的中文搜索引擎?3.2.3常用搜索引擎簡(jiǎn)介
互聯(lián)網(wǎng)的發(fā)展過程中,新型搜索引擎技術(shù)和搜索引擎公司不斷產(chǎn)生,有力地推動(dòng)了互聯(lián)網(wǎng)的繁榮發(fā)展。以下是互聯(lián)網(wǎng)中具有很大影響力的搜索引擎:
●Google搜索引擎()。1998年9月,美國斯坦福大學(xué)的兩名研究生拉里?佩吉和謝爾蓋?布林開始測(cè)試他們?cè)O(shè)計(jì)的Google搜索引擎。不到3年的時(shí)間,這一網(wǎng)站已在全球范圍內(nèi)擁有了一個(gè)正在快速增長(zhǎng)的忠實(shí)用戶群。目前,每天都有7000萬用戶登錄Google網(wǎng)上搜索引擎。Google每天處理的搜索超過1.5億次,而目前可檢索的網(wǎng)絡(luò)頁面數(shù)量達(dá)13.27億個(gè)?!癜俣人阉饕?)。百度1999年底成立于美國硅谷,它的創(chuàng)建者是在美國硅谷有多年經(jīng)驗(yàn)的李彥宏和徐勇。2000年百度公司回國發(fā)展,目前是全球最優(yōu)秀的中文信息檢索與傳遞技術(shù)供應(yīng)商之一。百度搜索引擎由四部分組成:蜘蛛程序、監(jiān)控程序、索引數(shù)據(jù)庫和檢索程序。搜索引擎使用了高性能的“網(wǎng)絡(luò)蜘蛛”程序,可以自動(dòng)地在互聯(lián)網(wǎng)中搜索信息,搜索范圍涵蓋了中國大陸、香港、臺(tái)灣、澳門、新加坡等華語地區(qū)以及北美、歐洲的部分站點(diǎn)。百度搜索引擎擁有目前世界上最大的中文信息庫,總量達(dá)到6000萬頁以上。●雅虎搜索引擎()。雅虎在全球共有24個(gè)網(wǎng)站,12種語言版本,其中雅虎中國網(wǎng)站于1999年9月正式開通,它是雅虎在全球的第20個(gè)網(wǎng)站。它為用戶提供了強(qiáng)大的搜索功能,通過其14類簡(jiǎn)單易用、手工分類的簡(jiǎn)體中文網(wǎng)站目錄及強(qiáng)大的搜索引擎,用戶可以輕松地搜索到政治、經(jīng)濟(jì)、文化、科技、房地產(chǎn)、教育、藝術(shù)、娛樂和體育等各方面的信息。13.2.4搜索引擎優(yōu)化SEO
隨著搜索引擎在網(wǎng)絡(luò)上的地位日漸重要,搜索引擎營(yíng)銷(SearchEngineMarketing)的概念也因此應(yīng)運(yùn)而生。搜索引擎營(yíng)銷一般也稱為搜索引擎最優(yōu)化SEO(SearchEngineoptimization),主要是指使網(wǎng)站在搜索引擎上,尤其在一些重要關(guān)鍵字的搜尋結(jié)果上有比較好的排名,以便更容易讓網(wǎng)絡(luò)用戶點(diǎn)擊進(jìn)入網(wǎng)站瀏覽內(nèi)容。不同的搜索引擎有不同的搜索引擎排名標(biāo)準(zhǔn),所以即使一個(gè)網(wǎng)站在Google排名中處于前10位不一定代表網(wǎng)站能在百度搜索引擎、雅虎搜索引擎或者搜狐搜索引擎排名中也在前十位。盡管如此,各大搜索引擎排名還是有一定規(guī)則可循的,這些因素包括:
●關(guān)鍵詞與網(wǎng)頁內(nèi)容的匹配度。如果你的網(wǎng)頁關(guān)鍵詞匹配度較高,那么它在各大搜索引擎排名中就會(huì)靠前。
●外部關(guān)聯(lián)連接的數(shù)量,也就是說有多少個(gè)網(wǎng)站鏈接到你的網(wǎng)站上。一般來說,外部鏈接數(shù)量越多,就說明你的網(wǎng)站越重要?!駜?nèi)部關(guān)聯(lián)連接,即具有很好的導(dǎo)航結(jié)構(gòu)。
在網(wǎng)頁設(shè)計(jì)中使用Meta標(biāo)記可以為搜索引擎提供準(zhǔn)確的關(guān)鍵詞信息:
<metaname="keyword"contents="關(guān)鍵詞一,關(guān)鍵詞二,關(guān)鍵詞三,…">
闡明整個(gè)網(wǎng)站的關(guān)鍵詞,關(guān)鍵詞間用逗點(diǎn)隔開,總長(zhǎng)度最好不要超過1000個(gè)Character(約44個(gè)字)。
<metaname="description"contents="整個(gè)網(wǎng)站的描述...">闡明整個(gè)網(wǎng)站吸引人的地方,可用逗點(diǎn)隔開,總長(zhǎng)度最好不要超過200個(gè)Character(約15個(gè)字)。
<metaname="robots"content="ALL,NONE,INDEX,NOINDEX,FOLLOW,NOFOLLOW">
此功能是給搜尋引擎使用的,用來告訴robot哪些網(wǎng)頁是要擷取的或不用擷取的,一般都設(shè)定成ALL(默認(rèn)值)。
下面HTML代碼是一個(gè)“輪胎”領(lǐng)域的網(wǎng)站所做的網(wǎng)頁關(guān)鍵詞設(shè)置:
<TITLE>中國輪胎網(wǎng)是中國首家提供橡膠輪胎信息查詢服務(wù)的網(wǎng)站</TITLE>
…
<metaname="description"content="輪胎/輪胎企業(yè)大全/輪胎產(chǎn)品大全橡膠/">
<metaname="keywords"content="輪胎,輪胎進(jìn)出口,…助劑">
除了通過調(diào)整頁面和網(wǎng)站的內(nèi)容結(jié)構(gòu)來提高網(wǎng)站在搜索引擎中的排名,網(wǎng)站還可以通過購買關(guān)鍵詞來達(dá)到網(wǎng)站推廣的目的。關(guān)鍵詞購買的方式在各搜索引擎中都有詳細(xì)的描述,這里不再贅述,但值得注意的是,關(guān)鍵詞的選取和組合也需要認(rèn)真的設(shè)計(jì)和計(jì)算。網(wǎng)站開展SEO工作需要對(duì)網(wǎng)絡(luò)、網(wǎng)站、信息檢索和文案編輯等專業(yè)的了解,通過設(shè)計(jì)或調(diào)整網(wǎng)站或網(wǎng)頁的內(nèi)容結(jié)構(gòu)以符合搜索引擎友好性的原則。但是也有網(wǎng)站的管理者以一些旁門左道的方法企圖蒙騙搜索引擎,以達(dá)到提高搜尋結(jié)果排名的目的。然而,這些伎倆或許短時(shí)間內(nèi)可以騙取搜索引擎的青睞,但是搜索引擎也是在不斷改進(jìn)以防范各種欺瞞的方法,一旦發(fā)現(xiàn)網(wǎng)站有欺騙搜索引擎的行為(SearchEngineSpam),那么該網(wǎng)站將被列為黑名單,任何的搜尋結(jié)果都不會(huì)出現(xiàn)該網(wǎng)站的連接。
13.3.1DOTNET開發(fā)平臺(tái)
Microsoft.NET(DOTNET)本身并不是一種產(chǎn)品或服務(wù),而是關(guān)于計(jì)算技術(shù)的一種架構(gòu),包括軟件開發(fā)方式以及用戶用各種計(jì)算設(shè)備開發(fā)的能力。.NET戰(zhàn)略的關(guān)鍵在于:它獨(dú)立于任何特定的語言或平臺(tái),使采用不同程序語言創(chuàng)建的應(yīng)用程序能相互通信,并可以將其分布到多種移動(dòng)設(shè)備和個(gè)人計(jì)算機(jī)上。13.3ASP.NET技術(shù)介紹
.NET框架構(gòu)成了應(yīng)用程序開發(fā)的基礎(chǔ)。MicrosoftVisualStudio提供的工具集用于開發(fā)XMLWeb服務(wù)與使用
.NET框架及通用面向?qū)ο蟮木幊棠P偷膽?yīng)用程序。
.NET框架有三個(gè)主要目標(biāo):
●簡(jiǎn)化Web服務(wù)與應(yīng)用程序的開發(fā)。
●提供一套工作于不同編程語言及計(jì)算設(shè)備的開發(fā)工具和庫。
●使MicrosoftWindows應(yīng)用程序更為可靠、安全和易用。
.NET框架開發(fā)環(huán)境包括五項(xiàng)關(guān)鍵技術(shù):
●用于開發(fā)XMLWeb服務(wù)的VisualStudio開發(fā)環(huán)境。
●支持程序運(yùn)行的公共語言運(yùn)行庫?!駜?nèi)容豐富的類庫。
●使用公共語言運(yùn)行庫和類庫的編程語言。
●用于開發(fā)Web應(yīng)用程序與Web服務(wù)的ASP.NET。
從圖13-4中我們可以簡(jiǎn)要地了解
.NET開發(fā)框架的幾個(gè)主要組成部分:首先是整個(gè)開發(fā)框架的基礎(chǔ),即通用語言運(yùn)行時(shí)它所提供的一組基礎(chǔ)類庫;在開發(fā)技術(shù)方面,.NET提供了數(shù)據(jù)庫訪問技術(shù)ADO.NET,以及網(wǎng)站開發(fā)技術(shù)ASP.NET和Windows編程技術(shù)WinForms;在開發(fā)語言方面,.NET提供了VisualBasic、VisualC++、C#
和Javascript等多種語言支持;而VisualStudio.NET則是全面支持
.NET的開發(fā)工具。
圖13-4DOTNET框架圖13.3.2DOTNET主要技術(shù)
為了學(xué)習(xí)方便,我們?cè)诒?3-1中將基于.NET和基于Java的網(wǎng)站開發(fā)技術(shù)進(jìn)行對(duì)比,幫助開發(fā)者在學(xué)習(xí)多種開發(fā)工具和平臺(tái)時(shí)提高效率。需要注意的是:這種對(duì)比并不是完全的一一對(duì)應(yīng),也不能簡(jiǎn)單地理解為語言之間的區(qū)別。
表13-1基于.NET和基于Java的網(wǎng)站開發(fā)技術(shù)對(duì)比
1.VisualStudio
VisualStudio是面向XMLWeb服務(wù)而構(gòu)建的開發(fā)環(huán)境。通過允許應(yīng)用程序在Internet上進(jìn)行交流與共享數(shù)據(jù),XMLWeb服務(wù)使得企業(yè)能將Internet轉(zhuǎn)換成一個(gè)真正的平臺(tái),用于集成和傳遞其核心產(chǎn)品和服務(wù)。VisualStudio與XMLWeb服務(wù)提供了一個(gè)簡(jiǎn)單、靈活并基于標(biāo)準(zhǔn)的模型,允許開發(fā)者從新代碼中匯編應(yīng)用程序,而無需考慮平臺(tái)、編程語言或?qū)ο竽P汀?/p>
2.通用語言運(yùn)行庫(CommonLanguageRuntime)
當(dāng)應(yīng)用程序執(zhí)行時(shí),通用語言運(yùn)行庫可以提供服務(wù)并對(duì)這些服務(wù)進(jìn)行管理。這些服務(wù)包括增強(qiáng)安全性,管理內(nèi)存、進(jìn)程、線程及語言集成。語言集成允許組件與XMLWeb服務(wù)完全集成,而不管使用的是何種語言。
多數(shù)Windows可執(zhí)行程序使用的是非托管代碼,這些代碼無法提供安全性或內(nèi)存管理方面的保證。在通用語言運(yùn)行庫下執(zhí)行的代碼則是托管代碼,因?yàn)樗蕾囉谕ㄓ谜Z言運(yùn)行庫完成(如內(nèi)存管理之類的)許多低級(jí)別服務(wù)。使用托管代碼能比非托管代碼提供更高級(jí)別的可靠性與安全性。為了跨越托管代碼與非托管代碼的鴻溝,使開發(fā)人員能夠利用巨量的Windows代碼,通用語言運(yùn)行庫使用了互操作性。例如,通用語言運(yùn)行庫可使托管代碼調(diào)用在非托管代碼中定義的函數(shù)。
除了作為運(yùn)行庫系統(tǒng)外,通用語言運(yùn)行庫的另外一個(gè)重要的功能是作為一臺(tái)虛擬機(jī)將托管代碼應(yīng)用程序編譯成可執(zhí)行程序。較之傳統(tǒng)的Windows應(yīng)用程序有所不同,它們是以一種被稱做中間語言(MSIL)的方式發(fā)布的。在程序安裝時(shí)或在程序初次運(yùn)行時(shí),通用語言在運(yùn)行時(shí)完成編譯,這一操作稱為“即時(shí)編譯”。
3.基礎(chǔ)類庫
Microsoft.NET框架類庫是一組廣泛的、面向?qū)ο蟮目芍赜妙惖募?,為?yīng)用程序提供各種高級(jí)的組件和服務(wù)。它將程序員從繁重的編程細(xì)節(jié)中解放出來而專注于程序的商業(yè)邏輯,為應(yīng)用程序提供各種開發(fā)支持——不管是傳統(tǒng)的命令行程序還是Windows圖形界面程序,或是面向因特網(wǎng)分布式計(jì)算平臺(tái)的ASP.NET或XMLWeb服務(wù)?;A(chǔ)類庫主要包括:
●基類提供了諸如輸入/輸出、字符串操作、安全性管理、網(wǎng)絡(luò)通信、線程管理、文本管理及其他函數(shù)等標(biāo)準(zhǔn)功能?!馜ata類支持穩(wěn)定的數(shù)據(jù)管理,并納入了SQL類以通過標(biāo)準(zhǔn)SQL接口處理穩(wěn)定的數(shù)據(jù)存儲(chǔ)。
●XML類使得XML數(shù)據(jù)處理、搜索與轉(zhuǎn)換成為可能。
●XMLWeb服務(wù)類支持輕量級(jí)的分布式組件開發(fā),這些組件即使在遇到防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換軟件時(shí)也能正常運(yùn)行。
●Web窗體包含的類使用戶可以迅速開發(fā)Web圖形用戶界面的應(yīng)用程序。
●Windows窗體支持一組類,通過這些類可以開發(fā)基于Windows的GUI應(yīng)用程序,促進(jìn)拖放式GUI開發(fā),此外還為.NET框架的所有編程語言提供一個(gè)公共的、一致的開發(fā)界面。
4.ASP.NET
ASP.NET并不僅是ActiveServerPages的一個(gè)新版本,事實(shí)上它是一個(gè)一體化的Web開發(fā)平臺(tái),能向創(chuàng)建企業(yè)級(jí)Web程序的開發(fā)者提供所需的服務(wù)。它繼承了ASP的精華,而且可利用CLR提供豐富的服務(wù)和特性,并增添了許多新特性。
ASP.NET與ASP有良好的兼容性,同時(shí)也提供了一個(gè)新的編程模型和基礎(chǔ)結(jié)構(gòu),使開發(fā)功能更強(qiáng)大的新型應(yīng)用程序成為可能,并通過添加ASP.NET功能可對(duì)已有的ASP程序進(jìn)行擴(kuò)展。
ASP.NET的基礎(chǔ)是Web窗體。Web窗體是一類用戶界面元素,可以構(gòu)建Web應(yīng)用程序的外觀,Web窗體與Windows窗體類似,都為置于其上的控件提供屬性、方法與事件。用戶界面元素可通過請(qǐng)求所需的適當(dāng)標(biāo)記語言(HTML)來呈現(xiàn)自己。若使用VisualStudio.NET進(jìn)行開發(fā),則可以采用拖放式界面來創(chuàng)建Web應(yīng)用程序用戶界面。
5.ADO.NET
幾乎所有的應(yīng)用程序都需要訪問從簡(jiǎn)單的文本文件到大型的關(guān)系型數(shù)據(jù)庫等各種不同類型的數(shù)據(jù)。在Microsoft.NET中訪問數(shù)據(jù)庫的技術(shù)是ADO.NET。ADO.NET將成為構(gòu)建數(shù)據(jù)感知.NET應(yīng)用程序的基礎(chǔ)。
不同于ADO的是,ADO.NET更具有通用性,不是專門針對(duì)數(shù)據(jù)庫而進(jìn)行的設(shè)計(jì)。首先,ADO.NET提供了對(duì)XML的強(qiáng)大支持,這也是ADO.NET的一個(gè)主要設(shè)計(jì)目標(biāo)。在ADO.NET中通過XMLReader、XMLWriter、XMLNavigator和XMLDocument等可以方便地創(chuàng)建和使用XML數(shù)據(jù),并且支持W3C的XSLT、DTD、XDR等標(biāo)準(zhǔn)。ADO.NET對(duì)XML的支持也為XML成為Microsoft.NET中數(shù)據(jù)交換的統(tǒng)一格式提供了基礎(chǔ)。其次,ADO.NET引入了DataSet的概念,這是一個(gè)駐于內(nèi)存的數(shù)據(jù)緩沖區(qū),它提供了數(shù)據(jù)的關(guān)系型視圖。不管數(shù)據(jù)來源于一個(gè)關(guān)系型的數(shù)據(jù)庫,還是來源于一個(gè)XML文檔,我們都可以用一個(gè)統(tǒng)一的編程模型來創(chuàng)建和使用它。它替代了原有的Recordset的對(duì)象,提高了程序的交互性和可擴(kuò)展性,尤其適合于分布式的應(yīng)用場(chǎng)合。另外,ADO.NET中還引入了一些新的對(duì)象,例如DataReader可以用來高效率地讀取數(shù)據(jù),產(chǎn)生一個(gè)只讀的記錄集等。簡(jiǎn)而言之,ADO.NET通過一系列新的對(duì)象和編程模型,并與XML緊密結(jié)合,使得Microsoft.NET中的數(shù)據(jù)操作更加方便和高效。13.3.3DOTNET編程語言
Microsoft引入了一種新的編程語言C#,并對(duì)其他多種語言作了重新設(shè)計(jì),以便利用通用語言運(yùn)行庫與類庫。這幾種語言包括:
●
MicrosoftVisualC#.NET;
●
MicrosoftVisualBasic.NET;
●
MicrosoftVisualC++.NET。
1.
MicrosoftVisualC#.NET
C#
是一種現(xiàn)代的面向?qū)ο蟮木幊陶Z言,可使程序員快速開發(fā)各類應(yīng)用程序,并提供能夠利用計(jì)算與通信技術(shù)的工具和服務(wù)。
由于其革命性的面向?qū)ο笤O(shè)計(jì),C#
是構(gòu)建上至高級(jí)別商務(wù)對(duì)象,下至系統(tǒng)級(jí)應(yīng)用程序的各種組件的絕佳選擇。使用直觀的C#
語言構(gòu)造,可以把這些組件轉(zhuǎn)換為XMLWeb服務(wù),使得通過Internet從任何操作系統(tǒng)上運(yùn)行的任何語言來調(diào)用他們。更重要的是,C#
將使C++
程序員更快的開發(fā),同時(shí)也不會(huì)犧牲C++
和C具有的效率和能力。由于這種繼承性,熟悉C++
和C語言的開發(fā)者將會(huì)迅速掌握C#。
2.MicrosoftVisualBasic.NET
在新的.NET環(huán)境中,VisualBasic成為一流的編程語言。VisualBasic.NET擁有對(duì).NET框架的完全訪問權(quán),并提供諸如多線程、事件日志和性能監(jiān)視器等語言特性。而這些特性在VB6.0中要么無法實(shí)現(xiàn),要么使用起來不方便?,F(xiàn)在VisualBasic程序員可以創(chuàng)建多線程隊(duì)列進(jìn)程服務(wù),開發(fā)高級(jí)Web應(yīng)用程序技術(shù),并對(duì)圖形實(shí)現(xiàn)完全訪問。
VisualBasic.NET是VisualBasic開發(fā)系統(tǒng)的新版本,重新設(shè)計(jì)將使下一代XMLWeb的服務(wù)開發(fā)不再復(fù)雜,并保留了其快速開發(fā)Windows應(yīng)用程序的特性。VisualBasic.NET并不是簡(jiǎn)單地向VB6.0中添加了一些新特性,而是完全在
.NET框架上構(gòu)建VisualBasic.NET。這使得VisualBasic開發(fā)者可以利用VisualBasic.NET中的增強(qiáng)功能創(chuàng)建企業(yè)關(guān)鍵分布式n層系統(tǒng)。在巨大的消費(fèi)需求推動(dòng)下,VisualBasic.NET帶來了一整套的新功能,包括完全面向?qū)ο笤O(shè)計(jì)能力、自由線程及對(duì).NET框架的直接訪問。此外,VisualBasic語言還是經(jīng)過改進(jìn)的,既刪除了舊式的關(guān)鍵字,又提高了類型安全性,并公開了高級(jí)開發(fā)者需要的低級(jí)別構(gòu)造。該語言的一些語法已經(jīng)做了一些改動(dòng),并添加了一些新的內(nèi)容。
VisualBasic.NET現(xiàn)在已與VisualStudio.NET的其他語言完全集成??梢杂貌煌木幊陶Z言開發(fā)應(yīng)用程序組件,也可以從其他語言編寫的類中繼承,還可以使用統(tǒng)一的調(diào)試器調(diào)試多種應(yīng)用程序,并且不必考慮該程序究竟是運(yùn)行在本地還是運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上。
3.MicrosoftVisualC++.NET
VisualC++.NET是一個(gè)全面的工具集,用于使用C++
語言創(chuàng)建基于Windows和基于.NET的應(yīng)用程序、動(dòng)態(tài)Web程序及XMLWeb服務(wù)。這一強(qiáng)大的開發(fā)環(huán)境包括
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年消防安全管理與維護(hù)協(xié)議3篇
- 2024-2030年中國嬰兒紙尿褲行業(yè)市場(chǎng)競(jìng)爭(zhēng)趨勢(shì)及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2024-2030年中國女鞋市場(chǎng)需求狀況及發(fā)展策略研究報(bào)告
- 2024-2030年中國商業(yè)街區(qū)建設(shè)行業(yè)管理模式規(guī)劃分析報(bào)告
- 2024年度施工現(xiàn)場(chǎng)治安消防應(yīng)急預(yù)案編制與演練合同2篇
- 2024年物流協(xié)同:貨物運(yùn)輸承包協(xié)議
- 2024年度建筑工程施工預(yù)備協(xié)議版
- 2024上訴離婚協(xié)議書樣本:上訴離婚協(xié)議與子女撫養(yǎng)責(zé)任落實(shí)3篇
- 2024商場(chǎng)保安員培訓(xùn)與考核管理服務(wù)合同2篇
- 2024全新智能安防監(jiān)控系統(tǒng)合同簽訂與執(zhí)行細(xì)則2篇
- 汽車車載網(wǎng)絡(luò)及總線技術(shù)習(xí)題匯編(學(xué)生版)
- 醫(yī)療器械軟件設(shè)計(jì)和開發(fā)-全套開發(fā)資料模板范本匯編
- 預(yù)防混料管理辦法
- 2023-2024學(xué)年北京市海淀區(qū)數(shù)學(xué)三年級(jí)第一學(xué)期期末經(jīng)典試題含答案
- HACCP標(biāo)準(zhǔn)體系內(nèi)審檢查表完整版
- 干眼癥的防治課件
- 研發(fā)項(xiàng)目獎(jiǎng)勵(lì)申請(qǐng)表
- 金融工程-廈門大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 西門子plc實(shí)訓(xùn)總結(jié)2000字(4篇)
- 離線論文 關(guān)于科學(xué)思維方法在實(shí)際生活和工作中的應(yīng)用、意義
- 職業(yè)健康保護(hù)設(shè)施臺(tái)帳
評(píng)論
0/150
提交評(píng)論