【Java Web】JSP總結
阿新 • • 發佈:2018-12-23
JSP 結構
網路伺服器需要一個JSP引擎,也就是一個容器來處理JSP頁面。容器負責截獲對JSP頁面的請求。本教程使用內嵌JSP容器的Apache來支援JSP開發。
JSP容器與Web伺服器協同合作,為JSP的正常執行提供必要的執行環境和其他服務,並且能夠正確識別專屬於JSP網頁的特殊元素。
下圖顯示了JSP容器和JSP檔案在Web應用中所處的位置。
JSP處理
以下步驟表明了Web伺服器是如何使用JSP來建立網頁的:
- 就像其他普通的網頁一樣,您的瀏覽器傳送一個HTTP請求給伺服器。
- Web伺服器識別出這是一個對JSP網頁的請求,並且將該請求傳遞給JSP引擎。通過使用URL或者.jsp檔案來完成。
- JSP引擎從磁碟中載入JSP檔案,然後將它們轉化為servlet。這種轉化只是簡單地將所有模板文字改用println()語句,並且將所有的JSP元素轉化成Java程式碼。
- JSP引擎將servlet編譯成可執行類,並且將原始請求傳遞給servlet引擎。
- Web伺服器的某元件將會呼叫servlet引擎,然後載入並執行servlet類。在執行過程中,servlet產生HTML格式的輸出並將其內嵌於HTTP response中上交給Web伺服器。
- Web伺服器以靜態HTML網頁的形式將HTTP response返回到您的瀏覽器中。
- 最終,Web瀏覽器處理HTTP response中動態產生的HTML網頁,就好像在處理靜態網頁一樣。
基礎
- JSP中用<% %>包裹起來的Java程式碼會被新增到Servlet中的service方法中。所以用<% %>包裹起來的Java程式碼中不能宣告帶有訪問控制符的變數和方法。
- JSP中用<%! %>包裹起來的Java程式碼不會被新增到service方法中。所以可以被用來宣告成員變數和方法以及靜態程式碼塊。
- JSP中用<%= %>包裹起來的Java程式碼稱之為表示式程式碼塊,其表示式的結果會被顯示到網頁上。
JSP內建物件
名字 | 型別 |
---|---|
out |
JspWriter |
request | HttpServletRequest |
response | HttpServletResponse |
session | HttpSession |
pageContext | PageContext |
application | ServletContext |
config | ServletConfig |
page | Object(this) |
exception | Throwable |
JSP四大域
名字 | |
---|---|
pageContext | 只在當前頁面生存,一旦當前頁面關閉他也就死了 |
request | 只在本次請求中生存,可以進行頁面的跳轉,但一旦重新整理他就死了 |
session | 只在本次會話中生存,可以進行頁面的重新整理,但是一旦關閉瀏覽器他就死了 |
application | 只在本次活動中生存,只要伺服器不關閉,他就不會死,一旦伺服器關閉了或者重啟他就死了 |
它們都有這樣的兩個方法:
-
setAttribute(“屬性名”,“屬性值”);
-
getAttribute(“屬性名”);—>返回 屬性值
JSP指令
Page指令
Page指令為容器提供當前頁面的使用說明。一個JSP頁面可以包含多個page指令。
Page指令的語法格式:
<%@ page attribute="value" %>
等價的XML格式:
<jsp:directive.page attribute="value" />
屬性
下表列出與Page指令相關的屬性:
屬性 | 描述 |
---|---|
buffer | 指定out物件使用緩衝區的大小 |
autoFlush | 控制out物件的 快取區 |
contentType | 指定當前JSP頁面的MIME型別和字元編碼 |
errorPage | 指定當JSP頁面發生異常時需要轉向的錯誤處理頁面 |
isErrorPage | 指定當前頁面是否可以作為另一個JSP頁面的錯誤處理頁面 |
extends | 指定servlet從哪一個類繼承 |
import | 匯入要使用的Java類 |
info | 定義JSP頁面的描述資訊 |
isThreadSafe | 指定對JSP頁面的訪問是否為執行緒安全 |
language | 定義JSP頁面所用的指令碼語言,預設是Java |
session | 指定JSP頁面是否使用session |
isELIgnored | 指定是否執行EL表示式 |
isScriptingEnabled | 確定指令碼元素能否被使用 |
JSP動作
語法 | 描述 |
---|---|
jsp:include | 在頁面被請求的時候引入一個檔案。 |
jsp:forward | 把請求轉到一個新的頁面。 |