Java Server Pages,伺服器端負責頁面展示的技術,可以巢狀java語言,以取代使用Servlet產生頁面的方式,底層被轉換為Servlet 。
依靠自身就能唯一確定資源的路徑,內容上以協定開頭,如在HTTP請求中以http開頭。
必須依賴其他路徑才能唯一確定資源的路徑,內容上不以協定開頭。
訪問路徑+資源名稱,資源名稱是最後一個「/」後面的內容,其餘是訪問路徑。
# 放在WEB-INF目錄下的資源只能透過程式轉發訪問,無法透過瀏覽器直接訪問,比較安全。重定向執行時是將位址發給瀏覽器,由瀏覽器發出請求,因此程式內部的重新導向也無法直接存取WEB-INF目錄下的資源。
在WEB-INF目錄下的資源內部只能採用相對於伺服器的路徑,不能採用相對於目前資源存取路徑的路徑,即只能採用以下路徑形式:
${pageContext.request.contextPath}/xxx
#所有的重定向只能採用相對於伺服器的路徑形式,因為重定向可以存取其他項目中的資源,路徑的起點是伺服器。根據網址列位址的變化,HTML頁面、JSP頁面中的所有請求都可以看做重定向,所有的路徑都必須採用相對於伺服器的形式。
所有的轉送只能採用相對於專案的路徑形式,因為轉送只能存取同一專案內的資源。
用於設定在整個JSP頁面內都有效的訊息,指令標識的語法格式:
<%@ tagName attr="value"...%>
JSP中有三種指令標識:
##主要用到的屬性有:
contentType:設定頁面的MIME型別與編碼方式。
isErrorPage:將頁面設定為錯誤處理頁面,通常與內建物件exception結合使用,用來處理另一個頁面的錯誤訊息。
errorPage:為頁面指定錯誤處理頁面,當頁面執行出現錯誤時,跳到指定頁面。
<%@ include file="path"%>
靜態包含,用於將一個JSP頁麵包含在當前頁面中。所謂靜態包含指的是,被包含的JSP頁面原樣呈現在包含頁面中,與包含頁麵生成同一Servlet。
<%@ taglib prefix="c"uri=""%>
用於引入標籤庫到目前頁面,使用指定的前綴來引用標籤庫中的標籤。
JSP中有3個動作標識:
動態包含,用於將一個JSP頁麵包含在目前頁面中。所謂動態包含指的是,被包含頁經編譯後呈現在目前頁面中,包含頁面與被包含頁面各自產生一個Servlet。
<jsp:forward page="url"/>
3.
<jsp:param name="paramName"value="paramValue>
與
# request:用於取得請求訊息,例如請求參數及客戶端訊息。
response:用於回應客戶端請求。
out:用於輸出回應訊息。
session:代表瀏覽器與伺服器的一次會話。 HTTP協議是無狀態協議,回應結束後,會話終斷,不會保存會話訊息,session
就是為了保存會話資訊產生的。
application:代表應用程序,主要用於保存整個應用層面的資訊。
page:代表目前頁面。
pageContext:頁面上下文,透過該對象可以取得其他對象,例如request/session/application等。
config:用於取得伺服器的設定訊息,初始化Servlet。
exception:用於取得頁面的錯誤訊息。
# 在JSP頁面可以插入java程式碼,插入的3種形式:
<%! xxxxxx %>:宣告程式碼區塊,用於宣告全域變數或方法。
<% xxxxx %>:java程式碼區塊,可以在其中編寫任何java程式碼,該程式碼區塊最終被編寫在方法中。
<%= xxxxx %>:輸出程式碼區塊,用於向JSP頁面輸出內容。
JSP的改進:
1)JSP是標籤式的文字檔案(Servlet是Java檔案)
2)JSP不需要編譯(其實是由伺服器監控JSP檔案的變化,再將其翻譯成Servlet 程式碼)
伺服器進行編譯並在第一次要求時創建一個Servlet實例。所以,第一次造訪JSP頁面時會後延遲
3)JSP不用寫設定檔
4)JSP以靜態程式碼為主,Java程式碼為輔。 Servlet反之。
5)是J2EE藍圖的一部份(Servlet、JSP以及EJB是J2EE的三大元件)
JSP本質上來說核心或Servlet,但與Servlet不是替代關係而是一種互補的關係。
JSP適合於寫入顯示層的動態頁面,而Servlet則適合寫入控制層的業務控制(頁面轉送)。
JSP往純標籤方向發展,Servlet往純程式碼方向發展,他們以Servlet核心(請求響應式的工作方式)往兩個方向發展。
以上是JSP基礎知識點總匯的詳細內容。更多資訊請關注PHP中文網其他相關文章!