* 分類: 1. page : 配置JSP頁面的 * contentType:等同于response.setContentType() 1. 設(shè)置響應(yīng)體的mime類型以及字符集 2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級(jí)的IDE才能生效,如果使用低級(jí)工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)" />
更新時(shí)間:2018-08-03 來源:黑馬程序員 瀏覽量:
JSP:
1. 指令
* 作用:用于配置JSP頁面,導(dǎo)入資源文件
* 格式:
<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
* 分類:
1. page : 配置JSP頁面的
* contentType:等同于response.setContentType()
1. 設(shè)置響應(yīng)體的mime類型以及字符集
2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級(jí)的IDE才能生效,如果使用低級(jí)工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)
* import:導(dǎo)包
* errorPage:當(dāng)前頁面發(fā)生異常后,會(huì)自動(dòng)跳轉(zhuǎn)到指定的錯(cuò)誤頁面
* isErrorPage:標(biāo)識(shí)當(dāng)前也是是否是錯(cuò)誤頁面。
* true:是,可以使用內(nèi)置對(duì)象exception
* false:否。默認(rèn)值。不可以使用內(nèi)置對(duì)象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:前綴,自定義的
2. 注釋:
1. html注釋:
<!-- -->:只能注釋html代碼片段
2. jsp注釋:推薦使用
<%-- --%>:可以注釋所有
3. 內(nèi)置對(duì)象
* 在jsp頁面中不需要?jiǎng)?chuàng)建,直接使用的對(duì)象
* 一共有9個(gè):
變量名 真實(shí)類型 作用
* pageContext PageContext 當(dāng)前頁面共享數(shù)據(jù),還可以獲取其他八個(gè)內(nèi)置對(duì)象
* request HttpServletRequest 一次請(qǐng)求訪問的多個(gè)資源(轉(zhuǎn)發(fā))
* session HttpSession 一次會(huì)話的多個(gè)請(qǐng)求間
* application ServletContext 所有用戶間共享數(shù)據(jù)
* response HttpServletResponse 響應(yīng)對(duì)象
* page Object 當(dāng)前頁面(Servlet)的對(duì)象 this
* out JspWriter 輸出對(duì)象,數(shù)據(jù)輸出到頁面上
* config ServletConfig Servlet的配置對(duì)象
* exception Throwable 異常對(duì)象
## MVC:開發(fā)模式
1. jsp演變歷史
1. 早期只有servlet,只能使用response輸出標(biāo)簽數(shù)據(jù),非常麻煩
2. 后來又jsp,簡(jiǎn)化了Servlet的開發(fā),如果過度使用jsp,在jsp中即寫大量的java代碼,有寫html表,造成難于維護(hù),難于分工協(xié)作
3. 再后來,java的web開發(fā),借鑒mvc開發(fā)模式,使得程序的設(shè)計(jì)更加合理性
2. MVC:
1. M:Model,模型。JavaBean
* 完成具體的業(yè)務(wù)操作,如:查詢數(shù)據(jù)庫(kù),封裝對(duì)象
2. V:View,視圖。JSP
* 展示數(shù)據(jù)
3. C:Controller,控制器。Servlet
* 獲取用戶的輸入
* 調(diào)用模型
* 將數(shù)據(jù)交給視圖進(jìn)行展示
* 優(yōu)缺點(diǎn):
1. 優(yōu)點(diǎn):
1. 耦合性低,方便維護(hù),可以利于分工協(xié)作
2. 重用性高
2. 缺點(diǎn):
1. 使得項(xiàng)目架構(gòu)變得復(fù)雜,對(duì)開發(fā)人員要求高
## EL表達(dá)式
1. 概念:Expression Language 表達(dá)式語言
2. 作用:替換和簡(jiǎn)化jsp頁面中java代碼的編寫
3. 語法:${表達(dá)式}
4. 注意:
* jsp默認(rèn)支持el表達(dá)式的。如果要忽略el表達(dá)式
1. 設(shè)置jsp中page指令中:isELIgnored="true" 忽略當(dāng)前jsp頁面中所有的el表達(dá)式
2. \${表達(dá)式} :忽略當(dāng)前這個(gè)el表達(dá)式
5. 使用:
1. 運(yùn)算:
* 運(yùn)算符:
1. 算數(shù)運(yùn)算符: + - * /(div) %(mod)
2. 比較運(yùn)算符: > < >= <= == !=
3. 邏輯運(yùn)算符: &&(and) ||(or) !(not)
4. 空運(yùn)算符: empty
* 功能:用于判斷字符串、集合、數(shù)組對(duì)象是否為null或者長(zhǎng)度是否為0
* ${empty list}:判斷字符串、集合、數(shù)組對(duì)象是否為null或者長(zhǎng)度為0
* ${not empty str}:表示判斷字符串、集合、數(shù)組對(duì)象是否不為null 并且 長(zhǎng)度>0
2. 獲取值
1. el表達(dá)式只能從域?qū)ο笾蝎@取值
2. 語法:
1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
* 域名稱:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
* 舉例:在request域中存儲(chǔ)了name=張三
* 獲?。?{requestScope.name}
2. ${鍵名}:表示依次從最小的域中查找是否有該鍵對(duì)應(yīng)的值,直到找到為止。
3. 獲取對(duì)象、List集合、Map集合的值
1. 對(duì)象:${域名稱.鍵名.屬性名}
* 本質(zhì)上會(huì)去調(diào)用對(duì)象的getter方法
2. List集合:${域名稱.鍵名[索引]}
3. Map集合:
* ${域名稱.鍵名.key名稱}
* ${域名稱.鍵名["key名稱"]}
3. 隱式對(duì)象:
* el表達(dá)式中有11個(gè)隱式對(duì)象
* pageContext:
* 獲取jsp其他八個(gè)內(nèi)置對(duì)象
* ${pageContext.request.contextPath}:動(dòng)態(tài)獲取虛擬目錄
## JSTL
1. 概念:JavaServer Pages Tag Library JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)
* 是由Apache組織提供的開源的免費(fèi)的jsp標(biāo)簽 <標(biāo)簽>
2. 作用:用于簡(jiǎn)化和替換jsp頁面上的java代碼
3. 使用步驟:
1. 導(dǎo)入jstl相關(guān)jar包
2. 引入標(biāo)簽庫(kù):taglib指令: <%@ taglib %>
3. 使用標(biāo)簽
4. 常用的JSTL標(biāo)簽
1. if:相當(dāng)于java代碼的if語句
1. 屬性:
* test 必須屬性,接受boolean表達(dá)式
* 如果表達(dá)式為true,則顯示if標(biāo)簽體內(nèi)容,如果為false,則不顯示標(biāo)簽體內(nèi)容
* 一般情況下,test屬性值會(huì)結(jié)合el表達(dá)式一起使用
2. 注意:
* c:if標(biāo)簽沒有else情況,想要else情況,則可以在定義一個(gè)c:if標(biāo)簽
2. choose:相當(dāng)于java代碼的switch語句
1. 使用choose標(biāo)簽聲明 相當(dāng)于switch聲明
2. 使用when標(biāo)簽做判斷 相當(dāng)于case
3. 使用otherwise標(biāo)簽做其他情況的聲明 相當(dāng)于default
3. foreach:相當(dāng)于java代碼的for語句
作者:黑馬程序員javaEE培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/