如果是HTTP請(qǐng)求,那么用apache的HttpClient就可以了。
平陸網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
對(duì)于返回的數(shù)據(jù),如果是html可以用jsoup來(lái)進(jìn)行解析,如果是xml可以用xpp,如果是json可以用JSONOBJECT,如果其他格式就自己解析。
$.cookie('usrname',usrname,{expires:7,path:'/'});
expires :設(shè)置cookie存在周期
path : 設(shè)置cookie作用域,'/'也就是全局了
與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線(xiàn)程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷(xiāo)毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷(xiāo)毀,所以效率上低于servlet。
公共網(wǎng)關(guān)接口(Common Gateway Interface,CGI)是Web 服務(wù)器運(yùn)行時(shí)外部程序的規(guī)范,按CGI 編寫(xiě)的程序可以擴(kuò)展服務(wù)器功能。
CGI 應(yīng)用程序能與瀏覽器進(jìn)行交互,還可通過(guò)數(shù)據(jù)API與數(shù)據(jù)庫(kù)服務(wù)器等外部數(shù)據(jù)源進(jìn)行通信,從數(shù)據(jù)庫(kù)服務(wù)器中獲取數(shù)據(jù)。格式化為HTML文檔后,發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫(kù)中。
通過(guò)CGI?協(xié)議,再結(jié)合已搭建好的web應(yīng)用程序,就可以讓web server也能"處理"動(dòng)態(tài)請(qǐng)求(或者說(shuō),當(dāng)用戶(hù)訪(fǎng)問(wèn)某個(gè)特定資源時(shí),可以觸發(fā)執(zhí)行某個(gè)web應(yīng)用程序來(lái)實(shí)現(xiàn)特定功能)。
擴(kuò)展資料
CGI規(guī)范定義了Web服務(wù)器如何向擴(kuò)展應(yīng)用程序發(fā)送消息,在收到擴(kuò)展應(yīng)用程序的信息后又如何進(jìn)行處理等內(nèi)容。
對(duì)于許多靜態(tài)的HTML網(wǎng)頁(yè)無(wú)法實(shí)現(xiàn)的功能,通過(guò) CGI可以實(shí)現(xiàn),比如表單的處理、對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)、搜索引擎、基于Web的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)等等。
當(dāng)CGI進(jìn)程接收到web server的請(qǐng)求后,調(diào)用search程序并執(zhí)行,同時(shí)還會(huì)傳遞參數(shù)給search程序。search執(zhí)行結(jié)束后,CGI進(jìn)程/線(xiàn)程將處理結(jié)果返回給web server,web server再返回給瀏覽器。
參考資料來(lái)源:百度百科-CGI
目前,最常用的三種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。
簡(jiǎn) 介:
ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,利用它可以產(chǎn)生和執(zhí)行動(dòng)態(tài)的、互動(dòng)的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VBScript(Java script)作為自己的開(kāi)發(fā)語(yǔ)言。
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)產(chǎn)生頁(yè)面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢(qián),你可以從PHP官方站點(diǎn)(http: //)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
JSP是Sun公司推出的新一代網(wǎng)站開(kāi)發(fā)語(yǔ)言,Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和Java Applet之外,又有新的碩果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。
三者都提供在 HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。在ASP 、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的 HTML頁(yè)面只依賴(lài)于Web服務(wù)器,而ASP 、PHP、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP 、PHP、JSP三者都是面向Web服務(wù)器的技術(shù),客戶(hù)端瀏覽器不需要任何附加的軟件支持。
技術(shù)特點(diǎn)
ASP:
1. 使用VBScript 、 JScript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。
2. 無(wú)須compile編譯,容易編寫(xiě),可在服務(wù)器端直接執(zhí)行。
3. 使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。
4. 與瀏覽器無(wú)關(guān)(Browser Independence), 客戶(hù)端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)容。Active ServerPages 所使用的腳本語(yǔ)言(VBScript 、 Jscript)均在WEB服務(wù)器端執(zhí)行,客戶(hù)端的瀏覽器不需要能夠執(zhí)行這些腳本語(yǔ)言。
5.Active Server Pages能與任何ActiveX scripting語(yǔ)言兼容。除了可使用VB Script或JScript語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其它腳本語(yǔ)言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對(duì)象。
6. 可使用服務(wù)器端的腳本來(lái)產(chǎn)生客戶(hù)端的腳本。
7. ActiveX Server Components(ActiveX 服務(wù)器組件 )具有無(wú)限可擴(kuò)充性??梢允褂肰isual Basic 、Java 、Visual C++ 、COBOL等程序設(shè)計(jì)語(yǔ)言來(lái)編寫(xiě)你所需要的ActiveX Server Component 。
PHP:
1?數(shù)據(jù)庫(kù)連接
PHP可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的群組合。你還可以自己編寫(xiě)外圍的函數(shù)去間接存取數(shù)據(jù)庫(kù)。通過(guò)這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松地修改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫(kù)。但PHP提供的數(shù)據(jù)庫(kù)接口支持彼此不統(tǒng)一,比如對(duì)Oracle, MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個(gè)弱點(diǎn)。
JSP:
1?將內(nèi)容的產(chǎn)生和顯示進(jìn)行分離
使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)產(chǎn)生頁(yè)面上的動(dòng)態(tài)內(nèi)容。產(chǎn)生內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans群組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端執(zhí)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其它人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的產(chǎn)生。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí),產(chǎn)生所請(qǐng)求的內(nèi)容(例如,通過(guò)存取JavaBeans群組件,使用JDBC技術(shù)存取數(shù)據(jù)庫(kù)),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
2?強(qiáng)調(diào)可重用的群組件
絕大多數(shù)JSP頁(yè)面依賴(lài)于可重用且跨平臺(tái)的組件(如:JavaBeans或者Enterprise JavaBeans)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者用戶(hù)團(tuán)體所使用?;诮M件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種群組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。
3?采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)
Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的程序設(shè)計(jì)人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容產(chǎn)生所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠存取和實(shí)例化 JavaBeans組件,設(shè)定或者檢索群組件屬性,下載Applet,以及執(zhí)行用其它方法更難于編碼和耗時(shí)的功能。
通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其它人員可以為常用功能建立自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。
JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2EE的一個(gè)成員,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。
由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java程序設(shè)計(jì)語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。
作為Java平臺(tái)的一部分,JSP擁有Java程序設(shè)計(jì)語(yǔ)言“一次編寫(xiě),各處執(zhí)行”的特點(diǎn)。隨著越來(lái)越多的供貨商將JSP支持加入到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,修改工具或服務(wù)器并不影響目前的應(yīng)用。
應(yīng)用范圍
ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng),只能執(zhí)行于微軟的服務(wù)器產(chǎn)品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的組件來(lái)支持ASP,但是ASP本身的功能有限,必須通過(guò)ASP+COM的群組合來(lái)擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來(lái)非常困難。
PHP3可在Windows,Unix,Linux的Web服務(wù)器上正常執(zhí)行,還支持IIS,Apache等一般的Web服務(wù)器,用戶(hù)更換平臺(tái)時(shí),無(wú)需變換PHP3代碼,可即拿即用。
JSP同PHP3類(lèi)似,幾乎可以執(zhí)行于所有平臺(tái)。如Win NT,Linux,Unix。在NT下IIS通過(guò)一個(gè)外加服務(wù)器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的執(zhí)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。
性能比較
有人做過(guò)試驗(yàn),對(duì)這三種語(yǔ)言分別做回圈性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。
在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)。
數(shù)據(jù)庫(kù)測(cè)試中,三者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。
前景分析
目前在國(guó)內(nèi)PHP與ASP應(yīng)用最為廣泛。而JSP由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。但在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類(lèi)的網(wǎng)站,多采用JSP。
采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國(guó)人(Chinaren)等,但由于PHP本身存在的一些缺點(diǎn),使得它不適合應(yīng)用于大型電子商務(wù)站點(diǎn),而更適合一些小型的商業(yè)站點(diǎn)。首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對(duì)于大負(fù)荷站點(diǎn),解決方法只有一個(gè):分布計(jì)算。數(shù)據(jù)庫(kù)、應(yīng)用邏輯層、表示邏輯層彼此分開(kāi),而且同層也可以根據(jù)流量分開(kāi),群組成二維數(shù)組。而PHP則缺乏這種支持。還有上面提到過(guò)的一點(diǎn),PHP提供的數(shù)據(jù)庫(kù)接口支持不統(tǒng)一,這就使得它不適合運(yùn)用在電子商務(wù)中。
ASP和JSP則沒(méi)有以上缺陷,ASP可以通過(guò)Microsoft Windowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過(guò)DCOM和Transcation Server獲得結(jié)構(gòu)支持;JSP可以通過(guò)SUN Java的Java Class和EJB獲得規(guī)模支持,通過(guò)EJB/CORBA以及眾多廠(chǎng)商的Application Server獲得結(jié)構(gòu)支持。
三者中,JSP應(yīng)該是未來(lái)發(fā)展的趨勢(shì)。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。它們都是通過(guò)CGI來(lái)提供支持的。但去年10月后它推出了Enfinity,一個(gè)采用JSP/Servlet的電子商務(wù)Application Server,而且聲言不再開(kāi)發(fā)傳統(tǒng)軟件。
總之,ASP,PHP,JSP三者都有相當(dāng)數(shù)量的支持者,由此也可以看出三者各有所長(zhǎng)。正在學(xué)習(xí)或使用動(dòng)態(tài)頁(yè)面的朋友可根據(jù)三者的特點(diǎn)選擇一種適合自己的語(yǔ)言。
HTML (Hypertext Markup Language、超文本標(biāo)記語(yǔ)言)是Web誕生與發(fā)展的要素之一,它旨在使得Web頁(yè)面能顯示在任何HTML使能的瀏覽器中,而與連網(wǎng)的機(jī)器平臺(tái)無(wú)關(guān)。HTML并不是一個(gè)程序設(shè)計(jì)語(yǔ)言,而是一個(gè)標(biāo)記語(yǔ)言,它所提供的標(biāo)記是由SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)的通用標(biāo)記語(yǔ)言)定義的。SGML是ISO(國(guó)際標(biāo)準(zhǔn)化組織)在1986年推出的一個(gè)用來(lái)創(chuàng)建標(biāo)記語(yǔ)言的語(yǔ)言標(biāo)準(zhǔn),它源自IBM早在1969年開(kāi)發(fā)的GML(Generalized Markup Language),該語(yǔ)言的名稱(chēng)也正好包含了三位創(chuàng)始人姓字的第一個(gè)字母,他們分別是Charles F. Goldfarb, Edward Mosher,Raymond Lorie。SGML是一種元語(yǔ)言,即用來(lái)定義標(biāo)記語(yǔ)言的語(yǔ)言,它提供了一種將數(shù)據(jù)內(nèi)容與顯示分離開(kāi)來(lái)的數(shù)據(jù)表示方法,使得數(shù)據(jù)獨(dú)立于機(jī)器平臺(tái)和處理程序。這些特性促使Tim Berners-Lee 采用SGML來(lái)創(chuàng)建稱(chēng)之為HTML的標(biāo)記語(yǔ)言。1993年形成HTML 1.0,以后不斷完善,HTML 4.0發(fā)表于1997年。特別需要指出的是HTML提供的鏈接機(jī)制是Web的本質(zhì)特性之一。但是,HTML更多的關(guān)注Web瀏覽器如何在頁(yè)面上安排文本、圖象和按鈕等,過(guò)多地考慮外觀使其缺乏對(duì)結(jié)構(gòu)化數(shù)據(jù)的表示能力。另外,HTML中有限的標(biāo)記不能滿(mǎn)足很多Web應(yīng)用的需要,如基于Web的大型出版系統(tǒng)和新一代的電子商務(wù),而為各種應(yīng)用需要不斷地往HTML中增加標(biāo)記顯然不是最終的解決方法,究其原因是HTML缺乏可擴(kuò)展性。解決方案應(yīng)該是簡(jiǎn)化SGML使之能應(yīng)用到Web上。為此,從1996年開(kāi)始,W3C(World Wide Web Consortium) 的一個(gè)工作組在Jon Bosak的領(lǐng)導(dǎo)下致力于設(shè)計(jì)一個(gè)超越HTML能力范圍的新語(yǔ)言,這個(gè)語(yǔ)言后來(lái)被命名為XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)。1998年2月,W3C發(fā)布了XML 1.0作為其推薦標(biāo)準(zhǔn)?,F(xiàn)在,W3C已經(jīng)用XML設(shè)計(jì)出一個(gè)與HTML4.01功能等價(jià)的語(yǔ)言,稱(chēng)為XHTML1.0 (Extensible HyperText Markup Language)。