JSP學習筆記


Java Server Pages(JSP)

  JSP文件是java服務器端的頁面,即可以定義html標籤,也可以定義Java代碼,用於實現動態的網頁開發。JSP文件在服務器中需要編譯成class字節碼文件才能被解析,所以需要將JSP文件先轉爲Java文件。因爲轉換後的Java文件下定義的是表示JSP文件的類xxx_jsp,而xxx_jsp類繼承自org.apache.jasper.runtime.HttpJspBase類,又因爲HttpJspBase類是繼承自HttpServlet類的,所以JSP文件實質上是一個Servlet。

<!-- JSP頁面的基本格式 -->
<html>
    <head>
           <title>JSP頁面</title>
    </head>
    <body>
    	   <h1>Hello World!</h1>
           <%
              System.out.println("Hello World!");
           %>
    </body>
</html>

JSP文件的圖示處理方式:
在這裏插入圖片描述
JSP文件處理的具體方式:

  1. 客戶端瀏覽器向服務器發送一個請求
  2. 服務器識別出JSP頁面的請求,並且將請求傳遞給JSP引擎
  3. JSP引擎將JSP文件裏的所有JSP元素轉爲Java代碼(Servlet)
  4. JSP引擎將該Java代碼編譯成可執行類,並將請求傳遞給Servlet引擎
  5. 服務器調用Servlet引擎,然後載入並執行Servlet類。在執行過程中Servlet產生 HTML格式的輸出,並將其內嵌於HTTP的response中上傳給服務器
  6. 服務器以靜態HTML網頁的形式將response返回到客戶端瀏覽器中

JSP腳本:定義Java代碼的形式
  1. <% [code] %> :定義的Java代碼在Servlet類中的service方法中(一般用於定義執行特定內容的方法)
  2. <%! [code] %> :定義的Java代碼在Servlet類中的成員位置(一般用於定義成員變量)
  3. <%= [code] %> :定義的Java代碼輸出到頁面上(一般用於定義指定內容的輸出)
  4. <%@ page name = value%> :定義網頁的依賴屬性name(腳本語言、緩存需求)
  5. <%@ include file = path %> :包含其他文件(路徑爲一個相對的url地址path)
  6. <%@ taglib uri = path prefix = value %> :引入標籤庫的定義(path爲標籤庫的位置,prefix指定標籤庫的前綴)

JSP的九個內置對象(隱含對象)
對象 描述
request HttpServletRequest類的實例,客戶端請求一個JSP頁面的時候,JSP引擎就會創建一個新的request對象來代表這個請求
response HttpServletResponse類的實例,JSP引擎還會創建一個新的response對象來進行請求的響應
out JspWriter類的實例,用來在response對象中寫入內容並響應到頁面中(按照順序寫入內容)
session HttpSession類的實例,用來在服務器中存儲客戶端中的相關信息
application ServletContext類的實例
config ServletConfig類的實例
pageContext PageContext類的實例,主要用來訪問頁面信息
page 頁面實例的引用,相當於Java代碼中的this關鍵字
Exception Exception類的對象,代表JSP頁面發生錯誤的異常對象
發佈了49 篇原創文章 · 獲贊 11 · 訪問量 3052
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章