JSP和JS的區別(新手必讀)

該篇入門轉自《JSP高級編程》一書。

希望大家在看完本入門之後能分清楚jsp(Java Server Pages)和js(java script)的區別。

希望這兩篇文檔對大家能有所幫助!

..............................................................................................................
Java技術
J a v a是一種簡單易用、完全面向對象、具有平臺無關性且安全可靠的主要面向I n t e r n e t的開
發工具。自從1 9 9 5年正式問世以來,J a v a的快速發展已經讓整個We b世界發生了翻天覆地的變化。
隨着Java Servlet的推出,J a v a在電子商務方面開始嶄露頭角,最新的Java Server Page技術的推
出,更是讓J a v a成爲基於We b的應用程序的首選開發工具。
要學習J a v a技術中的Java Server Page,J a v a基礎是必不可少的,本書將在第2章爲沒有J a v a
基礎的讀者簡單講解J a v a的基礎語法和Java Beans等,它們是在學習J S P之前必須掌握的J a v a知識。
這裏,先回顧一下J a v a的發展歷程,然後講解幾個後面將要用到的重要概念。
1.1.2 JavaBeans
什麼是J a v a B e a n s?J a v a B e a n s就是J a v a的可重用組件技術。A S P通過C O M來擴充複雜的功能,
如文件上載、發送e m a i l以及將業務處理或複雜計算分離出來成爲獨立可重複利用的模塊。J S P通
過J a v a B e a n實現了同樣的功能擴充。JSP 對於在Web 應用中集成JavaBean 組件提供了完善的支
持。這種支持不僅能縮短開發時間(可以直接利用經測試和可信任的已有組件,避免了重複開
發),也爲JSP 應用帶來了更多的可伸縮性。JavaBean 組件可以用來執行復雜的計算任務,或負
2計計第一部分JSP 入門
下載
責與數據庫的交互以及數據提取等。
在實際的J S P開發過程中,讀者將會發現,和傳統的A S P或P H P頁面相比,J S P頁面將會是非
常簡潔的,由於J a v a B e a n s開發起來簡單,又可以利用J a v a語言的強大功能,許多動態頁面處理
過程實際上被封裝到了J a v a B e a n s中。
1.1.3 JDBC
J D B C是用於執行S Q L語句的J a v a應用程序接口,由一組用J a v a語言編寫的類與接口組成,
在J S P中將使用J D B C來訪問數據庫。J D B C是一種規範,它讓各數據庫廠商爲J a v a程序員提供標
準的數據庫訪問類和接口,這樣就使得獨立於D B M S的J a v a應用程序的開發工具和產品成爲可能。
一般的J a v a開發工具都帶有J D B C - O D B C橋驅動程序,這樣,只要是能夠使用O D B C訪問的數據
庫系統,也就能夠使用J D B C訪問了。有趣的是,不同於O D B C是Open Database Connectivity的
簡稱,J D B C並不是Java Database Connecivity的簡稱,而是S U N的註冊商標,至少官方說法是這
樣的。
1.1.6 Java Servlet
Java Servlet是J S P技術的基礎,而且大型的We b應用程序的開發需要Java Servlet和J S P配合
才能完成,這裏簡單介紹S e r v l e t的相關知識,S e r v l e t的開發將在第二部分講述。
S e r v l e t這個名稱大概源於A p p l e t,現在國內的翻譯方式很多,本書爲了避免誤會,決定直接
採用S e r v l e t而不做任何翻譯,讀者如果願意,可以稱之爲“小服務程序”。S e r v l e t其實和傳統的
C G I程序和I S A P I、N S A P I等We b程序開發工具的作用是相同的,在使用Java Servlet以後,用戶
不必再使用效率低下的C G I方式,也不必使用只能在某個固定We b服務器平臺運行的A P I方式來
動態生成We b頁面。許多We b服務器都支持S e r v l e t,即使不直接支持S e r v l e t的We b服務器也可以
通過附加的應用服務器和模塊來支持S e r v l e t。得益於J a v a的跨平臺的特性, S e r v l e t也是平臺無關
的,實際上,只要符合Java Servlet規範, S e r v l e t是完全平臺無關且是We b服務器無關的。由於
Java Servlet內部是以線程方式提供服務,不必對於每個請求都啓動一個進程,並且利用多線程
機制可以同時爲多個請求服務,因此Java Servlet效率非常高。
但Java Servlet也不是沒有缺點,和傳統的C G I、I S A P I、N S A P I方式相同,Java Servlet是利
用輸出H T M L語句來實現動態網頁的,如果用Java Servlet來開發整個網站,動態部分和靜態頁
面的整合過程簡直就是一場惡夢。這就是爲什麼S U N還要推出Java Server Pages的原因。
1.2 JSP技術
前面說過, Java Servlet的最大缺點就在於沒有把網站的邏輯和頁面的輸出分開,導致整個
S e r v l e t代碼混亂不堪。爲了解決Java Servlet的這種缺點,S U N推出了Java Server Pages—J S P。
1.2.1 JSP技術概述
按照腳本語言是服務於某一個子系統的語言這種論述, J S P應當被看作是一種腳本語言,然
而,作爲一種腳本語言, J S P又顯得過於強大了,在J S P中幾乎可以使用全部的J a v a類。
第一章概述計計9
下載
作爲一種基於文本的、以顯示爲中心的開發技術,J S P提供了Java Servlet 的所有好處,並且,
當與一個JavaBeans 類結合在一起時,提供了一種使內容和顯示邏輯分開的簡單方式。分開內容
和顯示邏輯的好處是,更新頁面外觀的人員不必懂得Java 代碼,而更新J a v a B e a n s類的人員也不
必是設計網頁的行家裏手,就可以用帶JavaBeans 類的JSP 頁面來定義Web 模板,以建立一個由
具有相似的外觀的頁面組成的網站。JavaBeans 類完成數據提供,這樣在模板中就沒有Java 代碼,
這意味着這些模板可以由一個HTML 編寫人員來維護。當然,也可以利用Java Servlet來控制網
站的邏輯,通過Java Servlet調用J S P文件的方式來將網站的邏輯和內容分離。本章我們後面將對
這種分離網站的邏輯和內容的設計方法做一些更深入的描述。
在選擇使用一個Java Servlet,還是一個JSP 頁面時,要記住的是, Java Servlet 是一個程序
設計工具,它最適用於不需要頻繁修改的低級應用功能; 而J S P頁面則通過以顯示爲中心的描述
性的方法將動態內容和邏輯結合在一起。對於使用一個JSP 頁面的簡單的基於Web 的應用程序,
可以使用定製標記或者S c r i p t l e t,而不是使用JavaBeans 類來將內容與應用邏輯結合起來。定製
標記被打包到一個標記庫中,並被引入到一個JSP 頁面中。S c r i p t l e t是直接嵌入在JSP 頁面中的
很小的J a v a代碼段。
一般來說,在實際的J S P引擎中, J S P頁面在執行時是編譯式,而不是解釋式的。解釋式的
動態網頁開發工具如A S P、P H P 3等由於速度等原因已經滿足不了當前大型電子商務應用的需要
了,傳統的開發技術都在向編譯執行的方式改變,如A S P→A S P +;P H P 3→P H P 4。而儘管J S P的
規範書中並沒有要求實際的J S P引擎要使用編譯式的執行方式,但估計一般是不會使用解釋的方
式來執行J S P頁面的。通常說來, J S P頁面一般是翻譯爲S e r v l e t的J a v a源文件,再經過J a v a編譯器
編譯爲S e r v l e t的c l a s s文件。爲什麼要編譯爲S e r v l e t呢?據說是爲了讓原先的S e r v l e t引擎可以直接
服務於J S P,而J S P引擎就僅僅需要將J S P轉譯爲S e r v l e t就可以了。這裏要注意的是: J S P規範書
中並沒有規定如何將J S P頁面轉譯爲S e r v l e t,因此,不同的J S P引擎轉譯的結果也是不一樣的。
在J S P文件轉譯爲S e r v l e t以後,每次客戶機(通常是用戶的We b瀏覽器)向服務器請求這一個J S P
文件的時候,服務器將檢查自上次編譯後J S P文件是否有改變,如果沒有改變,就直接執行
S e r v l e t,而不用再重新編譯,其效率是相當高的。一般來說, J S P文件的編譯是在第一個用戶訪
問到這個J S P頁面時發生,而這第一個用戶通常是開發人員自己,這樣,正式放在服務器上讓用
戶訪問的J S P文件一般都已經有了對應的編譯好的S e r v l e t了。許多服務器都有設置,可以使J S P
文件在第一個用戶訪問之前就預先編譯好,這樣看來,效率就更高了。後面在第4章中,將展示
一個簡單的J S P文件對應的S e r v l e t。
在J S P規範書中,並沒有明確要求J S P中的程序代碼部分(稱爲S c r i p t l e t)一定要用J a v a來寫,
實際上,有一些J S P引擎就是採用的其他腳本語言,如:E M A C - S c r i p t、We b L等等,但實際上這幾
種腳本語言也是構建在J a v a上面,編譯爲S e r v l e t來實現的。按照J S P規範書,完全和J a v a沒有任何關
系的S c r i p t l e t也是可以的,不過,由於J S P的強大功能主要在於能和J a v a B e a n s、Enterprise JavaBeans
一起工作,所以即使是Scriptlet部分不使用Java,編譯成的執行代碼也應該是與Java相關的。
1.2.2 JSP的優勢及與其他We b開發工具的比較
和傳統的C G I相比較,J S P有相當的優勢。首先,在速度上,傳統的C G I程序需要使用系統
10計計第一部分JSP 入門
下載
的標準輸入輸出設備來實現動態網頁的生成,而J S P是直接和服務器相關聯的。而且對於C G I來
說,每一個訪問就需要新增加一個進程來處理,進程不斷地建立和銷燬對於作爲We b服務器的計
算機將是不小的負擔。其次, J S P是專門爲We b開發而設計的,其目的是爲了建立基於We b的應
用程序,包含了一整套的規範和工具。使用J S P技術可以很方便地將一大堆J S P頁面組合成爲一
個We b應用程序。
和I S PA I和N S A P I相比較, J S P的開發速度要快得多,開發難度也要小得多,在編譯爲J a v a
S e r v l e t以後,配合目前最新的J I T(Just In Ti m e)的J a v a解釋器,其執行速度也慢不了多少。而
且,I S A P I和N S A P I這種和We b服務器過於緊密結合的技術在使用時的一旦出現錯誤,很容易使
We b服務器崩潰,而J S P就沒有這個缺點。
J S P的真正對手是A S P和P H P,還有即將問世的A S P +,在We b技術方面A S P、P H P和J S P的比
較見表1 - 1。
注意:這裏的A S P指A S P 3 . 0,J S P指J S P規範書1 . 1中指出的規範,P H P指P H P 4。
表1-1 ASP、J S P、P H P的比較
A S P J S P P H P
We b服務器I I S、P W S 等A p a c h e 、I I S 、P W S 、
Netscape Server等等
運行平臺Wi n d o w s 等各種U N I X(S o l a r i s、L i n u x、
A I X、I R I X等)、Wi n d o w s
組件技術C O M 等C O M、J a v a B e a n s
自定義TA G語法無等無
開放性無等自由軟件
腳本語言支持V B S c r i p t、J S c r i p t 等P H P
建立大型We b應用程序可以等不宜
程序執行速度快等極快
學習難度低等低
S e s s i o n管理有等有
統一的數據庫連接有、A D O、O D B C 等無
後綴名a s p 等p h p、p h p 3、p h p s
1. We b服務器和運行平臺
A S P目前僅僅被支持於Microsoft Internet Information Server(I I S)和Personal Web Server
(P W S),由於I I S和P W S僅僅有Wi n d o w s下的版本,故A S P目前只能在Wi n d o w s平臺下使用。盡
管有第三方的插件號稱可以在U N I X下使用A S P,但對基於C O M組件技術的A S P來說,在沒有
C O M支持的U N I X平臺下只能是一個“玩具”。
J S P僅僅是一個規範,儘管通過前面的論述可以得出J S P一般要用J a v a來實現的論斷,但作爲
跨平臺的語言, J a v a可以在許多平臺下使用。這樣, J S P也就顯而易見的是跨平臺的了。目前的
第一章概述計計11
下載
等A p a c h e、I I S 、P W S 、
Netscape Server 、i P l a n e t

