【javaWeb】第52天—— WEB實戰專案四

就叫一片白紙發表於2018-09-02

回顧:
使用者 訂單 訂單項表 商品
實體:
訂單:包含一個使用者的實體,一個訂單項的list集合
訂單項:包含一個訂單的實體,一個商品的實體
//////////////////////
查詢我的訂單:
1.先要把所有的訂單的常規的欄位查詢出來
2.遍歷訂單集合,拿到每一個訂單(缺少訂單項list),
3.通過商品表和訂單項表聯合查詢 條件是:訂單id
4.只需要封裝orderItem,然後將orderitem新增到訂單的訂單項列表中即可
/////////////////////////
線上支付:介面開發
注意的問題:
需要什麼引數:文件中
如何保證資料安全:數字簽名
最後修改訂單的狀態
////////////////////////////////
案例1-分類資訊的curd
步驟分析:
左邊的dtree:
1.匯入dtree.js
2.匯入dtree.css
3.建立一個div 新增樣式 class=”dtree”
4.在div中編寫js程式碼
建立一個樹
d = new dTree(‘d’);
新增根節點
通過 d.add(當前節點的id,父節點的id,顯示的名稱,點選時候開啟的連線,放上去顯示的名稱,在那個地方開啟這個連線)
注意:
根節點的父節點的id寫成-1
新增其他節點
5.最後通過document.write(d) 寫到頁面上即可
分類資訊新增:
1.應在在左邊的dtree上新增連線(展示所有的分類資訊)
d.add(…,”/store/adminCategory?method=findAll”,”“,”mainFrame”)
2.建立adminCategoryservlet ,編寫findAll()
查詢的結果是一個list,將list放入request域中,然後請求轉發/admin/category/list.jsp

新增分類的步驟:
    1.編寫一個連線,
        /store/adminCategory?method=addUI
    2.請求轉發到/admin/category/add.jsp
    3.add.jsp就是一個表單頁面
        編寫表單的action屬性 /store/adminCategory?method=add
            給分類的名稱欄位新增一個name屬性  name="cname"
    4.admincategoryservlet的add方法
        獲取分類的名稱
        封裝成category 設定id
        呼叫categoryservice的add方法
        頁面重定向  /store/adminCategory?method=findAll
    5.categoryservice的add方法
        暫時呼叫dao
    6.dao中新增一條資料

修改分類步驟分析:
    1.在list.jsp頁面上點選修改(編輯)
        /store/adminCategory?method=getById&cid=???
    2.在getById方法中
        獲取cid
        呼叫service 通過id獲取一個分類,
        將category放入request域中
        請求轉發 edit.jsp
    3.eidt頁面是一個表單
        新增action屬性
            /store/adminCategory?method=update
        修改內容 點選提交
        新增隱藏域 cid
    4.在update方法中
        獲取cid和cname
        封裝成category
        呼叫service的update方法
        重定向/store/adminCategory?method=findAll
    5.在service的update方法中
        呼叫dao更新
        清空快取
    6.dao中更新資料

刪除分類步驟分析:
    1.在list.jsp上編寫 刪除連線
        /store/adminCategory?method=delete&cid=??
    2.在delete方法中
        獲取cid
        呼叫service的delete方法
        頁面重定向/store/adminCategory?method=findAll
    3.service中delete
        新增事務
        通過cid先更新所有的商品分類資訊 
        呼叫dao 刪除分類
        事務控制
        清空快取

///////////////////
案例2-商品管理-新增商品
技術分析:
檔案上傳(fileUpload)
瀏覽器端要求:
post請求
input type=”file”
表單的 enctype=”multipart/form-data”
伺服器要求(fileUpload)
通過reuqest.getParameterxxx()獲取的引數全部為空
使用步驟:
匯入jar包
建立一個磁碟檔案項工廠
建立一個核心檔案上傳物件 ServletUpLoad
上傳物件呼叫方法解析請求 獲取一個List

////////////////////////

展示所有商品的步驟分析:
1.修改left.jsp的頁面的連線
/store/adminProduct?method=findAll
2.在adminProductservlet的 findAll方法中
獲取productservice 查詢所有的商品 返回list
將list放入request域中 請求轉發 /admin/product/list.jsp
//////////////////////////////////
新增商品(上傳圖片)
1.修改頁面上新增連線
/store/adminProduct?method=addUI
2.在addUI請求轉發到 新增頁面
3.在表單頁面上
修改action : /store/addProductServlet
提交方式: method=”post”
新增enctype屬性: enctype=”multipart/form-data”
給每個欄位新增name屬性
4.addProductServlet
通過request.getParameterMap獲取的資訊全部為空
我們想使用beanuitls.populate(bean,map),
我們需要建立一個map集合 ,將前臺接受過來資訊手動的put到map中
注意:
商品的圖片:
1:儲存到伺服器的磁碟
2.在資料中新增圖片的位置

    呼叫productservice完成新增商品操作
    重定向到所有的商品的上面

////////////////////////////////
////////////////////////////////
////////////////////////////////

fileUpload使用
建立一個磁碟檔案項工廠
DiskFileItemFactory factory = new DiskFileItemFactory();
建立一個核心檔案上傳物件 ServletFileUpLoad
ServletFileUpload upload = new ServletFileUpload(factory);
上傳物件呼叫方法解析請求 獲取一個List
List list = upload.parseRequest(request);
遍歷list獲取每一個檔案項

            isFormFiled():判斷是否是普通上傳元件
                true:普通上傳元件
                false:檔案上傳元件
            getFiledName():獲取表單子標籤的name屬性值
            若是普通的上傳元件
                getString("utf-8"):獲取使用者輸入的值
            若是檔案上傳元件
                getName():獲取上傳檔案的名稱
                getInputStream():獲取上傳檔案流
                最後刪除臨時檔案
                    delete()

////////////////////////////////////
案例3-訂單管理
a.查詢訂單
b.更新狀態
查詢訂單:
所有的訂單 不區分使用者
基本的sql select * from orders where 1=1
判斷是否有state 若有則新增state 最後order by ordertime desc
1.在left.jsp上新增5個連線
/store/adminOrder?method=findAllByState 根據情況傳入合適state就可以了
2.在adminOrderServlet的findAllByState中
接受state
呼叫orderservice查詢,list
將list放入request域中,請求轉發list.jsp
3.orderDao
先寫一個基本的sql
判斷state是否為空
最後新增order by

擴充套件:
查詢訂單詳情
點選每一個訂單後面的訂單詳情,將該訂單的oid通過ajax傳遞到後臺查詢
步驟分析:
給按鈕新增事件

修改訂單的狀態:
例如:後臺頁面點選發貨的 需要將訂單的狀態修改
在客戶的頁面上查詢我的訂單,點選確認收貨的時候 修改訂單的狀態
1.點選 修改狀態
/store/adminOrder?method=updateState&oid=??state=??
2.在updatestate方法中,
接受引數 oid state
呼叫service修改狀態
重定向 查詢所有訂單已支付的訂單列表上

/////////////////////////////////////
/////////////////////////////////////
/////////////////////////////////////
擴充套件:
在所有的新增方法上記錄一下(新增操作)

相關文章