1. 程式人生 > >學習淘淘商城第四十四課(首頁跳轉到搜尋頁面及搜尋實現分析)

學習淘淘商城第四十四課(首頁跳轉到搜尋頁面及搜尋實現分析)

       上節課我們一起學習了將資料從資料庫匯入到索引庫,這節課我們一起學習下首頁跳轉到搜尋頁面。

       我們要訪問taotao-portal-web工程就要先啟動redis服務(大家根據自己使用的情況啟動,使用的是單機版就啟動單機版伺服器,使用的是叢集就啟動叢集版伺服器)。

       啟動好taotao-portal-web工程之後,我們訪問淘淘商城首頁,如下圖所示。


       該首頁對應的後臺程式碼如下所示,在index.jsp當中是沒有搜尋相關程式碼的,那麼這部分程式碼在哪兒呢?其實是在header.jsp當中。


         header.jsp頁面的程式碼如下圖所示,可以看到在搜尋框中輸入搜尋搜尋關鍵詞之後,點回車即可觸發search方法。但我們發現在整個header.jsp當中並沒有search方法,那麼search方法在哪兒呢?其實是在頁面引用的src="/js/base-v1.js"當中。


         base-v1.js中有search這個方法,如下圖所示,它指定的訪問埠是8082,我們要把它改成8085,,因為8085對應著我們的taotao-search-web工程。


        我們使用tomcat外掛啟動的方式啟動taotao-search-web工程,啟動方法是在工程上右鍵-------->Run As------->Maven Install,會看到如下圖所示彈出框,在Goals一欄輸入"clean tomcat7:run"。點選"Apply",然後點選"Run"就可以啟動該工程了。


         我們在淘淘商城首頁的搜尋框中輸入"手機"然後點選搜尋按鈕,會看到如下圖所示介面,可以看到已經正確跳轉到搜尋工程了,只是我們的搜尋功能還沒完成因此現在訪問是報404的。


        下面我們來分析一下搜尋功能的實現,我們首先把搜尋工程的靜態資源,大家可以到http://download.csdn.net/detail/u012453843/9830293這個地址進行下載。下載解壓之後放到搜尋工程當中,如下圖所示。


       我們商品搜尋頁面只需進行查詢和分頁即可,我們現在不用像京東做的這麼複雜,練習嘛,我們就不使用過濾條件、排序等功能了。我們只實現查詢和分頁功能。


        我們再到search.jsp頁面檢視一下程式碼,可以看到搜尋頁面由總頁數totalPages和搜尋出來的內容列表itemList組成,而且可能會用到查詢總數量。這些我們應該放到一個pojo當中。


         由於搜尋服務和搜尋工程都需要用到這個pojo,因此我們還是把這個pojo放到taotao-common當中比較合適。如下圖所示。注意類一定要實現序列化介面!!


       pojo類如下

package com.taotao.common.pojo;

import java.io.Serializable;
import java.util.List;

public class SearchResult implements Serializable{
	//總頁數
    private long totalPages;
    //總數量
    private long totalNumber;
    //查詢出的商品列表
    private List<SearchItem> itemList;
	public long getTotalPages() {
		return totalPages;
	}
	public void setTotalPages(long totalPages) {
		this.totalPages = totalPages;
	}
	public long getTotalNumber() {
		return totalNumber;
	}
	public void setTotalNumber(long totalNumber) {
		this.totalNumber = totalNumber;
	}
	public List<SearchItem> getItemList() {
		return itemList;
	}
	public void setItemList(List<SearchItem> itemList) {
		this.itemList = itemList;
	}
    
}