我們可以將 JSP 看作 Java Servlet 的一種擴展,在使用時 JSP 必須被編譯為 Servlet,也就是 Java 類,然后才能調用執行,Servlet 所產生的 Web 頁面不能包含在 HTML 標簽中。JSP 的應用特點如下。
1. 實現跨平臺操作
JSP 技術的最大特點是其編寫的代碼與設計平臺完全無關,用戶可以將在任何平臺上編寫的 JSP 頁面拿來在任何 Web 服務器或 Web 應用服務器上運行,然后通過任何 Web 瀏覽器訪問。
除此之外,JSP 還可以在任何平臺上建立服務器組件,在任何服務器上運行程序。從 JSP 的這個特點可以看出,應用程序開發者只要在自己選用的任意平臺上編寫 Web 頁面,就可以將編寫好的頁面放在任意服務器上運行,當需要對頁面進行修改時,也無須考慮開發運行平臺。
JSP 頁面的內置腳本語言是基于 Java 編程語言的,因此,JSP 頁面都要被編譯為 Servlet。
2. 可重復使用組件
JSP 頁面依賴于可重用的、跨平臺的組件來執行應用程序中所要求的更為復雜的處理?;诮M件的方法的特點是:能夠提高總體開發過程的效率,使得各種組織在他們現有優點的基礎上得到更好的優化處理。
開發人員能夠共享并且交換執行普通操作的組件,這些組件除了可以將網頁的設計與邏輯程序的設計分離以節約開發時間,還可以充分利用 Java 以及其他腳本語言的跨平臺的能力及其靈活性。
3. 標記簡化的語言
標準的 JSP 標記可以訪問和實例化JavaBean組件,并且可以設置或檢索組件屬性,以及下載Applet,執行用其他方法更難以編碼和耗時的功能。
JSP技術可以將許多功能封裝起 來,在進行Web頁面開發時,利用這些封裝的功能就可以方便地使用與JSP相關的XML 標記進行動態內容的生成。
4. 實現應用程序與頁面顯示的分離化
應用程序與頁面顯示的分離化可以使 Web 頁面的設計者和管理人員能夠互不影響地編輯和使用 JSP 頁面,而不影響其內容的生成。
Web 頁面的開發人員可以利用 HTML 或 XML 標記來設計和格式化最終頁面,而利用 JSP 標記或 Scriptlet 來生成頁面上的動態內容。生成的內容被封裝在標記和 JavaBean 組件中,并將它們捆綁在 Scriptlet中,使得所有的腳本程序都運行在服務器端。
通常,在服務器端由 JSP 引擎解釋 JSP 標記和 Scriptlet,生成所請求的內容,同時,將結果以 HTML 或者 XML 頁面的形式發送回瀏覽器。這樣做,不但可以對程序代碼進行保密,又可以保證任何基于 HTML 的 Web 瀏覽器的跨平臺使用。
與 Servlet 相比,JSP 可以提供所有 Servlet 的功能,比使用 println 編寫和修改 HTML 更方便。
提示:
JSP 還可以更明確地進行分工,Web 頁面的設計人員編寫 HTML 時,只需要留出地方讓 Servlet 程序員插入動態部分就可以了。
在編寫 JSP 程序時,要了解它的執行順序,JSP 的執行流程如圖 1 所示。首先,客戶端向 Web 服務器提出請求,然后 JSP 引擎負責將頁面轉化為 Servlet,此 Servlet 經過虛擬機編譯生成類文件,然后再把類文件加載到內存中執行。最后,由服務器將處理結果返回給客戶端。
圖1 JSP的執行流程
提示:
JSP 頁面代碼會被編譯成 Servlet 代碼,執行效率沒有 Servlet 快,但并不是每一次都需要編譯 JSP 頁面。當 JSP 第一次被編譯成類文件后,重復調用該 JSP 頁面時,若 JSP 引擎發現該 JSP 頁面沒有被改動過,那么會直接使用編譯后的類文件而不會再次編譯成新的 Servlet。當然,如果頁面被修改后,則需要重新加載和編譯。