1. 程式人生 > >JavaWeb項目--網上商城 (6-5)

JavaWeb項目--網上商城 (6-5)

ava 註意 cname 案例 輸入 子節點 根節點 .get esp

day5--後臺管理模塊開發

案例1-後臺所有分類展示
需求: 在左側的樹上上添加一個連接 "分類列表",點擊分類列表 將所有的分類展示在右邊的主頁面上
步驟分析:
1.在left.jsp上添加一個連接 父節點"分類管理",在分類管理下面添加一個子節點"分類列表"
連接: /store/adminCategory?method=findAll
2.編寫adminCategoryservlet,繼承baseservlet,編寫findAll方法
調用service 查詢所有分類,返回值:List<Category>
請求轉發 /admin/category/list.jsp

d-tree用法:

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) 寫到頁面上即可

6.例子: d = new dTree(‘d‘);
d.add(‘01‘,-1,‘系統菜單樹‘);
d.add(‘0102‘,‘01‘,‘分類管理‘,‘‘,‘‘,‘mainFrame‘);
d.add(‘010201‘,‘0102‘,‘分類列表‘,‘${pageContext.request.contextPath}/adminCategory?method=findAll‘,‘‘,‘mainFrame‘);
d.add(‘010202‘,‘0102‘,‘添加分類‘,‘${pageContext.request.contextPath}/adminCategory?method=addUI‘,‘‘,‘mainFrame‘);
d.add(‘0104‘,‘01‘,‘商品管理‘);
d.add(‘010401‘,‘0104‘,‘已上架商品列表‘,‘${pageContext.request.contextPath}/adminProduct?method=findAll‘,‘‘,‘mainFrame‘);
d.add(‘010402‘,‘0104‘,‘添加商品‘,‘${pageContext.request.contextPath}/adminProduct?method=addUI‘,‘‘,‘mainFrame‘);
d.add(‘0105‘,‘01‘,‘訂單管理‘);
d.add(‘010501‘,‘0105‘,‘訂單管理‘,‘${pageContext.request.contextPath}/adminOrder_findAll.action?page=1‘,‘‘,‘mainFrame‘);

document.write(d);

<!--id Number 唯一的ID號
pid Number 判定父節點的數字,根節點的值為
name String 節點的文本標簽
url String 節點的Url
title String 節點的Title
target String 節點的target
icon String 用做節點的圖標,節點沒有指定圖標時使用默認值
iconOpen String 用做節點打開的圖標,節點沒有指定圖標時使用默認值
open Boolean 判斷節點是否打開 -->

案例2-後臺添加分類
需求:
在一個表單頁面中,輸入分類名稱,點擊保存,將分類保存到數據庫
步驟分析:
1.在left.jsp上添加一個連接 "添加分類" /store/adminCategory?method=addUI
2.在admincategoryservlet下編寫addUI方法 請求轉發到 /admin/category/add.jsp
3.修改add.jsp, action:/store/adminCategory?method=save
給分類input標簽添加name屬性
4,點擊保存,發送 adminCategory一個請求 請求方法:save
獲取cname,設置cid
封裝category對象
調用service完成添加操作
重定向到分類列表頁面
5.service 調用dao保存
更新redis中數據(清空redis中該條記錄)

案例3-後臺展示所有商品
需求: 點擊左邊樹上的一個連接 "已上架商品列表",在右邊的主頁面上展示所有的商品
步驟分析:
1.在left.jsp上添加一個連接 "已上架商品列表", /store/adminProduct?method=findAll
2.編寫adminProductServlet,繼承baseservlet,編寫findAll方法
調用service,獲取所有的已上架的商品信息 返回值:list
將list放入reque st中,請求轉發 /admin/product/list.jsp

案例4-後臺添加商品
需求:

有一個商品的表單頁面,填寫商品信息,選擇商品的圖片,點擊保存,將商品的信息保存到數據庫中和web服務器上
技術分析:
文件上傳: 就是將客戶端的數據發送到服務器上
文件上傳要求:
瀏覽器端要求:
1.表單提交方式 post
2.提供文件上傳框(組件) input type="file"
3.表單entype屬性必須為 multipart/form-data
服務器端要求: request.getInputStream()
註意:
若表單使用了 multipart/form-data ,使用原生request去獲取參數的時候都為null
使用工具類或者框架去解析用戶上傳的內容
commons -fileupload
struts(底層:commons-fileupload)
serlvet 3.0
apache出品的一款專門處理文件上傳的工具類 commons-fileupload
使用步驟:
1.導入jar包
2.創建磁盤文件項工廠
DiskFileItemFactory factory=new DiskFileItemFactory();
3.創建核心上傳對象
ServletFileUpload upload=new ServletFileUpload(factory);
4.解析請求,獲取所有的上傳組件 List<FileItem>
List<FileItem> list=upload.parseRequest(request);
5.遍歷list 獲取每一個上傳項
getFiledName():獲取標簽name屬性的值
isFormFiled():判斷是否是普通上傳 組件
true:普通上傳組件
false:文件上傳組件 <input type="file">
普通上傳組件
getString("utf-8"):獲取用戶輸入的內容
文件上傳組件
getName():文件 名稱
getInputStream():獲取文件的流
delete():刪除文件上傳時候產生的臨時文件

上傳註意問題:
1.文件名稱 瀏覽器不同,有可能獲取的名稱不同, 1.txt 或者 G:\1.txt
2.文件重名 給文件來一個隨機名稱
uuid方式 毫米值+三個隨機數
數據庫中可以存放多個字段: 文件名稱和文件路徑
文件名稱:身份證正面.jpg
文件路徑:g:\123123123423sfsf.jpg
文件下載:
response.setHeader("content-disposition","attachment;filename="+真實名稱);
3.文件安全(fastDFS)
安全目錄:web-inf meta-inf 項目之外的目錄
不安全目錄:項目目錄(除去web-inf和meta-inf)
4.目錄分離 常用的方式:
按用戶劃分 按時間劃分 按數量劃分 隨機劃分

步驟分析:
1.在left.jsp上添加一個連接,"添加商品",點擊他,在主頁面上打開一個表單頁面
/store/adminProduct?method=addUI
2.在adminproductserlvet中編寫addUI方法
調用categoryservice查詢所有的分類 findList
請求轉發到 /admin/product/add.jsp
分類信息沒有查詢出來:
方式1:同步 方式2:異步
3.編輯表單頁面 action: /store/addProduct method:post entype:multipart/form-data
給所有的子標簽添加name屬性 點擊保存,向addProductServlet發送請求
4.編寫addProductServlet
封裝prodcut對象
讓product的所有字段都有值
將product的圖片保存到服務器
以前使用beanUtils.populate(Product bean,Map map);
但是現在request.getParameterMap不好使,若還想使用上面的方法封裝對象,
我們需要創建一個map 且map中存放product對象的信息
Map<String 字段名,Object 值> map
字段名: getFieldName()
值:getString("utf-8");
除了圖片
將圖片通過commons-fileupload保存到服務器上
將圖片的路徑 put到map中
調用service保存商品
重定向到商品列表頁面
5.service dao
註意: 圖片目錄 保存 備份



JavaWeb項目--網上商城 (6-5)