2011年3月15日 星期二

[JSP] Introduction

* Directive
  • <%@              %>
  • 使用指令元素include來包括其它網頁內容時,會在轉譯時期就決定轉譯後的Servlet內容,是一種靜態的指定方式。
  • 標籤的使用,則是執行時期動態將別的網頁包括進來進行回應的方式,使用的網頁與被包括的網頁,各自都生成一個獨立的Servlet。

* 宣告、Scriptlet 與運算式元素
  • Declare: <%!      %>
  • Scriptlet: <%       %>
  • Expression: <%=       %>
  • 容器預設會使用同一個Servlet實例來服務不同使用者的請求,每個請求是一個執行緒,而<%!與%>間宣告的變數對應至類別變數成員,因此會有執行緒共用存取的問題。
  • <%與%>之間所包括的內容,將被轉譯為Servlet原始碼_jspService()方法中的內容。注意!運算式元素中不用加上分號(;)。這個運算式元素在轉譯為Servlet之後,會在_jspService()中產生以下的陳述句:out.print(new Date());

* JSP 生命週期
  • 注意到_jspInit()、_jspDestroy()與_jspService()方法名稱上有個底線,表示這些方法是由容器轉譯時維護,你不應該重新定義這些方法。如果想要作些JSP初始化或收尾動作,則應定義jspInit()或jspDestroy()方法。

* 深入 <jsp:usebean>、<jsp:setproperty> 與 <jsp:getproperty>
  • 如果你使用標籤時沒有指定scope,則預設「」在page範圍中尋找JavaBean,找不到就建立新的JavaBean物件(不會再到request、session與application中尋找)。


* Reference
- 語言技術:Servlet/JSP Gossip

沒有留言:

張貼留言