java 購物商城小項目訓練
- java web 模擬購物車練習(項目一)
- 首頁(index.jsp)
<div align="center" class="index">
<h1>Estore商城</h1>
<marquee class="work_text" scrollamount="4" width="800" height="100" direction="left" loop="-1">
<b>歡迎你們訪問的個人首頁!煙花散盡13141!</b>
</marquee>
<br/><br/><br/><b>
<c:if test="${user==null }">
歡迎光臨,遊客!<br/><br/>
<a href="${pageContext.request.contextPath }/register.jsp"><img alt="註冊" src=".//images/Rej_s.png">註冊</a><br/><br/>
<a href="${pageContext.request.contextPath }/login.jsp"><img alt="登陸" src=".//images/Log_s.png">登陸</a><br/><br/>
</c:if>
<c:if test="${user!=null }">
歡迎回來!${user.username }<br/><br/>
<a href="${pageContext.request.contextPath }/addProd.jsp"><img alt="添加商品" src=".//images/List_s.png">添加商品</a><br/><br/>
<a href="${pageContext.request.contextPath }/LogOutServlet"><img alt="註銷用戶" src=".//images/out_s.jpg">註銷用戶</a><br/><br/>
<a href="${pageContext.request.contextPath }/OrderListServlet"><img alt="訂單查詢" src=".//images/list_s.jpg">訂單查詢</a><br/><br/>
</c:if>
<a href="${pageContext.request.contextPath }/ProdListServlet"><img alt="商品列表" src=".//images/List_s.png">商品列表</a><br/><br/>
<a href="${pageContext.request.contextPath }/SaleListServlet"><img alt="榜單下載" src=".//images/List_s.png">榜單下載</a><br/><br/>
<a href="${pageContext.request.contextPath }/car.jsp"><img alt="查看購物車" src=".//images/SeeBuy_s.jpg">查看購物車</a>
</b>
</div>
- 在首頁中咱們大致上爲兩種身份的人提供界面欣賞,一個是管理員另一個是普通用戶還有一個是以有課的身份去瀏覽本網頁的。在咱們的註冊頁面中咱們只提供註冊普通用戶的,因爲時間緊張咱們並無提供對管理員的身份的認證,下面我簡單說一下普通員工的身份的認證,
- 註冊(register.jsp)
- 在註冊頁面中咱們比較首頁而言是複雜的,在註冊的頁面咱們須要在提交前對用戶提交的數據進行相關的檢查,首先用戶須要提交的數據是用戶名+密碼+密碼2+暱稱+郵箱+驗證碼對於這六個數據大前提是咱們用戶提交的數據不能爲空,其次就是兩次密碼必須是一致的,還有提交的郵箱要符合郵箱的格式。這些都符合了才能經過客戶端提交到服務器上,在服務器上爲了安全起見咱們仍是得在進行這些數據的檢查目的就是爲了防止別人截取到咱們的數據進行修改。爲了給用戶呈現一種友好的界面我有使用了無閃刷新,這樣就會在用戶焦點離開某項時就會對用戶進行相應的提示,總的說來在這個註冊頁面中咱們仍是作了很多的前期工做的,。前期標準都符合的才能提交有服務起判斷是否合法。這個數據的合法性有後面咱們要介紹的RegisteServlet來解決,
-
- 剛纔也說了數據最後是提交到服務器上的,那麼咱們下面說的是服務器是如何處理服務器的(RegisteServlet)
- 第一步驗證用戶提交的驗證碼是否正確
if(code!=null && !code.equals("") && !code.equals(AuthCode))
{
//驗證碼錯誤
request.setAttribute("msg", "驗證碼錯誤!請覈實");
request.getRequestDispatcher("/register.jsp").forward(request, response);
}
- 第二步對提交的數據進行封裝,方便數據庫進行相關操做
User user=new User();
BeanUtils.populate(user, request.getParameterMap());
- 第三步業務類調用數據方法操做數據的註冊
user.setPassword(MD5Utils.md5(user.getPassword()));
/**
* 第四步 調用service方法註冊
*/
service.regist(user);
- 第五步成功調回首頁這裏也能夠直接調到登錄頁
response.getWriter().write("註冊成功!請注意留意郵箱的激活碼進行帳號激活!");
- 講完註冊固然就是登陸了,有了註冊的頁面基礎上咱們的登陸作起來就駕輕就熟了,因此登陸我就不說了,那麼如今咱們已經能夠登陸咱們的購物商城的系統中去了,那麼咱們在這個商城中到底能幹什麼呢,下面纔是咱們的重點,針對兩個身份咱們有不一樣的功能,首先我來講普通用戶
- 下訂單
- 首先咱們的用戶可以看到商城先全部的代售商品,並能夠將他們加入到屬於本身的購物車中,並進行支付或者取消支付,在咱們上面的一句話轉換到咱們的程序中咱們就須要好幾個類來實現
- 第一個咱們須要一個ProdList.jsp界面來將商城中的全部商品進行展現,在展現以前咱們須要ProdListServlet來獲取商城中到底有哪些東西,得到到商城中商品後咱們須要一個購物車car.jsp至關於容器來裝下咱們選擇購買的東西,這裏咱們將本身購買的東西放在一個HashMap中,而這個Map咱們將他放在session中,讀者若是想實現客戶端緩存的話能夠將這個map存儲到cookie中,最後想要支付咱們還須要一個pay.jsp和計算金額的Servlet來實現支付功能。
- ProdListServlet
ProdService service=(ProdService) BasicFactory.getFactory().getInstance("ProdService");
User user=(User) request.getSession().getAttribute("user");
List<Prod> list=null;
/*
if(user!=null && "admin".equals(user.getRole()))
{
int uid=user.getId();
list=service.getAllProds(uid);
}
else
{
list=service.getAllProds();
}
加入監聽器後就不須要再這裏進行判斷了
*/
list=service.getAllProds();
request.getSession().setAttribute("list", list);
request.getRequestDispatcher("/prodlist.jsp").forward(request, response);
- ProdList.jsp
<c:forEach items="${list }" var="l">
- 只須要取到在ProdListServlet中存儲的list就能夠進行遍歷了,就能夠實現購物商城中的商品的瀏覽,到這裏咱們的購物商城已經實現了,
- 下面就是加入購物車,加入購物車筆者建議在加入以前咱們就開始判斷數數據的合法性,基本合法就是購買數量不能爲0 還有就是不能大於商城中商品的數量,在合法的數據中咱們就將這個商品加入到咱們本身的購物車(HashMap)。計入購物車中咱們得將他展示出來供用戶操做Car.jsp
- car.jsp
<c:forEach items="${carMap }" var="car" varStatus="status">
<c:set var="i" value="${i+1 }"></c:set>
<tr align="center">
<td><img src="${pageContext.request.contextPath }/GetImgServlet?id=${car.key.id }"></td>
<td>${car.key.name }</td>
<td>${car.key.category }</td>
<td>${car.key.price }元</td>
<td><b><a href="${pageContext.request.contextPath }/ChangeCarServlet?id=${car.key.id}&buynum=${car.value-1}"> - </a></b><input type="text" name="pnum" value="${car.value }" style="width: 30px;" onblur="check('${car.key.id }',this,'${car.value }','${status.count }')" /><b><a href="${pageContext.request.contextPath }/ChangeCarServlet?id=${car.key.id}&buynum=${car.value+1}"> + </a></b></td>
<td><input type="text" name="oneprice" value="${car.value * car.key.price }" width="5px;"/>元</td>
<c:set var="sum" value="${sum + car.value * car.key.price }"></c:set>
<td name="price"><a href="${pageContext.request.contextPath }/DeleteProdServlet?id=${car.key.id}">刪除商品</a></td>
</tr>
</c:forEach>
- 到這裏咱們購物商城的框架就已經搭建好了,下面還剩下的就是管理員的一些操做和用戶購物車結算或取消的一些相關操做,這些只是咱們留在下一節進行講解,在文章的最後我也會將咱們的開發過程的筆記和最終的項目源碼奉上。盡請期待!
歡迎關注本站公眾號,獲取更多信息