等各種U N I X( S o l a r i s 、
L i n u x、A I X、I R I X等)、
Wi n d o w s、M a c O S等
等J a v a B e a n s、E J B
等有
等多家合作,包括S U N 、
I B M、BEA We b l o g i c、
N e t s c a p e、O r a c l e
等J a v a 、E M A C - S c r i p t、
We b L等
等可以
等極快
等較低
等有
等有、J D B C
等j s p
J S P的確可以在多種We b服務器和操作系統下使用。如Apache Web Server和Microsoft IIS等。
Apache Web Server是世界上佔有率最高的We b服務器產品,可以在包括SUN Solaris、I B M
A I X、SGI IRIX、L i n u x和Wi n d o w s在內的許多操作系統下運行。Apache Web Server下J S P的實
現可以通過免費的Apache Jserv 和G N U J S P、J a k a r t a - To m c a t實現,也可以使用商業的J R U N
(L i v e S o f t w a r e)、We b l o g i c(B E A)、We b s p h e r e(I B M)來實現。
Microsoft IIS本身不直接支持J S P,但可以通過J R U N、We b l o g i c、We b s p h e r e來實現。
還可以使用應用服務器添加J S P支持的Netscape Enterprise Server及由之發展而來的可以直接
支持J S P的iPlanet Web Server等等。
P H P本身就對各種操作系統和We b服務器做了支持, P H P目前可以作爲A p a c h e的一個附加模
塊直接編譯進入A p a c h e中去,由於A p a c h e支持多種操作系統, P H P相應地也就可以在各種操作
系統上實現。P H P也可以C G I方式或I S A P I方式插入到I I S或P W S中去。
2. 組件技術
A S P和J S P對組件技術的支持已經很完善了,而P H P直到前不久纔開始支持C O M和J a v a B e a n s。
但支持也不是很完善,如果P H P不能在將來完善對組件技術的支持,在大型We b應用程序方面將
很難與J S P和A S P競爭。但由於P H P技術本身的易學易用,加上衆多的函數支持和開放源代碼的
特性,在中小型We b站點的開發上,P H P還是會佔有一席之地的。
其實,J S P本身對於A S P和P H P並沒有明顯的優勢, J S P的強大是因爲其後面有強大的J a v a技
術做支持。包括J a v a B e a n s和J 2 E E技術在內的J a v a技術是J S P強大生命力的所在。
M i c r o s o f t最新推出的A S P +技術和A S P技術相比有了許多激動人心的進步,但是從企業級應
用的角度看, J S P技術仍然有相當的優勢。有理由認爲,在將來的We b開發中,中小型站點將出
現J S P、A S P +和P H P三分天下的局面,但是對於大型的電子商務站點, J S P及J 2 E E技術將成爲首

發佈了3 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章