网上商城—管理员增加商品
管理員增加商品(圖書、服裝、電器、零食)
先上本人的項目相應圖片:
功能描述:
當以管理員的身份登錄時,頁面跳轉到相應的管理商鋪(shopkeeper.jsp)的頁面(有關管理員和普通用戶身份的驗證請參看本人的其他博客),點擊“增加圖書、增加服裝、增加電器、增加零食”都會跳轉到填寫要增加的商品信息的addproduct.jsp頁面,在該頁面的form表單中填寫要增加的商品的信息,然后點擊“增加”按鈕將相應的信息提交給form表單對應的action“addProduct.do(AddProductServlet)”,在AddProductServlet中獲取表單提交的信息,調用*DaoImpl的add()方法進行插入數據庫的操作,然后進行頁面跳轉,如若添加成功跳轉到ok.jsp,否則跳轉到fail.jap。
實現類:
shopkeeper.jsp
addproduct.jsp(添加商品信息頁)
ok.jsp(提示操作成功)
failjsp(提示操作失敗)
AddProductServlet.java(獲得添加的商品信息,調用數據庫操作并進行頁面跳轉)
BookDaoImpl.java(接口BookDao.java)(定義一個方法實現將要添加的圖書插入數據庫的操作)
ClothesDaoImpl.java(接口ClothesDao.java)(定義一個方法實現將要添加的服裝插入數據庫的操作)
ElectricDaoImpl.java(接口ElectricDao.java)(定義一個方法實現將要添加的電器插入數據庫的操作)
SnacksDaoImpl.java(接口SnacksDao.java)(定義一個方法實現將要添加的零食插入數據庫的操作)
注意:
1、要添加四種商品,而我只定義了一個AddProductServlet,那么怎么判斷要添加的商品是哪種類別呢?
在我的添加商品信息(addproduct.jsp)的頁面中有四個按鈕“增加圖書、增加服裝、增加電器、增加零食”,當你要增加某種商品時只需點擊相應的增加按鈕即可,這里我用到了按鈕的name=” submit “屬性和value=” 增加* “屬性;當點擊按鈕將表單提交給addProduct.do之后,servlet會通過String submit = requst.getParameter(“submit”);方法獲取到按鈕的value屬性的值,然后進行判斷submit.contains(“圖書),通過判斷結果來調用相應的數據庫插入方法。還有一種方法:當點擊按鈕將帶有要添加的商品信息的form表單提交給addProduct.do時傳回一個參數,例如ddd=i,然后在servlet中利用ddd的值來進行相應的調用。
2、在添加數據庫時有關圖片的上傳
,修改form表單的enctype=”multipart/form-data”(post提交方式上傳字節型的大對象),上傳相應的內容到數據庫,在數據庫表中承載該image的應該是一個Blob類型的大對象,該操作應該是這樣實現的,可是我之前在創建數據庫表的時候有關image使用的是一個圖片的地址imgURL,相應的圖片存放在項目的WebRoot/images下,所以這里要實現以上操作該動太大,關于這個問題我的解決是(求不嘲笑啊-_-||):將要添加的圖片手動放到WebRoot/images下,然后上傳數據庫時只給出相應圖片的URL,同時也沒有用到文件上傳。以后開始一個項目創建數據庫表什么之類的之前一定要考慮全面啊啊!
代碼:
shopkeeper.jsp
<div class="main"><d1><h1>增加商品</h1><dt><a href="addproduct.jsp">增加圖書</a></dt><dt><a href="addproduct.jsp">增加服裝</a></dt><dt><a href="addproduct.jsp">增加零食</a></dt><dt><a href="addproduct.jsp">增加電器</a></dt></d1> </div>addproduct.jsp(添加商品信息頁)
<form method="post" action="addProduct.do" ><table><tr><td class="field">商品ID:</td><td><input class="text" type="text" name="id" /></td></tr><tr><td class="field">商品名稱:</td><td><input class="text" type="text" name="name" /></td></tr><tr><td class="field">商品數量:</td><td><input class="text" type="text" name="count" /></td></tr><tr><td class="field">商品價格:</td><td><input class="text" type="text" name="price" /></td></tr><tr><td class="field">商品圖片:</td><td><input class="text" type="text" name="imgURL"/>格式:images/*.jpg</td></tr><tr><td class="field">商品標題:</td><td><textarea name="title"></textarea></td></tr><tr><td class="field">商品制造商:</td><td><textarea name="manufacture"></textarea></td></tr><tr><td><label class="ui-blue"><input type="submit" name="submit" value="增加圖書" /></label></td><td><label class="ui-blue"><input type="submit" name="submit" value="增加服裝" /></label></td><td><label class="ui-blue"><input type="submit" name="submit" value="增加電器" /></label></td><td><label class="ui-blue"><input type="submit" name="submit" value="增加零食" /></label></td></tr> </table></form>AddProductServlet.java(獲得添加的商品信息,調用數據庫操作并進行頁面跳轉)
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ymw.dao.BooksDao; import com.ymw.dao.BooksDaoImpl; import com.ymw.dao.ClothesDao; import com.ymw.dao.ClothesDaoImpl; import com.ymw.dao.ElectricDao; import com.ymw.dao.ElectricDaoImpl; import com.ymw.dao.SnacksDao; import com.ymw.dao.SnacksDaoImpl; import com.ymw.domain.Product;public class AddProductServlet extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");Product product=new Product();//獲取addproduct.jsp表單中用戶輸入的信息String submit=request.getParameter("submit");System.out.println(submit);String id=request.getParameter("id");String name=request.getParameter("name");String title=request.getParameter("title");String imgURL=request.getParameter("imgURL");String manufacture=request.getParameter("manufacture");String count=request.getParameter("count");String price=request.getParameter("price");System.out.println(id + name + title + manufacture + count + price);//將從前臺表單中獲取得值放進product對象中product.setId(Integer.parseInt(id));product.setName(name);product.setTitle(title);product.setImgURL(imgURL);product.setManufacture(manufacture);product.setCounts(Integer.parseInt(count));product.setPrice(Double.parseDouble(price));//判斷ddd的值並調用相應的方法if (submit.contains("圖書")) {//增加圖書//將用戶輸入的信息添加到數據庫並進行頁面跳轉System.out.println("進入增加圖書的方法……");BooksDao booktDao=new BooksDaoImpl();booktDao.addBook(product);request.getRequestDispatcher("addproduct.jsp").forward(request, response);}else if (submit.contains("服裝")) {//增加服裝//將用戶輸入的信息添加到數據庫並進行頁面跳轉ClothesDao clothesDao=new ClothesDaoImpl();clothesDao.addClothes(product);request.getRequestDispatcher("addproduct.jsp").forward(request, response);}else if (submit.contains("電器")) {//增加電器//將用戶輸入的信息添加到數據庫並進行頁面跳轉ElectricDao productDao=new ElectricDaoImpl();productDao.addElectric(product);request.getRequestDispatcher("addproduct.jsp").forward(request, response);}else if (submit.contains("零食")){//增加零食m //將用戶輸入的信息添加到數據庫並進行頁面跳轉SnacksDao productDao=new SnacksDaoImpl();productDao.addSnack(product);request.getRequestDispatcher("addproduct.jsp").forward(request, response);}}}BookDaoImpl.java(接口BookDao.java)(定義一個方法實現將要添加的圖書插入數據庫的操作)
(本文只給出addBook()方法,addClothes()、addElectric()、addSnack()只有sql語句中執行的表不一樣,其余都一樣)
寫博客會上癮……
總結
以上是生活随笔為你收集整理的网上商城—管理员增加商品的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网上商城留言板的实现——留言展示到留言板
- 下一篇: 网上商城—管理员删除商品