1. 程式人生 > >JSP技術(一)

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>