一、什么是JSP
? JSP:JavaServerPages(Java服務(wù)器端頁面)
? JSP就是HTML+Java代碼+JSP自身的東西組成
二、JSP由來
? Servlet技術(shù)生成動(dòng)態(tài)網(wǎng)頁的時(shí)候很麻煩,需要通過Response獲得輸出流,調(diào)用print方法進(jìn)行打印的。這種編程方式很麻煩,而且美工也不容易處理。SUN公司為了簡化動(dòng)態(tài)網(wǎng)頁開發(fā),推出了JSP
三、JSP的運(yùn)行原理
? JSP在執(zhí)行時(shí),會(huì)被服務(wù)器翻譯為Servlet編譯執(zhí)行的,JSP就是一個(gè)Servlet
四、JSP腳本元素
<%! %>:JSP聲明,翻譯成Servlet成員部分的內(nèi)容,聲明變量、方法、內(nèi)部類
<%= %>:翻譯成out.print()輸出的內(nèi)容,在service方法內(nèi)部,用于生成HTML頁面源碼
<% %>:用于嵌入Java代碼,會(huì)被翻譯成service方法內(nèi)部的代碼塊,聲明變量、內(nèi)部類
language屬性:聲明使用腳本的語言,目前只能是Java
? extends屬性:標(biāo)明JSP編譯成Servlet的時(shí)候繼承的類,默認(rèn)值是HttpJspBase
? session屬性:標(biāo)明JSP中是否可以直接使用session對(duì)象,默認(rèn)值是true
? buffer屬性:標(biāo)明JSP對(duì)客戶端輸出緩沖區(qū)的大小,默認(rèn)值8KB
? autoFlush屬性:如果緩沖區(qū)大小溢出,是否自動(dòng)刷出,默認(rèn)值true
import屬性:用于導(dǎo)入Java包或類
contentType屬性:標(biāo)明JSP被瀏覽器解析和打開的時(shí)候采用的默認(rèn)的字符集
pageEncoding屬性:JSP文件及JSP翻譯后的Servlet保存到硬盤上采用的字符集
? isErrorPage屬性:處理JSP頁面的異常
errorPage屬性:處理JSP頁面的異常
isELIgnored屬性:通知JSP是否忽略EL表達(dá)式
JSP的內(nèi)置對(duì)象有哪些(9大內(nèi)置對(duì)象)
? request:從客戶端向服務(wù)器發(fā)送的請(qǐng)求對(duì)象
? response:從服務(wù)器端向客戶端作出的響應(yīng)對(duì)象
? session:服務(wù)器為客戶端創(chuàng)建會(huì)話對(duì)象
? application:代表應(yīng)用,就是獲得的ServletContext對(duì)象
? out:向輸出流寫入內(nèi)容的對(duì)象
? page:當(dāng)前的JSP翻譯成Servlet后的對(duì)象的引用
? pageContext:本JSP頁面的上下文對(duì)象
? config:本JSP的ServletConfig對(duì)象
? exception:表示JSP頁面運(yùn)行時(shí)產(chǎn)生的異常對(duì)象
JSP的內(nèi)置對(duì)象具體類型
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletContext
out JspWriter
page Object
pageContext PageContext
config ServletConfig
exception Throwable
提供了page范圍的數(shù)據(jù)存取的方法
? 向page范圍中存入數(shù)據(jù)
? setAttribute(String name, Object value)
? 從page范圍獲取數(shù)據(jù)
? getAttribute(String name)
? 從page范圍移除數(shù)據(jù)
? removeAttribute(String name)
? 查詢屬性的方法
? findAttribute(String name)
通過這個(gè)對(duì)象獲得其它的8個(gè)內(nèi)置對(duì)象
? getException()
? getPage()
? getRequest()
? getResponse()
? getServletConfig()
? getServletContext()
? getSession()
? getOut()
常用的動(dòng)作標(biāo)簽
<jsp:forward/>:請(qǐng)求轉(zhuǎn)發(fā)
<jsp:include/>:包含(動(dòng)態(tài)包含)
<jsp:param/>:傳遞參數(shù)
EL:Expression Language(表達(dá)式語言)
EL作用
? EL和JSTL一起使用,取代JSP頁面中嵌入Java代碼的寫法
EL功能
? EL獲取數(shù)據(jù)
? EL執(zhí)行運(yùn)算
? EL獲取Web開發(fā)常用的對(duì)象
? EL調(diào)用Java方法
EL語法
? ${ EL表達(dá)式 }