1、首頁(登錄、注冊)
(1)時間顯示:
var time=new Date(); var year=time.getFullYear(); var month=time.getMonth(); var date=time.getDate(); var day=time.getDay();
(2)登錄:
登錄時用戶通過表單提交數據,servlet獲取到數據后將該數據提交給Dao層,Dao層通過用戶名和密碼查詢該用戶的信息,如果,未查詢到符合條件的用戶的信息,則證明沒有該用戶存在,如果有該用戶的信息,又分為兩種情況,即:用戶的身份為消費者或商家,根據以上三種情況,servlet將根據返回的結果,分別重定向到不同的頁面。
(3)注冊:
先通過前端的表單校驗對用戶輸入的信息進行判斷:是否為空、密碼是否符合標准、兩次輸入的密碼是否一致...
表單校驗成功后可以將表單的數據提交到Servlet,Servlet調用Dao層的方法,執行插入操作,根據是否能成功插入返回對應的值,Servlet對返回值進行判斷后分別顯示對應的信息提示。
2、購物車
(1)獲取全部商品信息:
在需要添加購物車的時候,需要查看全部商品,挑選自己喜歡的商品加入購物車,因此,需要通過jsp向servlet提交請求,servlet重dao層獲取到商品信息后封裝在request域中,以請求轉發的形式將商品信息展示在jsp頁面。
(2)查看商品詳細信息:
在展示商品全部信息的頁面,點擊相應的商品在頁面獲取該商品的ID並作為參數提交給Servlet,Servlet將該商品的ID作為Dao層的函數的參數,最終通過Dao層的sql語句,查詢到對應商品的詳細信息,請求轉發到頁面進行顯示。
(3)添加購物車:
在商品的詳細信息頁面點擊添加后,將對應商品的ID提交給了Servlet,Servlet會去查看session是否為空,如果為空,則需要通過Dao層獲取到對應ID的商品的信息,將商品信息和商品在購物車中的數量(初始值為 0)封裝在一個vo中,然后將該類的對象放到map集合,鍵為商品的ID,最后,將map集合放到session中。在購物車不為空的情況下,又分為兩種情況:購物車里面已經有相同ID的商品數據了,此時,字需要將商品數量加1即可,另外一種情況是:購物車里面還沒有相同ID的商品數據,則需要通過Dao層獲取到對應ID的商品的信息,將商品信息和商品在購物車中的數量(初始值為 0)封裝在一個vo中,然后將該類的對象放到map集合,鍵為商品的ID,最后,將map集合放到session中。
(4)查看購物車:
采用foreach語句來遍歷session中的購物車中所有商品的信息和數量進行頁面的顯示,最后,還需要對所有商品遍歷,求出購物車商品的總額並進行頁面顯示。
3、訂單
(1)提交訂單:
先將用戶地址等詳細信息寫入數據庫,如果成功插入數據,則將訂單的簡略信息寫入到數據庫,如果成功跳轉到成功的頁面,失敗進入失敗頁面。
(2)訂單信息:
從cookie中獲取登錄時的用戶名,從Session獲取訂單的商品名和商品的數量,通過Servlet,提交給Dao寫入到數據庫。
4、商家
(1)查看訂單信息:
(2)接單
這里對數據庫執行的是更新操作,即,修改訂單的狀態。
5、session、cookie、pagecontext的使用
(1)session在這里用於存儲添加在購物車中的商品信息,在添加到session之前,需要將信息封裝到map集合中。
(2)cookie在這里用於存儲登錄成功的用戶名,便於根據用戶的用戶名查找該用戶的訂單信息。
(3)pagecontext只能用於當前頁面的范圍,超過這個頁面就不能使用了。
6、參數問題
在商品列表中,當你點擊某一商品的時候是如何確定的呢,這就需要在跳轉的時候在地址后面添加參數。
<td align="center" style="HEIGHT: 22px"><a href="${pageContext.request.contextPath}/admineditservlet?id=${food.id}"> <img src="${pageContext.request.contextPath}/images/food.gif" border="0" style="CURSOR: hand"> </a> </td>
在跳轉到Servlet之前,需要確定在頁面中點擊的是哪一件商品,這里用到的是ID屬性,即點擊的是對應的ID的商品。
String id=request.getParameter("id");
在跳轉到Servlet之后取出該參數即可。