JSP技術(一)
Servlet的兩個缺點:
1.首先,寫在Servlet中所有的HTML標籤必須包含JAVA字串,使得處理HTTP響應報文工作十分繁瑣。
2.所有的檔案和HTML標記是硬程式碼,導致即使是微小變化,也需要重新編譯。
JSP(JavaServer Pages)
JSP的頁面上是一個Servlet,但jsp更容易。
1.不必編譯JSP頁面。
2.JSP頁面是一個以.jsp為副檔名的文字檔案,可以使用任何編輯器編寫。
JSP頁面在JSP容器中執行,一個Servlet容器通常也是JSP容器。例如Tomcat就是一個Servlet/JSP容器。
當一個JSP頁面第一次被請求時,Servlet/JSP頁面做如下兩件事:
1.轉換JSP頁面到JSP頁面實現類,該類是一個實現java.servlet.jsp.JspPage介面或者子介面javax.servlet.jsp.HttpJspPage的Java類。JspPage是javax.servlet.Servlet的子介面,這使得 每個JSP頁面都是一個Servlet。該實現類的類名由Servlet/JSP容器生成。如果出現轉換錯誤,則相關資訊被髮送客戶端。
2.如果轉換成功,Servlet/JSP容器隨後編譯該Servlet類,並裝載例項化該類,像其他正常的Servlet一樣執行生命週期操作。
對於同一個JSP頁面的後續請求,Servlet/JSP容器會檢查JSP頁面是否被修改過。如果是,則該JSP頁面會被重新翻譯、編譯並執行。如果不是,則執行已經在記憶體中的JSP Servlet。
JSP自帶的API包含4個包:
1.javax.servlet.jsp。包含用於Servlet/JSP容器將JSP頁面翻譯成Servlet的核心類和介面。
其中兩個重要成員是JspPage和HttpJspPage介面。所有JSP頁面實現類必須實現JspPage或HttpJspPage介面。在Http環境下,需要實現HttpJspPage介面。
2.javax.servlet.jsp.tagext。包含用於開發自定義標籤的型別。
3.javax.el。提供統一表達式語言的API。
4.javax.servlet.jsp.el。提供一組必須由Servlet/Jsp容器支援,以便在JSP頁面中使用的表示式語言的類。
"<%"表示JSP頁面中Java程式碼塊的開始,"%>"表示Java程式碼塊的結束符。
例:welcome.jsp
<html> <head><title>Welcome</title></head> <body> <% out.print("welcome"); %> </body> </html>