servlet與jsp的區別(轉)

1、基本概念 

          1.1 Servlet

          Servlet是一種服務器端的Java應用程序,具備獨立於平臺和協議的特性,能夠生成動態的Web頁面。它擔當客戶請求(Web瀏覽器或其餘HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。 Servlet是位於Web 服務器內部的服務器端的Java應用程序,與傳統的從命令行啓動的Java應用程序不一樣,Servlet由Web服務器進行加載,該Web服務器必須包含支持Servlet的Java虛擬機。web

          1.2 JSP      

          JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能經過tags和scriptlets訪問存在於服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基於組件的設計,使基於Web的應用程序的開發變得迅速和容易。 JSP(JavaServer Pages)是一種動態頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。數據庫

     JSP是一種腳本語言,包裝了Java Servlet系統的界面,簡化了Java和Servlet的使用難度,同時經過擴展JSP標籤(TAG)提供了網頁動態執行的能力。JSP提供了一套簡單的標籤,和HTML融合的比較好,可使不瞭解Servlet的人能夠作出動態網頁來。對於Java語言不熟悉的人,會以爲JSP開發比較方便。JSP修改後能夠當即看到結果,不須要手工編譯,JSP引擎會來作這些工做;而Servelt缺須要編譯,從新啓動Servlet引擎等一系列動做。可是在JSP中,HTML與程序代碼混雜在一塊兒,而Servlet卻不是這樣。下面咱們對JSP的運行來作一個簡單的介紹,告訴你們怎樣來執行一個JSP文件:當Web服務器(或Servlet引擎,應用服務器)支持JSP引擎時,JSP引擎會照着JSP的語法,將JSP文件轉換成Servlet代碼源文件,接着Servlet會被編譯成Java可執行字節碼(bytecode),並以通常的Servlet方式載入執行JSP語法簡單,能夠方便的嵌入HTML之中,很容易加入動態的部分,方便的輸出HTML。在Servlet中輸出HTML缺須要調用特定的方法,對於引號之類的字符也要作特殊的處理,加在複雜的HTML頁面中做爲動態部分,比起JSP來講是比較困難的。編程

2、二者之間的聯繫和區別小程序

【1】JSP第一次運行的時候會編譯成Servlet,駐留在內存中以供調用。瀏覽器

【2】JSP是web開發技術,Servlet是服務器端運用的小程序,咱們訪問一個JSP頁面時,服務器會將這個JSP頁面轉變成Servlet小程序運行獲得結果後,反饋給用戶端的瀏覽器。服務器

【3】Servlet至關於一個控制層再去調用相應的JavaBean處理數據,最後把結果返回給JSP。架構

【4】Servlet主要用於轉向,將請求轉向到相應的JSP頁面。編程語言

【5】JSP更多的是進行頁面顯示,Servlet更多的是處理業務,即JSP是頁面,Servlet是實現JSP的方法。網站

【6】Servlet能夠實現JSP的全部功能,但因爲美工使用Servlet作界面很是困難,後來開發了JSP。命令行

【7】JSP技術開發網站的兩種模式:JSP + JavaBean;JSP + Servlet + JavaBean(通常在多層應用中, JSP主要用做表現層,而Servlet則用做控制層,由於在JSP中放太多的代碼不利於維護,而把這留給Servlet來實現,而大量的重複代碼寫在JavaBean中)。

【8】兩者之間的差異就是,開發界面是JSP直接能夠編寫。

好比在JSP中寫Table標記:<table>[數據]</table>;

Servlet須要加入:out.println(「<table>[數據]</table>」)。

JSP文件在被應用服務器(例如:Tomcat、Resin、Weblogic和Websphere),調用過以後,就被編譯成爲了Servlet文件。也就是說在網頁上顯示的實際上是Servlet文件。Tomcat下面JSP文件編譯以後生成的Servlet文件被放在了work文件夾下,JSP中的HTML代碼在Servlet都被out出來,而JSP代碼按照標籤的不一樣會放在不一樣的位置。

【9】JSP中嵌入JAVA代碼,而Servlet中嵌入HTML代碼。

【10】在一個標準的MVC架構中,Servlet做爲Controller接受用戶請求並轉發給相應的Action處理,JSP做爲View主要用來產生動態頁面,EJB做爲Model實現你的業務代碼。

相關文章
相關標籤/搜索