一、今日內(nèi)容
1. jsp概念
2. jsp原理
3. jsp內(nèi)置對象
二雳旅、JSP
1. jsp概念
1. 概念:
* Java Server Pages: java服務(wù)器端頁面
* 可以理解為:一個特殊的頁面世剖,其中既可以指定定義html標(biāo)簽,又可以定義java代碼
* 作用:用于簡化書寫?妨铩4就妗!
* 因為客戶端的頁面有服務(wù)器端回寫資源非竿,servlet需要將動態(tài)資源和靜態(tài)資源通過getWriter或getOutputStream將所有消息通過響應(yīng)體寫到客戶端的瀏覽器上蜕着。而使用jsp頁面不需要我們手動將資源寫回瀏覽器,它回自動將資源寫回
2. 指令
* 作用:用于配置JSP頁面红柱,導(dǎo)入資源文件
* 格式:
<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
* 分類:
1. page : 配置JSP頁面的
* 重要屬性:
* contentType:等同于response.setContentType()
1. 設(shè)置響應(yīng)體的mime類型以及字符集
2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級的IDE才能生效承匣,如果使用低級工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)
* import:導(dǎo)包
* errorPage:當(dāng)前頁面發(fā)生異常后锤悄,會自動跳轉(zhuǎn)到指定的錯誤頁面
* isErrorPage:標(biāo)識當(dāng)前也是是否是錯誤頁面韧骗。
* true:是,可以使用內(nèi)置對象-exception
* false:否零聚。默認(rèn)值袍暴。不可以使用內(nèi)置對象-exception
2. include : 導(dǎo)入其他頁面,作為子界面
* <%@include file="top.jsp"%>
3. taglib : 導(dǎo)入資源
* <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
* prefix:前綴隶症,自定義的政模,一般用c
3. 注釋:
1. html注釋:
<!-- -->:只能注釋html代碼片段
2. jsp注釋:推薦使用
<%-- --%>:可以注釋所有
2. jsp原理
* 原理
* JSP本質(zhì)上就是一個Servlet,它繼承了HttpServlet
[圖片上傳失敗...(image-4284da-1584450403568)]
下圖可以看見沿腰,其將資源回寫給瀏覽器:
在這里插入圖片描述
3.jsp內(nèi)置對象
JSP的內(nèi)置對象:
* 在jsp頁面中不需要獲取和創(chuàng)建览徒,可以直接使用的對象
* jsp一共有9個內(nèi)置對象。
變量名 真實類型 作用
1. pageContext--\ PageContext 當(dāng)前頁面共享數(shù)據(jù)颂龙,還可以獲取其他八個內(nèi)置對象
2. request ---|這四個都是域?qū)ο?HttpServletRequest 一次請求訪問的多個資源(轉(zhuǎn)發(fā))
3. session ---| HttpSession 一次會話的多個請求間
4. application--/ ServletContext 所有用戶間共享數(shù)據(jù)
5. response HttpServletResponse 響應(yīng)對象
6. page Object 當(dāng)前頁面(Servlet)的對象 this
7. out JspWriter 輸出對象习蓬,數(shù)據(jù)輸出到頁面上
8. config ServletConfig Servlet的配置對象
9. exception Throwable 異常對象
* out:字符輸出流對象纽什。可以將數(shù)據(jù)輸出到頁面上躲叼。和response.getWriter()類似
* response.getWriter()和out.write()的區(qū)別:
* 在tomcat服務(wù)器真正給客戶端做出響應(yīng)之前芦缰,會先找response緩沖區(qū)數(shù)據(jù),再找out緩沖區(qū)數(shù)據(jù)枫慷。所以---response.getWriter()數(shù)據(jù)輸出永遠(yuǎn)在out.write()之前
* 推薦使用out让蕾,因為service方法內(nèi)部使用的是out輸出,統(tǒng)一使用比較好或听。