Web-動態頁面

<!doctype html>01 - JavaEE- JSP - EL&JSTLhtml

Web-動態頁面

 
 
 
x
 
 
 
 
1. JSP:
1. 指令
2. 註釋
3. 內置對象
2. MVC開發模式
3. EL表達式
4. JSTL標籤
5. 三層架構
 

 

JSP:

 
 
 
x
 
 
 
 
1. 指令
* 做用:用於配置JSP頁面,導入資源文件
* 格式:
<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
* 分類:
1. page: 配置JSP頁面的
* contentType:等同於response.setContentType()
1. 設置響應體的mime類型以及字符集
2. 設置當前jsp頁面的編碼(只能是高級的IDE才能生效,若是使用低級工具,則須要設置pageEncoding屬性設置當前頁面的字符集)
* import:導包
* errorPage:當前頁面發生異常後,會自動跳轉到指定的錯誤頁面
* isErrorPage:標識當前也是是不是錯誤頁面。
* true:是,可使用內置對象exception
* false:否。默認值。不可使用內置對象exception
 
 
 
 
x
 
 
 
 
2. include: 頁面包含的。導入頁面的資源文件
* <%@include file="top.jsp"%>
3. taglib: 導入資源
* <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
* prefix:前綴,自定義的
2. 註釋:
1. html註釋:
<!-- -->:只能註釋html代碼片斷
2. jsp註釋:推薦使用
<%-- --%>:能夠註釋全部
 
 
 
 
x
 
 
 
 
3. 內置對象
* 在jsp頁面中不須要建立,直接使用的對象
* 一共有9個:
變量名真實類型做用
* pageContextPageContext當前頁面共享數據,還能夠獲取其餘八個內置對象
* requestHttpServletRequest一次請求訪問的多個資源(轉發)
* sessionHttpSession一次會話的多個請求間
* applicationServletContext全部用戶間共享數據
* responseHttpServletResponse響應對象
* pageObject當前頁面(Servlet)的對象  this
* outJspWriter輸出對象,數據輸出到頁面上
* configServletConfigServlet的配置對象
* exceptionThrowable異常對象
 

 

MVC:開發模式

 
 
 
xxxxxxxxxx
 
 
 
 
1. jsp演變歷史
1. 早期只有servlet,只能使用response輸出標籤數據,很是麻煩
2. 後來又jsp,簡化了Servlet的開發,若是過分使用jsp,在jsp中即寫大量的java代碼,有寫html表,形成難於維護,難於分工協做
3. 再後來,java的web開發,借鑑mvc開發模式,使得程序的設計更加合理性
2. MVC:
1. M:Model,模型。JavaBean
* 完成具體的業務操做,如:查詢數據庫,封裝對象
2. V:View,視圖。JSP
* 展現數據
3. C:Controller,控制器。Servlet
* 獲取用戶的輸入
* 調用模型
* 將數據交給視圖進行展現
 
 
 
 
x
 
 
 
 
* 優缺點:
1. 優勢:
1. 耦合性低,方便維護,能夠利於分工協做
2. 重用性高
2. 缺點:
1. 使得項目架構變得複雜,對開發人員要求高
 

 

 

EL表達式

 
 
 
x
 
 
 
 
1. 概念:Expression Language 表達式語言
2. 做用:替換和簡化jsp頁面中java代碼的編寫
3. 語法:${表達式}
4. 注意:
* jsp默認支持el表達式的。若是要忽略el表達式
1. 設置jsp中page指令中:isELIgnored="true" 忽略當前jsp頁面中全部的el表達式
2. \${表達式} :忽略當前這個el表達式
 
 
 
 
xxxxxxxxxx
 
 
 
 
5. 使用:
1. 運算:
* 運算符:
1. 算數運算符: + - * /(div) %(mod)
2. 比較運算符: > < >= <= == !=
3. 邏輯運算符: &&(and) ||(or) !(not)
4. 空運算符: empty
* 功能:用於判斷字符串、集合、數組對象是否爲null或者長度是否爲0
* ${empty list}:判斷字符串、集合、數組對象是否爲null或者長度爲0
* ${not empty str}:表示判斷字符串、集合、數組對象是否不爲null 而且 長度>0
2. 獲取值
1. el表達式只能從域對象中獲取值
2. 語法:
1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
* 域名稱:
1. pageScope--> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
* 舉例:在request域中存儲了name=張三
* 獲取:${requestScope.name}
2. ${鍵名}:表示依次從最小的域中查找是否有該鍵對應的值,直到找到爲止。
 
  1. 獲取對象、List集合、Map集合的值java

    1. 對象:${域名稱.鍵名.屬性名}node

      • 本質上會去調用對象的getter方法
 
 
 
x
 
 
 
 
2. List集合:${域名稱.鍵名[索引]}
3. Map集合:
* ${域名稱.鍵名.key名稱}
* ${域名稱.鍵名["key名稱"]}
 
 
 
 
xxxxxxxxxx
 
 
 
 
3. 隱式對象:
* pageContext:
* 獲取jsp其餘八個內置對象
* ${pageContext.request.contextPath}:動態獲取虛擬目錄
 

 

JSTL

 
 
 
x
 
 
 
 
1. 概念:JavaServer Pages Tag Library  JSP標準標籤庫
* 是由Apache組織提供的開源的免費的jsp標籤<標籤>
2. 做用:用於簡化和替換jsp頁面上的java代碼
3. 使用步驟:
1. 導入jstl相關jar包
2. 引入標籤庫:taglib指令:  <%@ taglib %>
3. 使用標籤
4. 經常使用的JSTL標籤
1. if:至關於java代碼的if語句
1. 屬性:
            * test 必須屬性,接受boolean表達式
                * 若是表達式爲true,則顯示if標籤體內容,若是爲false,則不顯示標籤體內容
                * 通常狀況下,test屬性值會結合el表達式一塊兒使用
    2. 注意:
        * c:if標籤沒有else狀況,想要else狀況,則能夠在定義一個c:if標籤
2. choose:至關於java代碼的switch語句
1. 使用choose標籤聲明         至關於switch聲明
        2. 使用when標籤作判斷         至關於case
        3. 使用otherwise標籤作其餘狀況的聲明    至關於default
3. foreach:至關於java代碼的for語句
5. 練習:
* 需求:在request域中有一個存有User對象的List集合。須要使用jstl+el將list集合數據展現到jsp頁面的表格table中
 

 

 

三層架構:軟件設計架構

 
 
 
xxxxxxxxxx
 
 
 
 
1. 界面層(表示層):用戶看的得界面。用戶能夠經過界面上的組件和服務器進行交互
2. 業務邏輯層:處理業務邏輯的。
3. 數據訪問層:操做數據存儲文件。
相關文章
相關標籤/搜索