JSP三個指令及9個內置對象
註:本文編寫方便自己以後用到時查閱
三大指令:include、 page、taglib作用: 在當前頁面用於包含其他頁面
語法: <[email protected] file="xxx.jsp"%>
註意:
1)原理是把被包含的頁面(xxx.jsp)的內容翻譯到包含頁面中,合並成翻譯成一 個java源文件,再編譯運行,這種包含叫靜態包含(源碼包含)
2)如果使用靜態包含,被包含頁面中不需要出現全局的html標簽了!!!(如html、head、 body 當然出現也不會報錯)
作用: 告訴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
作用:用於導入jstl標簽庫
9個內置對象
內置對象 | 對應的類型 | 解釋 |
request | HttpServletRequest | |
response | HttpServletResponse | |
config | ServletConfig | |
application | ServletContext | |
session | HttpSession | |
exception | Throwable | |
page | Object(this) | 當前頁面編譯後的class |
out | JspWriter | |
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)本身是一個域對象
#四個域對象
ServletContext | context域 |
HttpServletRequet | session域 |
HttpSession | request域 |
PageContext | 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域)
JSP三個指令及9個內置對象