資源描述:
《jsp與servlet的區(qū)別》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、jsp與servlet的區(qū)別!分類:?Javaweb2012-02-2619:14?195人閱讀?評論(0)?收藏?舉報servletjspbeansessionweb服務(wù)applet課前索引1.動態(tài)網(wǎng)頁和靜態(tài)網(wǎng)頁有什么區(qū)別?2.什么是Web應(yīng)用程序?3.什么是Servlet,和一般Java程序有什么區(qū)別?4.什么是JSP,和Java是什么關(guān)系?5.JSP和Servlet有哪些異同點?6.JSP和Servlet的主要用途?10.1Servlet的概念、配置與運行10.1.1JavaServlet的概念 JavaServlet是一個專門用于編寫網(wǎng)絡(luò)服務(wù)器應(yīng)用程序的
2、Java組件。所有基于Java的服務(wù)器端編程都是構(gòu)建在Servlet之上的。在J2EE中Servlet已經(jīng)是一個標準的組件。在J2EE中跟Servlet相關(guān)的一個包是javax.servlet,其中最基本的Servlet被聲明為一個接口javax.servlet:InterfaceServlet,這是Servlet最高層次的一個抽象,它是和網(wǎng)絡(luò)協(xié)議無關(guān)的。同樣在javax.servlet中,實現(xiàn)了一個類javax.servlet:classGenericServlet,這個類實現(xiàn)了Servlet接口,也是和協(xié)議無關(guān)的。而這個類是構(gòu)建其他和協(xié)議相關(guān)的Servlet子
3、類型的通用的父類(至少HttpServlet是從它繼承而來的,從它的名字也能看出這一點)。也就是說Servlet所適用的網(wǎng)絡(luò)協(xié)議可以是多種多樣的,比如HTTP,F(xiàn)TP,SMTP,TELNET等,但是就目前而言,只有HTTP服務(wù)已經(jīng)形成了標準的Java組件。對應(yīng)的軟件包有兩個javax.servlet.http和javax.servlet.jsp,分別對應(yīng)我們要講解的Servlet和JSP編程。我們通常所說的Servlet編程主要就是指針對HTTP的Servlet編程,用到的就是javax.servlet.http包中的類(典型的就是HttpServlet類),實際
4、上JavaServlet編程的概念要更廣一些,在這里我們也就約定俗成的使用Servlet來指代HTTPServlet的編程,這點讀者是需要了解的。由于JSP最終都是要經(jīng)過JSP引擎轉(zhuǎn)換成Servlet代碼的,而且Servlet編程和一般的Java編程是沒有大的區(qū)別的,只需要了解一定的規(guī)范即可,所以我們在這里先講解Servlet的編程,這樣對以后理解JSP是很大的有好處的,盡管在使用的時候可能JSP更為簡單一些?! ∧壳?,Servlet引擎一般是第三方的插件,它通過一定的方法連接到Web服務(wù)器,Servlet引擎把它識別為Servlet請求的那些HTTP請求截獲下來
5、處理,而其他的HTTP請求由Web服務(wù)器按照通常的方式來處理,Servlet引擎會裝載合適的Servlet到內(nèi)存中,如果Servlet還沒有運行的話,會分配一個可以使用的線程來處理請求,再把Servlet的輸出返回到發(fā)出請求的Web客戶機。 JavaServlet和JavaApplet正好是相對應(yīng)的兩種程序類型,Applet運行在客戶端,在瀏覽器內(nèi)執(zhí)行,而Servlet在服務(wù)器內(nèi)部運行,通過客戶端提交的請求啟動運行,讀者在學(xué)習過程可以作簡單的比較。由于Servlet是用Java編寫的,所以它與生俱來就有跨平臺的特性,因此Servlet程序的設(shè)計完全和平臺是無關(guān)的
6、,同樣的Servlet完全可以在Apache,IIS等不同Web服務(wù)器上執(zhí)行,不管底層的操作系統(tǒng)是Windows,Solaris,Mac,Linux還是其他的能支持Java的操作系統(tǒng)?! ervlet是跟普通的Java程序一樣,是被編譯成字節(jié)碼后由JVM執(zhí)行的。相比傳統(tǒng)的CGI,盡管CGI是用本地代碼直接執(zhí)行的,但是由于每次客戶端發(fā)出請求,服務(wù)器必須啟動一個新的程序來處理請求,這就把高負載強加給了服務(wù)器資源,尤其如果CGI使用腳本語言編寫時,如perl,服務(wù)器還必須啟動語言解釋程序,程序越多,占用的內(nèi)存就越多,消耗CPU也越多,嚴重影響系統(tǒng)性能?! ervle
7、t運行于Servlet引擎管理的Java虛擬機中,被來自客戶機的請求所喚醒,與CGI不同的是,在虛擬機中只要裝載一個Servlet就能夠處理新的請求,每個新請求使用內(nèi)存中那個Servlet的相同副本,所以效率比CGI來得高。如果采用服務(wù)器端腳本,如ASP,PHP,語言解釋程序是內(nèi)置程序,因此可以加快服務(wù)器的運行,但是效率還是比不上準編譯的Servlet。實際的使用也已經(jīng)證明,Servlet是效率很高的服務(wù)器端程序,很適合用來開發(fā)Web服務(wù)器應(yīng)用程序。 JavaServlet有著十分廣泛的應(yīng)用。不光能簡單的處理客戶端的請求,借助Java的強大的功能,使用Servl
8、et還可以