傳智播客旗下品牌:|||||

全國咨詢/投訴熱線:400-618-4000

JSP是什么?JSP是怎么運行的?

更新時間:2020年06月02日14時28分 來源:傳智播客 瀏覽次數:

在動態Web項目的開發中,經常需要動態生成HTML。內容(如系統中的當前在線人數需要動態生成)。如果使用Servlet實現HTML頁面數據的統計,則需要使用大量的輸出語句。同時,如果靜態內容和動態內容混合在一起,那么也將導致程序非常臃腫。為了克服Servlet的這些缺點,Oracle( Sun)公司推出了JSP技術。

JSP(Java Server Pages)是建立在Servlet規范之上的動態網頁開發技術,其實質是一個簡化的Servlet,在JSP文件中,HTML代碼與Java代碼共同存在,其中,HTML代碼用于實現網頁中靜態內容的顯示,Java代碼用于實現網頁中動態內容的顯示。為了與傳統HTML有所區別,JSP文件的擴展名為jsp。

JSP技術所開發的Web應用程序是基于Java的,其使用具有如下幾點特征。

1、預編譯

預編譯指在用戶第一次通過瀏覽器訪問JSP頁面時,服務器將對JSP頁面代碼進行編譯,并且僅執行一次編譯。編譯好的代碼將被保存,在用戶下一次訪問時會直接執行編譯好的代碼。這樣不僅節約了服務器的CPU資源,還大幅度提升了客戶端的訪問速度。

2、業務代碼相分離

在使用JSP技術開發Web應用時,可以將界面的開發與應用程序的開發分離,

3、組件重用

JSP可以使用JavaBean編寫業務組件,也就是使用一個JavaBean類封裝業務處理代碼或者將其作為一個數據存儲模型,在JSP頁面甚至整個項目中,都可以重復使用這個JavaBean,同時,JavaBean也可以應用到其他Java應用程序中

4、跨平臺

由于JSP是基于Java語言的,它可以使用Java API,所以它也是跨平臺的,可以應用于不同的系統,如 Windows和Linux等。

JSP運行原理

JSP的工作模式是請求/響應模式,客戶端首先發出HTTP請求,JSP程序收到請求后將進行處理并返回處理結果。在一個JSP文件第一次被請求時,JSP引擎(容器)把該JSP文件轉換成一個Servlet,而這個引擎本身也是一個Servlet, JSP的運行原理如下圖:

1591078779176_JSP執行原理.jpg


JSP的運行過程具體如下。

(1) 客戶端發出請求,請求訪問JSP文件。

(2) JSP容器先將JSP文件轉換成一個Java源文件(Java Servlet源程序),在轉換過程中,如果發現JSP文件中存在任何語法錯誤,則中斷轉換過程,并向服務端和客戶端返回出錯信息。

(3) 如果轉換成功,則JSP容器會將生成的Java源文件編譯成相應的字節碼文件*.class。該class文件就是一個Servlet,Servlet容器會像處理其他Servlet一樣處理它。

(4) 由Servlet容器加載轉換后的Servlet類(class文件)創建一個該ServletJSP頁面的轉換結果)的實例,并執行Servlet的jsplnit()方法。jspInit()方法在Servlet的整個生命周期中只會執行一次。

(5) 執行jspService()方法處理客戶端的請求。對于每一個請求,JSP容器都會創建個新的線程處理它。如果多個客戶端同時請求該JSP文件,則JSP容器會創建多個線程,使每個客戶請求都對應一個線程。

(6) 如果JSP文件被修改了,則服務器將根據設置決定是否對該文件重新進行編譯,果需要重新編譯,則使用重新編譯后的結果取代內存中的Servlet,并繼續上述處理過在需要注意的是,雖然JSP效率很高,但在第一次調用時往往由于需要轉換和編譯,所以會生一些輕微的延遲。

(7) 如果系統出現資源不足等問題,JSP容器可能會以某種不確定的方式將Servlet從內存中移除,發生這種情況時,首先會調用jspDestroy ()方法,然后Servlet實例會被作為“垃圾”進行處理。

(8) 當請求處理完成后,響應對象由JSP容器接收,并將HTML格式的響應信息發送回客戶端。推薦了解java培訓課程

java培訓選擇傳智播客


猜你喜歡:

什么是java變量,java變量的定義

Java中的常量有哪些?

Java中switch條件語句的用法

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校區

    14天免費試學

    基礎班入門課程限時免費

    申請試學名額

    15天免費試學

    基礎班入門課程限時免費

    申請試學名額

    15天免費試學

    基礎班入門課程限時免費

    申請試學名額

    15天免費試學

    基礎班入門課程限時免費

    申請試學名額

    20天免費試學

    基礎班入門課程限時免費

    申請試學名額

    8天免費試學

    基礎班入門課程限時免費

    申請試學名額

    20天免費試學

    基礎班入門課程限時免費

    申請試學名額

    5天免費試學

    基礎班入門課程限時免費

    申請試學名額

    0天免費試學

    基礎班入門課程限時免費

    申請試學名額

    12天免費試學

    基礎班入門課程限時免費

    申請試學名額

    5天免費試學

    基礎班入門課程限時免費

    申請試學名額

    5天免費試學

    基礎班入門課程限時免費

    申請試學名額

    10天免費試學

    基礎班入門課程限時免費

    申請試學名額
    幸运飞艇聊天室app 山西11选5走势图 幸运飞艇玩法 什么是网赚竞技 上海天天彩选4 19年自动挂机网赚 青海快3 007网赚之家 博盈彩票开户 中创网赚