一、JSP的本質就是servlet.
JSP執行規則:先轉化成Java檔案,然後編譯成class檔案,最後才可以執行。
瞭解了servlet之後,好多JSP的知識可以從JSP翻譯後的Java檔案中看出。
JSP頁面轉化為Java檔案後所在的位置:
Eclipse的工作目錄下的
。metadata。plugins\org。eclipse。wst。server。core\tmp0\work\Catalina\localhost\Demo0808\org\apache\jsp
二、JSP中的Java程式碼段
介紹下我自己的Java學習群:548511899,不管你是小白還是大牛,小編我都挺歡迎,不定期分享乾貨,包括我自己整理的一份2017最新的Java資料和零基礎到學成出山的全套教程,歡迎所有喜歡Java的小夥伴。
JSP中的程式碼片段,翻譯到Servlet的方法中,所以可以寫Java方法中允許的程式碼,
不能寫訪問識別符號等在方法中都不允許的程式碼。
指令碼中的程式碼要保持結構完整,可以分開寫到兩個指令碼中,比如:
<% for(int I = 0; I < 10; I ++){ %> hello <% } %>
Java片段翻譯為Servlet的時候是按照從上向下的順序的。
三、JSP註釋
JSP註釋:在JSP原始碼介面可見,Java檔案中不可見,頁面原始碼中不可見。
HTML註釋:在各個介面都可見。
Java註釋,只有在頁面原始碼中不可見
四、JSP指令
1。page指令
language屬性:指示當前的JSP頁面會被翻譯成何種語言。
ContentType:指定瀏覽器的編碼方式,瀏覽器使用。
pageEncoding:指定當前頁面的編碼方式,供瀏覽器使用。
autoFlush:是否自動重新整理,預設true。
errorPage:當前頁面發生錯誤後,轉發到的頁面,位址列不變化。
buffer:緩衝的大小
isErrorPage:指定當前頁面是否為錯誤頁面,預設是false,此時內建物件Exception不可用。true的時候才可以使用。
isELIgnored:是否忽略El表示式,預設不忽略。
2。include靜態載入。
被包含頁面的程式碼完全加到目標頁面中,轉化為Java檔案的時候只轉化目標頁面,被包含頁面在Java檔案中也有輸出。
file屬性
五、JSP動作標籤
最終會被翻譯成Java程式碼執行。(Java學習交流群 548511899)
1。forword標籤:
只有page屬性。此時路徑是相對於伺服器端的。轉發。 這個標籤可以訪問WEB-INF目錄下的檔案 不帶引數其實標籤和結束標籤不可以分開。 可以透過param傳遞引數。
2。include標籤:
和指令相比,為動態包含,被包含介面和傑介面都生成Java檔案和class檔案
3。tablib標籤
引入jstl時使用
六、web的四大域物件:
pageContext(page域):作用範圍是整個JSP頁面,是四大作用域中最小的一個;生命週期是當對JSP的請求時開始,當響應結束時銷燬。
Request:作用範圍是整個請求鏈(請求轉發也存在);生命週期是在service方法呼叫前由伺服器建立,傳入service方法。整個請求結束,request生命結束。
Session:作用範圍是一次會話。
servletContext(application域):作用範圍是整個Web應用。當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。
四個域的作用域範圍大小:PageContext (page域) < request < session < servletContext(application域)