1. 程式人生 > >EL&JSTL筆記

EL&JSTL筆記

JSP

指令
作用:用於配置jsp頁面,匯入資原始檔
格式:
<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 … %>
分類:
1.page:配置JSP頁面
contentType:等同於response.setContentType()
設定響應體的mime型別以及字符集
設定當前jsp頁面的編碼(只能是高階的IDE才能生效,如果使用低階工具,則需要設定pageEncoding屬性設定當前頁面的字符集)
import:導包
errorPage:當前頁面發生異常後,會自動跳轉到指定的錯誤頁面
isErrorPage:標識當前頁面是否是錯誤頁面
true:是,可以使用內建物件exception
false:否,預設值,不能使用exception
2.include:頁面包含的,匯入頁面的資原始檔
<%@ include file=“top.jsp” %>
3.taglib:匯入資源
<%@ taglib prefix=“c” uri=“

http://java.sun.com/jsp/jstl/core” %>
prefix:字首,自定義的
註釋
html註釋:
<!-- -->:只能註釋html程式碼片段
jsp註釋:
<%-- --%>:可以註釋所有
內建物件
再jsp頁面中不需要建立,直接使用的物件
一共有9個:

變數名 真實型別 作用
pageContext PageContext 當前頁面共享資料,還可以獲取其他八個內建物件
request HttpServletRequest 一次請求訪問的多個資源
session HttpSession 一次會話的多個請求間
application ServletContext 所有使用者間共享資料
response HttpServletResponse 響應物件
page Object 當前頁面(Servlet)的物件,this
out JspWriter 輸出物件,資料輸出到頁面上
config ServletConfig Servlet的配置物件
exception Throwable 異常物件

開發模式

MVC
M:Model,模型,JavaBean
完成具體的業務操作,如查詢資料庫,封裝物件
V:View,檢視,jsp
展示資料
C:Controller,控制器,Servlet
獲取使用者的輸入,呼叫模型,將資料交給檢視進行展示
優點:
耦合性低,方便為何,可以利於分工協作
重用性高
缺點
使得專案架構變得複雜,對開發人員要求高

EL表示式

概念:Expression Language 表示式語言
作用:替換和簡化jsp頁面中java程式碼的編寫
語法:${表示式}
注意:
jsp預設支援el表示式,如果要忽略el表示式有兩種方式

設定jsp中的page指令:isELIgnored=“true” 忽略當前jsp頁面中所有的el表示式
${表示式}:忽略當前這個el表示式

使用:
運算:
運算子:
算數運算子:+ - * /(div) %(mod)
比較運算子:> < >= <= == !=
邏輯運算子: &(and) ||(or) !(not)
空運算子:empty
功能:用於判斷字串,集合,陣列物件是否為null或者長度是否為0
${empty list}:
${not empty list}:
獲取值
1.el表示式只能從域物件中獲取值
2.語法:
${域名稱.鍵名}:從指定域中獲取指定鍵的值
域名稱:
pageScope–>pageContext
requestScope–>request
sessionScope–>session
applicationScope–>application(ServletContext)
${鍵名}:表示依次從最小的域中查詢是否有該鍵對應的值,直到找到為止
獲取物件,List集合,Map集合的值
物件:
${域名稱.鍵名.屬性名}:本質上會呼叫物件的getter方法
List集合:
${域名稱.鍵名[索引]}
Map集合:
${域名稱.鍵名.key名稱}
${域名稱.鍵名.[“key名稱”]}
3.隱式物件:
el表示式中有11個隱式物件
pageContext:
獲取jsp其他八個內建物件
${pageContext.request.contextPath}:動態獲取虛擬目錄

JSTL

概念:JavaServer Pages Tag Library: JSP標準標籤庫
由apache組織提供的開源的免費的jsp標籤
作用:用於簡化和替換jsp頁面上的java程式碼
使用步驟:
1.匯入jstl相關jar包
2.引入標籤庫:taglib指令:<%@ taglib %>
3.使用標籤
常用的JSTL標籤
1.if:相當於java程式碼的if程式碼
屬性:
test:必須屬性,接收boolean表示式
如果表示式為true,則顯示if標籤體內容,反之不現實

一般情況下test配合el表示式一起使用
c:if沒有else情況,想要else情況,可以定義一個c:if標籤

2.choose:相當於java程式碼的switch語句
使用choose標籤宣告:相當於switch
使用when標籤宣告:相當於case
使用other標籤宣告:相當於default
3.foreach:相當於java程式碼的for語句
begin:起始值
end:結束值
step:步長
var:元素物件
varStatus:元素遍歷的屬性

三層架構

  1. 介面層(表示層):使用者看的得介面。使用者可以通過介面上的元件和伺服器進行互動
  2. 業務邏輯層:處理業務邏輯的。
  3. 資料訪問層:操作資料儲存檔案。