一、概念
Servlet
Servlet(Server Applet)是Java Servlet的簡稱,是爲小服務程序或服務連接器,用Java編寫的服務器端程序,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。
狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解爲後者。Servlet運行於支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。
JSP
JSP全名爲Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件,後綴名爲(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。
二、區別
JSP第一次運行的時候會編譯成Servlet,駐留在內存中以供調用。
JSP是web開發技術,Servlet是服務器端運用的小程序,我們訪問一個JSP頁面時,服務器會將這個JSP頁面轉變成Servlet小程序運行得到結果後,反饋給用戶端的瀏覽器。
Servlet相當於一個控制層再去調用相應的JavaBean處理數據,最後把結果返回給JSP。
Servlet主要用於轉向,將請求轉向到相應的JSP頁面。
JSP更多的是進行頁面顯示,Servlet更多的是處理業務,即JSP是頁面,Servlet是實現JSP的方法。
Servlet可以實現JSP的所有功能,但由於美工使用Servlet做界面非常困難,後來開發了JSP。
JSP技術開發網站的兩種模式:JSP + JavaBean;JSP + Servlet + JavaBean(一般在多層應用中, JSP主要用作表現層,而Servlet則用作控制層,因爲在JSP中放太多的代碼不利於維護,而把這留給Servlet來實現,而大量的重複代碼寫在JavaBean中)。
三、概括
JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯後是“類servlet”。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。