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