一般教科書都喜歡讓人家先學習一些概念,之後再開始找平臺,我喜歡先乾點,有了一定的概念再談談那些講理論的事。
我們在上次搭建平臺時已經對 JSP 的平臺搭建及寫法有了相關的瞭解。我們這回來說一下理論方面的事。嗯。。。從哪開始呢???好吧從這裏開始(和沒說一樣)。
一、介紹一位新同學——JSP
JSP(全稱:Java Server Pages)是由 Sun MicroSystem公司(簡稱:Sun,現在被 Oracle 甲骨文公司收購)公司倡導、多家公司共同參與,並於1999年建立起來的一種動態網頁技術標準。在技術上,JSP 是基於 Java Servlet 以及整個 Java 體系的 Web 開發技術。在應用上,JSP 是一個服務器端技術。在服務器端通過JSP引擎解釋成JSP代碼,然後以HTML或XML之頁面形式發送至客戶端。JSP的寫法很也簡單,也就是將代碼加入到HTML中去,即可。這和 ASP、PHP 這兩種語言的使用方法相同(表要說 MVC 之流,那只是個框架)。
二、JSP的優勢與劣勢
1、JSP的優勢:
(1)一次編寫,到處運行,兼容性強,支持多種系統。
(2)支持服務器端組件。
2、JSP的劣勢
(1)爲了實現跨平臺性,系統複雜性強。
(2)由於第一次運行時,系統要自動編譯 JSP 代碼,所以產生大量的 .java,.class。
三、JavaEE 與 JSP 之間的關係
JavaEE 是 J2EE 的一個新的名稱,是 Java2 平臺企業版。
JSP 其實是最早的 JavaEE 規範之一,也是最經典的 JavaEE 技術之一。直到現在,JSP 依舊廣泛地應用於各種 JavaEE 當中,充當 JavaEE 的表現層角色。JSP具有簡單、易用的特點,學習道路之平坦也,國內又有大量之學習資料,所以Java學習的同學們在學習JavaEE時,都是先從JSP開始的。
在 JavaEE 中,除了用 JSP 外,還有 Servlet。兩個的原理皆一致。實際上 JSP是必須被服務器編譯成 Servlet 後,才運行的。所以,我們用得是 JSP 代碼,實際上卻是在操作的是Servlet。但Servlet的開發之成本過高,難於維護,不利於美工參與開發,所以實際上大都是用 JSP 來充當表現層的技術。
JSP 只能負責簡單的顯示邏輯,對於底層就無語了。。。這可怎麼辦,所以 JavaEE 就用到了 JavaBean (我以前的老師常叫他“Java豆”,實際上,官方也叫他DTO 【Data Transfer Object,數據傳輸對象】)來處理。
所以,如果在面試時,人家問你你寫得是 JSP,你要做 JavaEE,你就告訴他這個。
四、JSP的運行機制
JSP 是服務器端技術,在服務器端 JSP 代碼將會被 JSP引擎解釋成 JSP代碼,最後以 HTML 或 XML 的頁面形式發送至客戶端,因而在客戶端那裏,我們是看不到任何 JSP 代碼,僅僅看到的是 W3C 所倡導的頁面標識。那他是如何在服務器上動作的呢,我們看一下。
1、當 JSP 頁面第一次被請求執行時,則 JSP 引擎會將 JSP 頁面解析成 Java 源文件(*.java)【如果是第二次執行(就是非新建,非原創),則不執行這一步】。
2、興奮的 JSP 引擎再把 Java 源文件編譯生成爲 Java Class 字節碼文件(*.class)。這個 Java Class 字節碼文件就是 Servlet【如果是第二次執行(就是非新建,非原創),則不執行這一步】。
3、Servlet 開始接收這個 Java Class 字節碼文件,JSP 引擎工作結束。
4、Servlet 運行這個 Java Class 字節碼文件,並把結果反回給客戶端(也就是用戶的PC機)。
沒辦法,我的美工水平太次了。。。哎。。。