注:本文編寫友善自己以後用到時查閱
三大指令:include、 page、taglib
include指令:
作用: 在目前頁面用于包含其他頁面
文法: <%@include file="xxx.jsp"%>
注意:
1)原理是把被包含的頁面(xxx.jsp)的内容翻譯到包含頁面中,合并成翻譯成一 個java源檔案,再編譯運作,這種包含叫靜态包含(源碼包含)
2)如果使用靜态包含,被包含頁面中不需要出現全局的html标簽了!!!(如html、head、 body 當然出現也不會報錯)
page指令:
作用: 告訴tomcat伺服器如何把jsp檔案翻譯成java檔案
預設寫法:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
屬性介紹:
language="java" //告訴伺服器使用什麼動态語言來翻譯jsp檔案
import="java.util.*" //告訴伺服器java檔案使用什麼包導入包,多個包之間用逗号分割
pageEncoding="utf-8" //告訴伺服器使用什麼編碼翻譯jsp檔案(成java檔案)
注意:在開發工具中,以後隻需要設定pageEncoding即可解決中文亂碼問題,因為contentType屬性會預設設定和pageEncoding一緻
contentType="text/html; charset=utf-8" //伺服器發送浏覽器的資料類型和内容編碼
errorPage="error.jsp" //配置了之後,當頁面運作出錯後,會跳轉到對應的錯誤頁面
isErrorPage="false" //預設為false,當設為true後,可以使用内置對象exception,否則不能使用
buffer="8kb" //out内置對象的款存大小,當超過款存後,立馬向浏覽器中寫出内容
session="true" //是否可以使用内置對象session,預設true
isELIgnored="false" //是否忽略EL表達式,預設false
taglib指令:
作用:用于導入jstl标簽庫
9個内置對象
内置對象 | 對應的類型 | 解釋 |
request | HttpServletRequest | |
response | HttpServletResponse | |
config | ServletConfig | |
application | ServletContext | |
session | HttpSession | |
exception | Throwable | |
page | Object(this) | 目前頁面編譯後的class |
out | JspWriter | |
pageContext | PageContext |
pageContext對象:
pageContext對象的類型是PageContext,叫jsp的上下文對象
1)可以擷取其他八個内置對象
如:
1 HttpServletRequest request= pageContext.getRequest(); //等價于request内置對象
2 HttpServletResponse response = pageContext.getResponse(); ////等價于response内置對象
3 HttpSession session = pageContext.getSession(); //...
4 JspWriter out = pageContext.getOut(); //...
5
6 ...
2)本身是一個域對象
#四個域對象
context域 | |
HttpServletRequet | session域 |
request域 | |
page域 | |
作用: 儲存資料和擷取資料,用于共享資料 |
#儲存資料
1)預設情況下,儲存到page域
pageContext.setAttribute("name");
2)可以向四個域對象儲存資料
pageContext.setAttribute("name",域範圍常量)
#擷取資料
1)預設情況下,從page域擷取
pageContext.getAttribute("name")
2)可以從四個域中擷取資料
pageContext.getAttribute("name",域範圍常量)
#域範圍常量:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext..SESSION_SCOPE
PageContext.APPLICATION_SCOPE
3)自動在四個域中搜尋資料
pageContext.findAttribute("name"); //搜尋順序: page域 -> request域 -> session域- > context域(application域)