top
Loading...
JSP 結構

JSP 結構

網絡服務器需要一個 JSP 引擎,也就是一個容器來處理 JSP 頁面。容器負責截獲對 JSP 頁面的請求。本教程使用內嵌 JSP 容器的 Apache 來支持 JSP 開發。

JSP 容器與 Web 服務器協同合作,為JSP的正常運行提供必要的運行環境和其他服務,併且能夠正確識別專屬於 JSP 網頁的特殊元素。

下圖顯示了 JSP 容器和 JSP 文件在 Web 應用中所處的位置。


JSP 處理

以下步驟表明了 Web 服務器是如何使用JSP來創建網頁的:

  • 就像其他普通的網頁一樣,您的瀏覽器發送一個 HTTP 請求給服務器。

  • Web 服務器識別出這是一個對 JSP 網頁的請求,併且將該請求傳遞給 JSP 引擎。通過使用 URL或者 .jsp 文件來完成。

  • JSP 引擎從磁盤中載入 JSP 文件,然後將它們轉化為 Servlet。這種轉化只是簡單地將所有模板文本改用 println() 語句,併且將所有的 JSP 元素轉化成 Java 代碼。

  • JSP 引擎將 Servlet 編譯成可執行類,併且將原始請求傳遞給 Servlet 引擎。

  • Web 服務器的某組件將會調用 Servlet 引擎,然後載入併執行 Servlet 類。在執行過程中,Servlet 產生 HTML 格式的輸出併將其內嵌於 HTTP response 中上交給 Web 服務器。

  • Web 服務器以靜態 HTML 網頁的形式將 HTTP response 返回到您的瀏覽器中。

  • 最終,Web 瀏覽器處理 HTTP response 中動態產生的HTML網頁,就好像在處理靜態網頁一樣。

以上提及到的步驟可以用下圖來表示:

一般情況下,JSP 引擎會檢查 JSP 文件對應的 Servlet 是否已經存在,併且檢查 JSP 文件的修改日期是否早於 Servlet。如果 JSP 文件的修改日期早於對應的 Servlet,那么容器就可以確定 JSP 文件沒有被修改過併且 Servlet 有傚。這使得整個流程與其他腳本語言(比如 PHP)相比要高傚快捷一些。

總的來說,JSP 網頁就是用另一種方式來編寫 Servlet 而不用成為 Java 編程高手。除了解釋階段外,JSP 網頁幾乎可以被當成一個普通的 Servlet 來對待。

北斗有巢氏 有巢氏北斗