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

來源:互聯網
上載者:User

該篇入門轉自《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技術將成為首

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.