【javaWeb】第52天—— WEB實戰專案四
回顧:
使用者 訂單 訂單項表 商品
實體:
訂單:包含一個使用者的實體,一個訂單項的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修改狀態
重定向 查詢所有訂單已支付的訂單列表上
/////////////////////////////////////
/////////////////////////////////////
/////////////////////////////////////
擴充套件:
在所有的新增方法上記錄一下(新增操作)
相關文章
- 【javaWeb】第51天—— WEB實戰專案三JavaWeb
- 【javaWeb】第54天——專案部署(nginx)JavaWebNginx
- 飛機大戰和javaweb商城專案JavaWeb
- 實踐JavaWeb課程專案JavaWeb
- Web專案開發介紹及實戰專案介紹Web
- Vue + Spring Boot 專案實戰(十九):Web 專案優化解決方案VueSpring BootWeb優化
- JavaWeb專案-----JavaScriptWebJavaScript
- 大神實戰Web前端最新版培訓視訊教程 專案實戰+基礎入門 Web前端課程 專案篇Web前端
- idea建立javaweb專案IdeaJavaWeb
- Django2 web實戰01-啟動專案DjangoWeb
- WEB實戰:使用MERN技術棧開發專案Web
- 一本實踐的專案開發《Python專案開發實戰(第2版)》Python
- 手把手和你一起實現一個Web框架實戰——EzWeb框架(四)[Go語言筆記]Go專案實戰Web框架Go筆記
- web開發實戰教程:Apache Shiro在web專案中的應用WebApache
- 【javaWeb】第55天——java web階段性總結JavaWeb
- idea中新建javaWeb專案IdeaJavaWeb
- 07#Web 實戰:實現 GitHub 個人主頁專案拖拽排序WebGithub排序
- Vue + Spring Boot 專案實戰(四):資料庫的引入VueSpring Boot資料庫
- dubbo專案實戰
- HarmonyOS 實戰專案
- LittleFox專案實戰
- python實戰專案Python
- 專案實戰--製作web管理銳捷交換機(六)Web
- 【Java】手工編寫JavaWeb專案!JavaWeb
- ssts-hospital-web-master專案實戰記錄三十一:專案遷移-核心模組實現(useDeviceDriver)WebASTdev
- ssts-hospital-web-master專案實戰記錄三十二:專案遷移-核心模組實現(useFlow)WebAST
- javaWeb(四)----- DOMJavaWeb
- TypeScript + 大型專案實戰TypeScript
- AMP專案實戰分享
- Spring Boot從入門到實戰:整合Web專案常用功能Spring BootWeb
- ssts-hospital-web-master專案實戰記錄二:版本管理-gitWebASTGit
- ssts-hospital-web-master專案實戰記錄七:核心架構WebAST架構
- Flutter專案實戰(1):通用專案框架搭建Flutter框架
- Django2 Web實戰01-啟動專案-model 擴充套件DjangoWeb套件
- Laravel 我的教程筆記: Web 開發實戰進階 建立專案Laravel筆記Web
- 專案實戰之gradle在實際專案中的使用Gradle
- 淺談 Angular 專案實戰Angular
- 爬蟲實戰專案集合爬蟲