JavaWeb_5-MVC設計模式

2020-08-12 17:40:30

一、MV屬於三層架構裡的表示層

model模型 負責處理業務邏輯和進行數據互動(與 javabean,service,dao進行互動)

view檢視: jsp(無java程式碼)

control控制器: servlet(無頁面)

image-20200810093629461

image-20200810094023529

登錄:

由登錄頁面(html、jsp等模板技術)向控制器(servlet)發送請求,

拿到請求後要呼叫業務邏輯層(model)中的具體實現方法。處理完成後,根據結果成功與否再返回給用戶端頁面

servlet實現無頁面處理,可以用請求轉發或者重定向來進行頁面跳轉

jsp實現純顯示功能,無java指令碼<%%>,需要:

el 表達式(expression language)表達式語言,預設情況下jsp是支援el表達式的

jstl 標籤(java server page standard tag library)標準標籤庫,需要導jar包

image-20200810095702929

可以寫成

image-20200810095724091

二、el表達式(<%=%>)

只獲取值

2.1 爲什麼用?

jsp頁面巢狀大量的java程式碼,不易維護

簡化頁面

2.2 基礎語法結構

${表達式的值}

1.可以獲取作用域中存放的數據,四種作用域,通過鍵獲取值

同一個key,獲取的順序爲作用域從小到大

image-20200810102346476

2.el表達式的隱式物件

pageScope;requestScope;SessionScope;ApplicationScope

param:獲取參數,等同於getParamter

一堆數據,加下標

image-20200810104551213

3.處理物件

獲取物件後,不需要像jsp那樣做任何處理,拿出來直接用;

獲取物件屬性:前者可讀性較好

image-20200810103933643

4.處理陣列

通過下標獲取

image-20200810104253431

5.處理集合

推薦使用下標

image-20200810105002619

通過get

image-20200810105020446

6.進行運算

image-20200810105249847

7.進行判斷

結合判斷image-20200810105513440大於image-20200810105716316

小於lt;>=ge;<=le;==eq

等不等於nullimage-20200810105822094

三、jstl標籤(<%%>)

解決頁面的邏輯問題

3.1分類

3.1.1核心標籤庫 c標籤 由java類實現

匯入標籤庫

image-20200810115217755

取個別名,一般叫做c(core)

image-20200810115408228

1.out輸出

image-20200810115545847

2.set 設定值,預設將值存放到pageContext作用域中,

得到值爲zhangsan

image-20200810120018132

可以指定作用域的範圍

image-20200810120730477

property和target(沒啥實用價值)

image-20200810120707235

3.remove 相當於removeAttribute

image-20200810120840410

4.if條件

test相當於括號內的條件語句

image-20200810121239664

登錄,沒有else,再寫一條

image-20200810121518681

  • 完善:

使用者的相關請求都放在一個servlet中

image-20200810141732506

UserServlet中,沒有進行任何的頁面展示,只是控制請求

image-20200810144653852

5.foreach

用的不多

image-20200810154005003

一般是遍歷集合元素

image-20200810154637760

索引是從0開始,count從1開始

image-20200810154857203

6.forTokens

image-20200810155206312

7.choose

image-20200810155442633

3.1.2格式化(國際化)標籤庫 fmt

1.對日期的操作

image-20200810171732587

2.對number的操作

更多的是做一些小數的控制

image-20200810172139691

3.國際化的操作

根據你瀏覽器的語言自動轉換

新建一個baseName.properties 將語言翻譯成unicode格式

image-20200810172625288

英語和中文

image-20200810174238426

image-20200810173359107

用basename標籤進行選擇語言

image-20200810173748873

基本上所有的框架都支援國際化

3.1.3 XML標籤庫 xml解析xml檔案(不會用,會在java裡解析)

3.1.4SQL標籤庫 sql 操作數據庫(不會用,java裡)

3.1.5函數標籤庫 處理字串的函數

匯入:

image-20200810174524424

大多數用於處理字串:

image-20200810174729680

擷取字串:

image-20200810174706838

四、自定義標籤

taglib;tld檔案

uri比較重要

image-20200810160027903

image-20200810160404616

image-20200810160640947

  • 完成功能:

完成商品列表的展示

首頁展示以時間降序,展示8個商品