當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
ELJSTL笔记
今日內(nèi)容
1. JSP:1. 指令2. 注釋3. 內(nèi)置對(duì)象2. MVC開(kāi)發(fā)模式 3. EL表達(dá)式 4. JSTL標(biāo)簽 5. 三層架構(gòu)JSP:
1. 指令* 作用:用于配置JSP頁(yè)面,導(dǎo)入資源文件* 格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>* 分類:1. page : 配置JSP頁(yè)面的* contentType:等同于response.setContentType()1. 設(shè)置響應(yīng)體的mime類型以及字符集2. 設(shè)置當(dāng)前jsp頁(yè)面的編碼(只能是高級(jí)的IDE才能生效,如果使用低級(jí)工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁(yè)面的字符集)* import:導(dǎo)包* errorPage:當(dāng)前頁(yè)面發(fā)生異常后,會(huì)自動(dòng)跳轉(zhuǎn)到指定的錯(cuò)誤頁(yè)面* isErrorPage:標(biāo)識(shí)當(dāng)前也是是否是錯(cuò)誤頁(yè)面。* true:是,可以使用內(nèi)置對(duì)象exception* false:否。默認(rèn)值。不可以使用內(nèi)置對(duì)象exception2. include : 頁(yè)面包含的。導(dǎo)入頁(yè)面的資源文件* <%@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頁(yè)面中不需要?jiǎng)?chuàng)建,直接使用的對(duì)象* 一共有9個(gè):變量名 真實(shí)類型 作用* pageContext PageContext 當(dāng)前頁(yè)面共享數(shù)據(jù),還可以獲取其他八個(gè)內(nèi)置對(duì)象* request HttpServletRequest 一次請(qǐng)求訪問(wèn)的多個(gè)資源(轉(zhuǎn)發(fā))* session HttpSession 一次會(huì)話的多個(gè)請(qǐng)求間* application ServletContext 所有用戶間共享數(shù)據(jù)* response HttpServletResponse 響應(yīng)對(duì)象* page Object 當(dāng)前頁(yè)面(Servlet)的對(duì)象 this* out JspWriter 輸出對(duì)象,數(shù)據(jù)輸出到頁(yè)面上* config ServletConfig Servlet的配置對(duì)象* exception Throwable 異常對(duì)象MVC:開(kāi)發(fā)模式
1. jsp演變歷史1. 早期只有servlet,只能使用response輸出標(biāo)簽數(shù)據(jù),非常麻煩2. 后來(lái)又jsp,簡(jiǎn)化了Servlet的開(kāi)發(fā),如果過(guò)度使用jsp,在jsp中即寫(xiě)大量的java代碼,有寫(xiě)html表,造成難于維護(hù),難于分工協(xié)作3. 再后來(lái),java的web開(kāi)發(fā),借鑒mvc開(kāi)發(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ì)開(kāi)發(fā)人員要求高EL表達(dá)式
1. 概念:Expression Language 表達(dá)式語(yǔ)言 2. 作用:替換和簡(jiǎn)化jsp頁(yè)面中java代碼的編寫(xiě) 3. 語(yǔ)法:${表達(dá)式} 4. 注意:* jsp默認(rèn)支持el表達(dá)式的。如果要忽略el表達(dá)式1. 設(shè)置jsp中page指令中:isELIgnored="true" 忽略當(dāng)前jsp頁(yè)面中所有的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)度>02. 獲取值1. el表達(dá)式只能從域?qū)ο笾蝎@取值2. 語(yǔ)法:1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值* 域名稱:1. pageScope --> pageContext2. requestScope --> request3. sessionScope --> session4. 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組織提供的開(kāi)源的免費(fèi)的jsp標(biāo)簽 <標(biāo)簽>2. 作用:用于簡(jiǎn)化和替換jsp頁(yè)面上的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語(yǔ)句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)簽沒(méi)有else情況,想要else情況,則可以在定義一個(gè)c:if標(biāo)簽2. choose:相當(dāng)于java代碼的switch語(yǔ)句1. 使用choose標(biāo)簽聲明 相當(dāng)于switch聲明2. 使用when標(biāo)簽做判斷 相當(dāng)于case3. 使用otherwise標(biāo)簽做其他情況的聲明 相當(dāng)于default3. foreach:相當(dāng)于java代碼的for語(yǔ)句5. 練習(xí):* 需求:在request域中有一個(gè)存有User對(duì)象的List集合。需要使用jstl+el將list集合數(shù)據(jù)展示到j(luò)sp頁(yè)面的表格table中三層架構(gòu):軟件設(shè)計(jì)架構(gòu)
1. 界面層(表示層):用戶看的得界面。用戶可以通過(guò)界面上的組件和服務(wù)器進(jìn)行交互 2. 業(yè)務(wù)邏輯層:處理業(yè)務(wù)邏輯的。 3. 數(shù)據(jù)訪問(wèn)層:操作數(shù)據(jù)存儲(chǔ)文件。案例:用戶信息列表展示
1. 需求:用戶信息的增刪改查操作 2. 設(shè)計(jì):1. 技術(shù)選型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat2. 數(shù)據(jù)庫(kù)設(shè)計(jì):create database day17; -- 創(chuàng)建數(shù)據(jù)庫(kù)use day17; -- 使用數(shù)據(jù)庫(kù)create table user( -- 創(chuàng)建表id int primary key auto_increment,name varchar(20) not null,gender varchar(5),age int,address varchar(32),qq varchar(20),email varchar(50));3. 開(kāi)發(fā):1. 環(huán)境搭建1. 創(chuàng)建數(shù)據(jù)庫(kù)環(huán)境2. 創(chuàng)建項(xiàng)目,導(dǎo)入需要的jar包2. 編碼4. 測(cè)試 5. 部署運(yùn)維總結(jié)
- 上一篇: TomcatServlet笔记
- 下一篇: AjaxJson笔记(1)