淘淘商城第六天

2021-08-01 17:10:16 字數 4067 閱讀 5775

1、前台系統搭建

a)        taotao-rest:服務層沒有jsp頁面

b)       taotao-portal:門戶,表現層。

2、首頁分類列表展示

a)        使用ajax呼叫服務層的服務。

b)       跨域問題。使用jsonp解決。

今天內容

首頁大廣告位的實現。

1、cms系統的實現

2、發布服務

3、呼叫服務展示內容

首頁的內容需要動態管理,需要後台管理功能。

抽取首頁展示內容的共性:

1、有一張

2、有乙個連線

3、有乙個標題

4、有鏈結的提示

5、**

需要把內容進行分類,分類應該是乙個樹形結構。

在展示首頁時,可以根據分類取內容資訊,把內容展示到頁面。

在後台管理內容及內容分類的系統就叫做cms系統。

先實現內容的分類管理再實現內容管理。

3.1.1.1        需求分析

初始化樹形檢視的url:/content/category/list

引數是id,當前節點id屬性,應該根據此id查詢子節點列表。

返回值:包含id、text、state三個屬性的json資料列表

3.1.1.2        dao層

表結構:

sql語句:

根據parentid查詢節點列表

select * from `tb_content_category` whereparent_id = 30;

單錶查詢可以實現逆向工程生成的**。

3.1.1.3        service層

功能:接收parentid。根據parentid查詢節點列表,返回返回乙個easyui非同步tree要求的節點列表。每個節點包含三個屬性id、text、state三個屬性。可以使用eutreenode。

引數:id

返回值:list

@service

public

classcontentcategoryserviceimplimplementscontentcategoryservice

returnresultlist; }

3.1.1.4        controller

接收頁面傳遞過來的parentid,根據parentid查詢節點列表。返回list。需要響應json資料。

@controller

public

classcontentcategorycontroller

3.1.2.1        需求分析

請求的url:/content/category/create

引數:1、parentid父節點id

2、name:當前節點的名稱

返回值:taotaoresult。其中包含節點pojo物件。

3.1.2.2        dao層

可以使用逆向工程生成的**

3.1.2.3        service層

功能:接收兩個引數parentid父節點id、name:當前節點的名稱。向tb_content_category表中新增一條記錄。返回taotaoresult包含記錄的pojo物件。

需要返回主鍵資訊:

@override

publictaotaoresult insertcontentcategory(longparentid, string name)

//返回結果

returntaotaoresult.ok(

contentcategory

);

3.1.2.4        controller層

接收兩個引數parentid、name。呼叫service新增記錄。返回taotaoresult。應該返回json資料。

@responsebody

publictaotaoresult createcontentcategory(long parentid, string name)

接收表單中的內容,使用pojo接收。要求pojo的屬性要和表單中的name一致。呼叫service插入內容資訊。返回taotaoresult。json格式的資料。

@controller

public

classcontentcontroller

前端系統獲取後端系統提供的介面,如何獲取?

jsonp跨域請求

需要當首頁載入完畢後,大廣告位就應該顯示。沒有觸發事件。不是太合適。

優點:不需要二次請求,頁面直接載入內容資料。減少門戶系統的壓力。

缺點:需要延遲載入。不利於seo優化。

優點:有利於seo優化。可以在taotao-portal中對資料進行加工。

缺點:系統直接需要呼叫服務查詢內容資訊。多了一次http請求。

系統直接服務的呼叫,需要使用httpclient來實現。taotao-portal和taotao-rest是在同乙個區域網內部。速度非常快,呼叫時間可以忽略不計。

展示首頁內容功能,使用方案二實現。

根據內容的分類id查詢內容列表,從tb_content表中查詢。服務是乙個restful形式的服務。使用http協議傳遞json格式的資料。

從tb_content表中查詢,根據內容分類id查詢。是單錶查詢。可以使用逆向工程生成的**。

接收內容分類id,根據分類id查詢分類列表。返回乙個內容pojo列表。

引數:分類id

返回值:pojo列表

@service

public

classcontentserviceimplimplementscontentservice

發布服務。接收查詢引數。restful風格內容分類id應該從url中取。

/rest/content/list/

從url中取內容分類id,呼叫service查詢內容列表。返回內容列表。返回乙個json格式的資料。可以使用taotaoresult包裝此列表。

@controller

public

classcontentcontrollercatch(exception e)

} 需要把httpclient的jar包新增到工程中。只需要在工程中新增httpclient的依賴。

4.4.3.1        使用httpclient執行get請求

@test

public

voiddoget()throwsexception ")

privatestring rest_base_url;

@value("$")

privatestring rest_index_ad_url;

@override

publicstring getcontentlist()

returnjsonutils.objecttojson(

resultlist

); }catch(exception e)

return

null;

}展示首頁返回乙個邏輯檢視,需要把首頁大廣告位的json資料傳遞給jsp。

publicstring showindex(model

model) {

string adjson = contentservice.getcontentlist();

model.addattribute("ad1", adjson);

return"index";

第六天 風氣

第六天 風氣 答 人有了,就得定規矩,否則就是一幫烏合之眾,而不是團隊。1必須朝九晚五。嚴格控制員工手裡有辦公室鑰匙。下班必須準時鎖門,員工準時離開。斷公司外網。要加班必須上級主管簽字,更不准在辦公室留宿,洗澡。這一條很重要,不要讓程式設計師活得像個浪子,精神恍惚,口中神叨,鬍子拉碴,這都是浮動工作...

開課第六天

今天是開課第六天,老師上午沒有講課,講了一上午的題,下午又講了新知識,如下 1 順序結構 從上到下順序進行。2 分支結構 if boolean表示式 else switch 值 case 值 break case 值 break switch 執行流程,switch的值和case的值一一比較,如果一...

第六天學習

變數的作用域 區域性變數 在函式內部定義的變數,這個變數只能在函式內部使用,在全域性當中不能使用。使用就報錯了。全域性變數 在函式外部定義的變數,這個變數可以在全域性使用。但是我們一般不推薦使用全域性變數 因為可能會意外的修改掉變數的值。迫不得已不要用全域性變數 衝突處理原則 就近原則。而不是從上到...