jsp內(nèi)置對(duì)象是什么及常用方法 在運(yùn)行里輸入的config是什么意思?
在運(yùn)行里輸入的config是什么意思?web服務(wù)器在初始化時(shí)使用一個(gè)ServletConfig(即config)對(duì)象向JSP頁(yè)面?zhèn)鬟f信息,此配置信息包括初始化參數(shù)(在當(dāng)前Web應(yīng)用的應(yīng)用部署描述文件w
在運(yùn)行里輸入的config是什么意思?
web服務(wù)器在初始化時(shí)使用一個(gè)ServletConfig(即config)對(duì)象向JSP頁(yè)面?zhèn)鬟f信息,此配置信息包括初始化參數(shù)(在當(dāng)前Web應(yīng)用的應(yīng)用部署描述文件web.xml中定義)以及表示Servlet或JSP頁(yè)面所屬Web應(yīng)用的ServletContext對(duì)象。詳情gtgt配置-內(nèi)置對(duì)象-文件操作
JSP小白問(wèn)題21:HttpServletRequest與Request的區(qū)別?
在jsp中request是一個(gè)內(nèi)置對(duì)象,其實(shí)也就是個(gè)HttpServletRequest,同時(shí)內(nèi)置對(duì)象還有response,session等等
jsp聲明特征?
JSP是服務(wù)器端的一種基于java語(yǔ)言的網(wǎng)頁(yè)技術(shù),它是由一些JSP標(biāo)記,java程序段以及HTML文件組成的結(jié)合體,以java語(yǔ)言作為其內(nèi)置的腳本語(yǔ)言. 實(shí)質(zhì)上是通過(guò)調(diào)用JSP引擎來(lái)生成java文件,再將這個(gè)java文件編譯成類文件,并執(zhí)行這個(gè)類文件以生成頁(yè).
特點(diǎn):
(1)內(nèi)容的生成和顯示分離
(2)使用可重用的組件
(3)采用自定義標(biāo)識(shí)簡(jiǎn)化頁(yè)面的開(kāi)發(fā)
(4)JSP具有java技術(shù)所帶來(lái)的所有的優(yōu)點(diǎn)
(5)JSP容易整合到多種應(yīng)用體系結(jié)構(gòu)中
ASP、ASP .NET、PHP、JSP四種語(yǔ)言的特點(diǎn)及區(qū)別是什么?
ASP,全稱為Active Server Pages
ASP是微軟(Microsoft)所開(kāi)發(fā)的一種后臺(tái)腳本語(yǔ)言,它的語(yǔ)法和Visual BASIC類似,可以像SSI(Server Side Include)那樣把后臺(tái)腳本代碼內(nèi)嵌到HTML頁(yè)面中。雖然ASP簡(jiǎn)單易用,但是它自身存在著許多缺陷,最重要的就是安全性問(wèn)題。目前在微軟的 .net 戰(zhàn)略中新推出的 借鑒了Java技術(shù)的優(yōu)點(diǎn),使用C Sharp (C#) 語(yǔ)言作為的推薦語(yǔ)言,同時(shí)改進(jìn)了以前ASP的安全性差等缺點(diǎn)。但是,使用仍有一定的局限性,因?yàn)閺哪撤N角度來(lái)說(shuō)它們只能在微軟的 Windows NT/2000/XP IIS的服務(wù)器平臺(tái)上良好運(yùn)行(雖然像ChilliSoft提供了在UNIX/Linux上運(yùn)行ASP的解決方案,但是目前ASP在UNIX/Linux上的應(yīng)用可以說(shuō)幾乎為0)。所以平臺(tái)的局限性和ASP自身的安全性限制了ASP的廣泛應(yīng)用。
ASP在執(zhí)行的時(shí)候,是由IIS調(diào)用程序引擎,解釋執(zhí)行嵌在HTML中的ASP代碼,最終將結(jié)果和原來(lái)的HTML一同送往客戶端。
PHP,全稱為PHP: Hypertext Preprocessor
PHP 的全名非常有趣,它是一個(gè)巢狀的縮寫名稱——“PHP: Hypertext Preprocessor”,打開(kāi)縮寫還是縮寫。PHP是一種HTML 內(nèi)嵌式的語(yǔ)言 (就像上面講的ASP那樣)。而 PHP 獨(dú)特的語(yǔ)法混合了C,Java,Perl以及 PHP 式的新語(yǔ)法。它可以比 CGI 或者 Perl 更快速地執(zhí)行頁(yè)。
PHP的源代碼完全公開(kāi),在 Open Source 意識(shí)抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數(shù)庫(kù)加入,以及不停地更新,使得 PHP 無(wú)論在 UNIX 或是 Win32 的平臺(tái)上都可以有更多新的功能。它提供豐富的函數(shù),使得在程式設(shè)計(jì)方面有著更好的資源。目前PHP的最新版本為4.1.1 ,它可以在Win32以及UNIX/Linux等幾乎所有的平臺(tái)上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比較傳統(tǒng) CGI 或者 ASP 等技術(shù)有了更好的表現(xiàn)。
平臺(tái)無(wú)關(guān)性是PHP的最大優(yōu)點(diǎn),但是在優(yōu)點(diǎn)的背后,還是有一些小小的缺點(diǎn)的。如果在PHP中不使用ODBC,而用其自帶的數(shù)據(jù)庫(kù)函數(shù)(這樣的效率要比使用ODBC高)來(lái)連接數(shù)據(jù)庫(kù)的話, 使用不同的數(shù)據(jù)庫(kù),PHP的函數(shù)名不能統(tǒng)一。這樣,使得程序的移植變得有些麻煩。不過(guò),作為目前應(yīng)用最為廣泛的一種后臺(tái)語(yǔ)言,PHP的優(yōu)點(diǎn)還是異常明顯的。
JSP,全稱為Java Server Pages / Servlet
JSP和Servlet要放在一起講,是因?yàn)樗鼈兌际荢un公司的J2EE(Java 2 platform Enterprise Edition)應(yīng)用體系中的一部分。
Servlet的形式和前面講的CGI差不多,它是HTML代碼和后臺(tái)程序分開(kāi)的。它們的啟動(dòng)原理也差不多,都是服務(wù)器接到客戶端的請(qǐng)求后,進(jìn)行應(yīng)答。不同的是,CGI對(duì)每個(gè)客戶請(qǐng)求都打開(kāi)一個(gè)進(jìn)程(Process),而Servlet卻在響應(yīng)第一個(gè)請(qǐng)求的時(shí)候被載入,一旦Servlet被載入,便處于已執(zhí)行狀態(tài)。對(duì)于以后其他用戶的請(qǐng)求,它并不打開(kāi)進(jìn)程,而是打開(kāi)一個(gè)線程(Thread),將結(jié)果發(fā)送給客戶。由于線程與線程之間可以通過(guò)生成自己的父線程(Parent Thread)來(lái)實(shí)現(xiàn)資源共享,這樣就減輕了服務(wù)器的負(fù)擔(dān),所以,Java Servlet可以用來(lái)做大規(guī)模的應(yīng)用服務(wù)。
雖然在形式上JSP和ASP或PHP看上去很相似——都可以被內(nèi)嵌在HTML代碼中。但是,它的執(zhí)行和ASP或PHP完全不同。在JSP被執(zhí)行的時(shí)候,JSP文件被JSP解釋器(JSP Parser)轉(zhuǎn)換成Servlet代碼,然后Servlet代碼被Java編譯器編譯成 .class 字節(jié)文件,這樣就由生成的Servlet來(lái)對(duì)客戶端應(yīng)答。所以,JSP可以看做是Servlet的腳本語(yǔ)言(Script Language)版。
由于JSP/Servlet都是基于Java的,所以它們也有Java語(yǔ)言的最大優(yōu)點(diǎn)——平臺(tái)無(wú)關(guān)性,也就是所謂的“一次編寫,隨處運(yùn)行(WORA – Write Once, Run Anywhere)”。除了這個(gè)優(yōu)點(diǎn),JSP/Servlet的效率以及安全性也是相當(dāng)驚人的。因此,JSP/Servlet雖然在國(guó)內(nèi)目前的應(yīng)用并不廣泛,但是其前途不可限量。
在調(diào)試JSP代碼時(shí),如果程序出錯(cuò),JSP服務(wù)器會(huì)返回出錯(cuò)信息,并在瀏覽器中顯示。這時(shí),由于JSP是先被轉(zhuǎn)換成Servlet后再運(yùn)行的,所以,瀏覽器中所顯示的代碼出錯(cuò)的行數(shù)并不是JSP源代碼的行數(shù),而是指轉(zhuǎn)換后的Servlet程序代碼的行數(shù)。這給調(diào)試代碼帶來(lái)一定困難。所以,在排除錯(cuò)誤時(shí),可以采取分段排除的方法(在可能出錯(cuò)的代碼前后輸出一些字符串,用字符串是否被輸出來(lái)確定代碼段從哪里開(kāi)始出錯(cuò)),逐步縮小出錯(cuò)代碼段的范圍,最終確定錯(cuò)誤代碼的位置。
JSP和ASP相比較:
運(yùn)行速度、運(yùn)行開(kāi)銷、運(yùn)行平臺(tái)、擴(kuò)展性、安全性、函數(shù)支持、廠商支持、對(duì)XML的支持等等,ASP都不是JSP的對(duì)手。COM組件的復(fù)雜性實(shí)編程實(shí)現(xiàn)有一定的難度。而JAVABeans和JAVA的結(jié)合卻是天衣無(wú)縫的。
JSP和相比較:
1.相對(duì)C#,JSP的腳本語(yǔ)言JAVA也是面向?qū)ο蟮摹⒎植际降?、解釋的語(yǔ)言。
2.與C#相似JAVA同樣去掉了難以理解的指針等概念,取而代之的是類和對(duì)象。
3. JSP有一項(xiàng)全新的技術(shù)――Servlet(服務(wù)器端程序)很好的節(jié)約了服務(wù)器資源。
4.JAVABeans是針對(duì)的Server Control的技術(shù)。只要會(huì)JAVA, JavaBeans就很容易寫出。
5.再有就是JAVA的JDBC數(shù)據(jù)庫(kù)連接技術(shù)。
6.JSP對(duì)XML同樣有十分廣泛的支持。
1) 面向?qū)ο笮?
ASP 將C#作為一種面向?qū)ο笳Z(yǔ)言,在很多方面來(lái)看,C#將成為微軟的與Java相似的語(yǔ)言。
C#另一個(gè)有趣的地方是所有對(duì)象都自動(dòng)變成為COM對(duì)象。如果C#能取得很大的市場(chǎng)份額,那么它將給ASP 帶來(lái)類似于Java的功能,并且具備更快的性能,因?yàn)樗梢院蚖indows環(huán)境緊密集成。
C# 是ASP 開(kāi)發(fā)中一個(gè)最重要的功能,微軟會(huì)將C#發(fā)展成為Java的強(qiáng)勁對(duì)手。這也是他們.Net框架的一個(gè)重要組成部分。我認(rèn)為C#是微軟在編程市場(chǎng)上擊敗對(duì)手的主要工具。我期待著微軟能在這個(gè)產(chǎn)品后面傾注全力,這樣,C#可以成為許多程序員的又一種選擇。C#產(chǎn)生的結(jié)果是將進(jìn)一步加固微軟和Sun產(chǎn)品的戰(zhàn)線。這對(duì)用戶是有利的,他們可以選擇兩者之一來(lái)開(kāi)發(fā)新的應(yīng)用。
2) 數(shù)據(jù)庫(kù)連接:
ASP另一個(gè)亮點(diǎn)是它使用ADO對(duì)象,ODBC, OLE-DB和事務(wù)處理管理器。因此ASP Web數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)特別簡(jiǎn)單。ASP 發(fā)展了更多的功能,因?yàn)橛辛薃DO !ADO 帶來(lái)了更強(qiáng)大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,當(dāng)新版本ASP /ADO 出現(xiàn)后這樣的差別會(huì)更明顯。我個(gè)人希望SUN應(yīng)盡快能花大力氣來(lái)追趕ASP /ADO 的組合。
3) 大型站點(diǎn)應(yīng)用:
ASP 將對(duì)大型站點(diǎn)(web farms)有更好的支持。事實(shí)上,微軟在這方面付出了巨大的努力。 ASP 可以讓你考慮到多服務(wù)器(multiple servers)的場(chǎng)合,當(dāng)你需要更強(qiáng)大的功能時(shí),僅僅只需要增加一臺(tái)服務(wù)器。整個(gè).Net框架已經(jīng)充分地提供了這個(gè)方法。ASP 提供了外部會(huì)話狀態(tài)(external session state)來(lái)提供內(nèi)置式web farm的支持。另外,由于請(qǐng)求的各組件相互間經(jīng)過(guò)了充分的優(yōu)化,所以速度很快。
于是ASP 現(xiàn)在可以在大型項(xiàng)目方面與JSP一樣具有等同的能力。 而ASP 還有價(jià)格方面的優(yōu)勢(shì),因?yàn)樗械慕M件將是服務(wù)器操作系統(tǒng)的一部分。對(duì)于JSP,你需要購(gòu)買昂貴的應(yīng)用服務(wù)器群來(lái)達(dá)到同樣的目的。
4) ASP 還提供更多的其它方面的新特性,例如:
*內(nèi)置的對(duì)象緩存和頁(yè)面結(jié)果緩存。
*內(nèi)置的XML支持,可用于XML數(shù)據(jù)集的簡(jiǎn)單處理。
*服務(wù)器控制提供了更充分的交互式控制。
ASP 確實(shí)對(duì)ASP進(jìn)行了較大的發(fā)展。