簡介下關於易買網的各個功能模塊:
前台:
(1)登錄,注冊
(2)按照分類查詢商品
(3)加入購物車
(4)買家留言
(5)結賬
后台:
(1)賬號管理
(2)商品管理
(3)商品分類
(4)回復買家留言
(5)訂單管理
項目的大概目錄如下
由於本人主要寫的是后台的一些功能,所以只能詳解后台功能
后台的servlet如下
1 // 獲取到標識 2 String name = request.getParameter("index"); 3 if (name == null) { 4 name = "NO"; 5 } 6 7 //訂單管理操作 8 if (name.equals("orderManage")) {// 訂單管理 9 try { 10 // 獲取所有訂單管理訂單集合信息 11 getAllOrderManageInfo(request, response); 12 13 // 轉發到訂單管理頁面 14 request.getRequestDispatcher("/manage/order.jsp").forward( 15 request, response); 16 17 } catch (Exception e) { 18 e.printStackTrace(); 19 } 20 } else if (name.equals("UpdateStatus")) {// 修改訂單狀態 21 // 獲取訂單編號 22 String id = request.getParameter("oid"); 23 // 獲取管理員選中的狀態 24 String status = request.getParameter("status"); 25 try { 26 EasyBuy_OrderDAOImpl impl = new EasyBuy_OrderDAOImpl(); 27 if (impl.UpdateStatus(Integer.parseInt(id), 28 Integer.parseInt(status))) {// 證明更改狀態成功 29 // 重新調用訂單分頁的方法 30 getAllOrderManageInfo(request, response); 31 // 轉發到訂單管理頁面 32 request.getRequestDispatcher("/manage/order.jsp").forward( 33 request, response); 34 } 35 } catch (Exception e) { 36 e.getMessage(); 37 } 38 39 //新聞管理操作 40 } else if (name.equals("add")) {// 添加新聞 41 try { 42 // 添加新聞 43 addNewsInfo(request, response); 44 45 } catch (Exception e) { 46 e.printStackTrace(); 47 } 48 } else if (name.equals("del")) {// 刪除新聞 49 try { 50 // 刪除新聞 51 deleteNewsInfo(request, response); 52 53 } catch (Exception e) { 54 e.printStackTrace(); 55 } 56 57 } else if (name.equals("updatenews")) {// 修改新聞 58 try { 59 // 修改新聞 60 updateNewsInfo(request, response); 61 62 } catch (Exception e) { 63 e.printStackTrace(); 64 } 65 66 } else if (name.equals("getAllNewsById")) {// 根據新聞編號查詢所有新聞信息 67 try { 68 // 根據新聞編號查詢所有新聞信息 69 getAllNewsById(request, response); 70 } catch (Exception e) { 71 e.printStackTrace(); 72 } 73 } else if (name.equals("NewsPage")) {// 查詢所有新聞信息 74 try { 75 // 查詢所有新聞信息 76 selectNewsInfo(request, response); 77 } catch (Exception e) { 78 e.printStackTrace(); 79 } 80 //用戶管理操作 81 } else if (name.equals("UserPage")) {// 用戶信息分頁 82 // 用戶表的操作 83 try { 84 UserPageInfo(request, response); 85 86 } catch (Exception e) { 87 e.printStackTrace(); 88 } 89 } else if (name.equals("getUserById")) {// 點擊修改根據id獲取其他信息 90 try { 91 getUserByModify(request, response); 92 } catch (Exception e) { 93 e.printStackTrace(); 94 } 95 } else if (name.equals("modifyUser")) {// 點擊更新修改用戶信息 96 try { 97 modifyUserInfo(request, response); 98 } catch (Exception e) { 99 e.printStackTrace(); 100 } 101 } else if (name.equals("deleteUser")) {// 刪除該用戶信息 102 try { 103 deleteUserInfo(request, response); 104 } catch (Exception e) { 105 e.printStackTrace(); 106 } 107 108 //商品分類操作 109 } else if (name.equals("ProductClassPage")) {// 商品分類分頁 110 try { 111 ProductPageInfo(request, response); 112 } catch (Exception e) { 113 e.printStackTrace(); 114 } 115 } else if (name.equals("getProductClass")) {// 點擊修改,獲取該商品信息 116 try { 117 getProductClassByModify(request, response); 118 } catch (Exception e) { 119 e.printStackTrace(); 120 } 121 } else if (name.equals("modifyBackProductClass")) {// 對后台商品分類的修改操作 122 try { 123 modifyBackProductClass(request, response); 124 } catch (Exception e) { 125 e.printStackTrace(); 126 } 127 }else if (name.equals("getBackPCByInsert")) {//點擊新增,進入商品分類的新增頁面 128 try { 129 getBackProductClassByInsert(request,response); 130 } catch (Exception e) { 131 e.printStackTrace(); 132 } 133 }else if (name.equals("insertBackPC")) {//對商品分類的增加操作 134 try { 135 insertBackProductClass(request,response); 136 } catch (Exception e) { 137 e.printStackTrace(); 138 } 139 }else if (name.equals("delBackProductClass")) {//對后台商品分類的刪除操作 140 try { 141 delBackProductClass(request,response); 142 } catch (Exception e) { 143 e.printStackTrace(); 144 } 145 //留言管理操作 146 } else if (name.equals("BackCommentPage")) {// 后台留言信息分頁顯示 147 try { 148 BackCommentInfo(request, response); 149 } catch (Exception e) { 150 e.printStackTrace(); 151 } 152 } else if (name.equals("getBackCommentByModify")) {// 對留言信息操作時,通過id獲取所有內容 153 try { 154 getBackCommentByModify(request, response); 155 } catch (Exception e) { 156 e.printStackTrace(); 157 } 158 } else if (name.equals("modifyBackComment")) {// 對留言的修改操作 159 try { 160 modifyBackComment(request, response); 161 } catch (Exception e) { 162 e.printStackTrace(); 163 } 164 } else if (name.equals("DeleteBackComment")) {// 對留言的刪除操作 165 try { 166 DeleteBackComment(request, response); 167 } catch (Exception e) { 168 e.printStackTrace(); 169 } 170 171 //商品管理操作 172 } else if (name.equals("BackProductPage")) {// 后台商品管理的信息分頁顯示 173 try { 174 BackProductInfo(request, response); 175 } catch (Exception e) { 176 e.printStackTrace(); 177 } 178 } else if (name.equals("getBackProductByModify")) {// 點擊修改,進入修改頁面 179 try { 180 getBackProductByModify(request, response); 181 } catch (Exception e) { 182 e.printStackTrace(); 183 } 184 } else if (name.equals("modifyBackProduct")) {// 后台商品管理的修改操作 185 try { 186 modifyBackProduct(request, response); 187 } catch (Exception e) { 188 e.printStackTrace(); 189 } 190 } else if (name.equals("getBackProductByInsert")) {// 點擊新增,到商品管理的新增頁面 191 try { 192 getBackProductByInsert(request, response); 193 } catch (Exception e) { 194 e.printStackTrace(); 195 } 196 }else if (name.equals("insertBackProduct")) {//對商品管理的新增操作 197 try { 198 insertBackProduct(request,response); 199 } catch (Exception e) { 200 e.printStackTrace(); 201 } 202 }else if (name.equals("delBackProduct")) {//對商品管理的刪除操作 203 try { 204 delBackProduct(request,response); 205 } catch (Exception e) { 206 e.printStackTrace(); 207 } 208 } 209 210 } 211 212 // 構建一個用戶實現類 213 EasyBuy_UserDAOImpl impl_us = new EasyBuy_UserDAOImpl(); 214 // 構建一個商品分類實現類 215 EasyBuy_Product_CategoryDAOImpl impl_pc = new EasyBuy_Product_CategoryDAOImpl(); 216 // 構建一個留言實現類 217 EasyBuy_CommentDAOImpl impl_com = new EasyBuy_CommentDAOImpl(); 218 // 構建一個商品管理實現類 219 EasyBuy_ProductDAOImpl impl_pm = new EasyBuy_ProductDAOImpl(); 220 221 //后台訂單管理 222 // 查詢訂單管理信息(包含分頁) 223 public void getAllOrderManageInfo(HttpServletRequest request, 224 HttpServletResponse response) throws Exception { 225 // 設置編碼 226 request.setCharacterEncoding("utf-8"); 227 // 獲取到條件查詢的訂單編號 228 String oid = request.getParameter("entityId"); 229 // 獲取到條件查詢的訂單人姓名 230 String name = request.getParameter("userName"); 231 if (name == null) { 232 name = ""; 233 } 234 name = new String(name.getBytes("iso-8859-1"), "utf-8"); 235 if (oid == null) { 236 oid = ""; 237 } 238 if(!name.equals("")||!oid.equals("")){ 239 240 request.getSession().setAttribute("backname", name); 241 request.getSession().setAttribute("backoid", oid); 242 243 } 244 245 // 訂單詳情實現類 246 EasyBuy_Order_DetailDAOImpl impl = new EasyBuy_Order_DetailDAOImpl(); 247 // 調用方法,獲取到所有的訂單集合 248 List<BackOrderDetails> allOrderManageInfoResult = impl.getAllOrderInfo( 249 oid, name); 250 251 // 構建訂單分頁對象 252 BackOrderPage page = new BackOrderPage(); 253 // 構造一些虛假的分頁的數據 254 int pageIndex = 0;// 當前頁數 255 int pageSize = 1;// 每頁顯示的數目 256 int pageCount = 0;// 總頁數 257 int pageNum = 0;// 總記錄數 258 List<BackOrderDetails> list = new ArrayList<BackOrderDetails>();// 分頁后的數據集合 259 260 // 獲取到符合條件的總訂單記錄數 261 pageNum = allOrderManageInfoResult.size(); 262 263 // 根據總記錄數和每頁顯示的數目計算出總頁數 264 if (pageNum % pageSize == 0) { 265 pageCount = pageNum / pageSize; 266 } else { 267 pageCount = pageNum / pageSize + 1; 268 } 269 270 // 獲取到當前頁 271 String pIndex = request.getParameter("PageIndex"); 272 if (pIndex != null) { 273 pageIndex = Integer.parseInt(pIndex); 274 } else { 275 pageIndex = 1; 276 } 277 278 // 判斷是否達到了臨界點 279 if (pageIndex > pageCount || pageIndex < 1) { 280 pageIndex = 1; 281 } 282 283 if (allOrderManageInfoResult.size() > 0) { 284 // 在已經查出來的訂單信息中找出分頁后的數據 285 BackOrderDetails order = allOrderManageInfoResult 286 .get(pageIndex - 1);// .getAllUserByPage(pageIndex, 287 // pageSize); 288 289 list.add(order); 290 } 291 292 // 將獲取到的所有分頁信息填充到准備好的Page對象中 293 page.setPageCount(pageCount); 294 page.setPageIndex(pageIndex); 295 page.setPageNum(pageNum); 296 page.setPageSize(pageSize); 297 page.setList(list); 298 299 // 將填充好的page對象添加到作用域中 300 request.getSession().setAttribute("BackOrderPageInfo", page); 301 // 將訂單集合保存到作用域 302 // request.getSession().setAttribute("allOrderManageInfoResult", 303 // allOrderManageInfoResult); 304 } 305 306 //后台新聞管理 307 // 添加新聞信息 308 public void addNewsInfo(HttpServletRequest request, 309 HttpServletResponse response) throws Exception { 310 // 構造一個新聞實現類 311 EasyBuy_NewsDAOImpl impl = new EasyBuy_NewsDAOImpl(); 312 String newstitle = request.getParameter("title"); 313 newstitle = new String(newstitle.getBytes("ISO-8859-1"), "UTF-8"); 314 String newscontent = request.getParameter("content"); 315 newscontent = new String(newscontent.getBytes("ISO-8859-1"), "UTF-8"); 316 EasyBuy_News news = new EasyBuy_News(); 317 news.setEn_title(newstitle); 318 news.setEn_content(newscontent); 319 int addNewsResult = impl.addNews(news); 320 if (addNewsResult > 0) { 321 System.out.println("添加成功"); 322 // 更新數據 323 request.getRequestDispatcher("/BackServelet?index=NewsPage").forward(request, 324 response); 325 } else { 326 System.out.println("添加失敗"); 327 } 328 329 } 330 331 // 刪除新聞 332 public void deleteNewsInfo(HttpServletRequest request, 333 HttpServletResponse response) throws Exception { 334 // 構造一個新聞實現類 335 EasyBuy_NewsDAOImpl impl = new EasyBuy_NewsDAOImpl(); 336 String id = request.getParameter("TittleId"); 337 int count; 338 try { 339 count = impl.deleteNews(id); 340 if (count > 0) { 341 System.out.println("刪除成功"); 342 // 更新數據 343 request.getRequestDispatcher("/BackServelet?index=NewsPage").forward( 344 request, response); 345 } else { 346 System.out.println("刪除失敗"); 347 } 348 } catch (Exception e) { 349 e.printStackTrace(); 350 } 351 } 352 353 // 修改新聞 354 public void updateNewsInfo(HttpServletRequest request, 355 HttpServletResponse response) throws Exception { 356 357 // 構造一個新聞實現類 358 EasyBuy_NewsDAOImpl impl = new EasyBuy_NewsDAOImpl(); 359 String id = request.getParameter("newsid"); 360 int userid = Integer.parseInt(id); 361 String title = request.getParameter("title"); 362 title = new String(title.getBytes("iso-8859-1"), "utf-8"); 363 364 String content = request.getParameter("content"); 365 content = new String(content.getBytes("iso-8859-1"), "utf-8"); 366 367 try { 368 int count = impl.updateNews(title, content, userid); 369 if (count > 0) { 370 System.out.println("修改成功"); 371 // 更新數據 372 request.getRequestDispatcher("/BackServelet?index=NewsPage").forward( 373 request, response); 374 } else { 375 System.out.println("修改失敗"); 376 } 377 } catch (Exception e) { 378 e.printStackTrace(); 379 } 380 } 381 382 // 根據編號獲取到所有新聞信息 383 public void getAllNewsById(HttpServletRequest request, 384 HttpServletResponse response) throws Exception { 385 // 構造一個新聞實現類 386 EasyBuy_NewsDAOImpl impl = new EasyBuy_NewsDAOImpl(); 387 String id = request.getParameter("getId"); 388 int newsid = Integer.parseInt(id); 389 try { 390 List<EasyBuy_News> list = impl.getAllNewsById(newsid); 391 request.setAttribute("newslist", list); 392 request.getRequestDispatcher("/manage/news-modify.jsp").forward( 393 request, response); 394 } catch (Exception e) { 395 e.printStackTrace(); 396 } 397 } 398 399 // 查詢所有新聞信息 400 public void selectNewsInfo(HttpServletRequest request, 401 HttpServletResponse response) throws Exception { 402 //構建新聞分頁對象 403 BackNewsPage page = new BackNewsPage(); 404 //構建一個新聞實現類 405 EasyBuy_NewsDAOImpl impl_new = new EasyBuy_NewsDAOImpl(); 406 // 構造一些虛假的分頁的數據 407 int pageIndex = 0;// 當前頁數 408 int pageSize = 3;// 每頁顯示的數目 409 int pageCount = 0;// 總頁數 410 int pageNum = 0;// 總記錄數 411 List<EasyBuy_News> list = null;// 分頁后的數據集合 412 413 // 調用實現類中的方法,獲取到總記錄數 414 pageNum = impl_new.getNewsNum(); 415 416 // 根據總記錄數和每頁顯示的數目計算出總頁數 417 if (pageNum % pageSize == 0) { 418 pageCount = pageNum / pageSize; 419 } else { 420 pageCount = pageNum / pageSize + 1; 421 } 422 423 // 獲取到當期頁 424 String pIndex = request.getParameter("PageIndex"); 425 if (pIndex != null) { 426 pageIndex = Integer.parseInt(pIndex); 427 } else { 428 pageIndex = 1; 429 } 430 431 // 判斷是否達到了臨界點 432 if (pageIndex > pageCount || pageIndex < 1) { 433 pageIndex = 1; 434 } 435 436 // 調用方法查找出分頁后的數據 437 list = impl_new.getAllNewsByPage(pageIndex, pageSize); 438 439 // 將獲取到的所有分頁信息填充到准備好的Page對象中 440 page.setPageCount(pageCount); 441 page.setPageIndex(pageIndex); 442 page.setPageNum(pageNum); 443 page.setPageSize(pageSize); 444 page.setList(list); 445 446 // 將填充好的page對象添加到作用域中 447 request.getSession().setAttribute("BackallNewsResult", page); 448 //轉發 449 request.getRequestDispatcher("/manage/news.jsp").forward(request, response); 450 } 451 452 //后台用戶管理 453 // 用戶表的分頁顯示信息 454 public void UserPageInfo(HttpServletRequest request, 455 HttpServletResponse response) throws Exception { 456 // 構建用戶分頁對象 457 UserPage page = new UserPage(); 458 // 構造一些虛假的分頁的數據 459 int pageIndex = 0;// 當前頁數 460 int pageSize = 3;// 每頁顯示的數目 461 int pageCount = 0;// 總頁數 462 int pageNum = 0;// 總記錄數 463 List<EasyBuy_User> list = null;// 分頁后的數據集合 464 465 // 調用實現類中的方法,獲取到總記錄數 466 pageNum = impl_us.getUserNum(); 467 468 // 根據總記錄數和每頁顯示的數目計算出總頁數 469 if (pageNum % pageSize == 0) { 470 pageCount = pageNum / pageSize; 471 } else { 472 pageCount = pageNum / pageSize + 1; 473 } 474 475 // 獲取到當前頁 476 String pIndex = request.getParameter("PageIndex"); 477 if (pIndex != null) { 478 pageIndex = Integer.parseInt(pIndex); 479 } else { 480 pageIndex = 1; 481 } 482 483 // 判斷是否達到了臨界點 484 if (pageIndex > pageCount || pageIndex < 1) { 485 pageIndex = 1; 486 } 487 488 // 調用方法查找出分頁后的數據 489 list = impl_us.getAllUserByPage(pageIndex, pageSize); 490 491 // 將獲取到的所有分頁信息填充到准備好的Page對象中 492 page.setPageCount(pageCount); 493 page.setPageIndex(pageIndex); 494 page.setPageNum(pageNum); 495 page.setPageSize(pageSize); 496 page.setList(list); 497 498 // 將填充好的page對象添加到作用域中 499 request.getSession().setAttribute("BackUserPageInfo", page); 500 request.getRequestDispatcher("/manage/user.jsp").forward(request, 501 response); 502 503 } 504 505 // 點擊修改,獲取用戶現有信息 506 private void getUserByModify(HttpServletRequest request, 507 HttpServletResponse response) throws Exception { 508 // 點擊修改顯示其他信息時 獲取用戶id 509 String userId = request.getParameter("Userid"); 510 List<EasyBuy_User> list = impl_us.getAllUserById(userId); 511 request.setAttribute("getUserListById", list); 512 request.getRequestDispatcher("/manage/user-modify.jsp").forward( 513 request, response); 514 } 515 516 // 用戶表的修改操作 517 public void modifyUserInfo(HttpServletRequest request, 518 HttpServletResponse response) throws Exception { 519 EasyBuy_User user = new EasyBuy_User(); 520 request.setCharacterEncoding("utf-8"); 521 response.setCharacterEncoding("utf-8"); 522 // 姓名 防止亂碼 523 String names = request.getParameter("names"); 524 names = new String(names.getBytes("iso-8859-1"), "utf-8"); 525 user.setEu_user_Name(names); 526 // 密碼 527 user.setEu_passWord(request.getParameter("passWord")); 528 // 性別 529 user.setEu_sex(request.getParameter("sex")); 530 // 生日 531 user.setEu_birthDay(request.getParameter("birthday")); 532 // 手機號 533 user.setEu_mobile(request.getParameter("mobile")); 534 // 地址 防止亂碼 535 String address = request.getParameter("address"); 536 address = new String(address.getBytes("iso-8859-1"), "utf-8"); 537 user.setEu_addRess(address); 538 // 這個id在提交表單時攜帶的參數 539 String id = (String) request.getParameter("UserIdForModify"); 540 int count = impl_us.updateUser(user, id); 541 if (count > 0) { 542 request.getRequestDispatcher("/BackServelet?index=UserPage") 543 .forward(request, response); 544 } else { 545 request.getRequestDispatcher("/manage/user-modify.jsp").forward( 546 request, response); 547 System.out.println("修改失敗"); 548 } 549 } 550 551 // 刪除用戶信息 552 private void deleteUserInfo(HttpServletRequest request, 553 HttpServletResponse response) throws Exception { 554 String id = request.getParameter("UseridInDel"); 555 int count = impl_us.deleteUser(id); 556 if (count > 0) { 557 request.getRequestDispatcher("/BackServelet?index=UserPage") 558 .forward(request, response); 559 } else { 560 request.getRequestDispatcher("/manage/user-modify.jsp").forward( 561 request, response); 562 System.out.println("刪除失敗"); 563 } 564 } 565 566 //后台商品分類 567 // 商品分類表的分頁信息 568 public void ProductPageInfo(HttpServletRequest request, 569 HttpServletResponse response) throws Exception { 570 // 構建商品分類對象 571 BackProductClassPage page = new BackProductClassPage(); 572 // 構造一些虛假的分頁的數據 573 int pageIndex = 0;// 當前頁數 574 int pageSize = 3;// 每頁顯示的數目 575 int pageCount = 0;// 總頁數 576 int pageNum = 0;// 總記錄數 577 List<EasyBuy_Product_Category> list = null;// 分頁后的數據集合 578 List<EasyBuy_Product_Category> listChild = null; 579 // 調用實現類中的方法,獲取到總記錄數 580 pageNum = impl_pc.getProductClassNum(); 581 // 根據總記錄數和每頁顯示的數目計算出總頁數 582 if (pageNum % pageSize == 0) { 583 pageCount = pageNum / pageSize; 584 } else { 585 pageCount = pageNum / pageSize + 1; 586 } 587 // 獲取到當前頁 588 String pIndex = request.getParameter("PageIndex"); 589 if (pIndex != null) { 590 pageIndex = Integer.parseInt(pIndex); 591 } else { 592 pageIndex = 1; 593 } 594 // 判斷是否到達了臨界點 595 if (pageIndex > pageCount || pageIndex < 1) { 596 pageIndex = 1; 597 } 598 // 調用方法查詢分頁后的數據(一級分類) 599 list = impl_pc.getAllProductCategoryByPage(pageIndex, pageSize); 600 //list = impl_pc.getAllProductByParent(); 601 602 listChild = impl_pc.getAllProductByChild(); 603 604 // 將獲取到的所有分頁信息填充到准備好的Page對象中 605 page.setPageCount(pageCount); 606 page.setPageIndex(pageIndex); 607 page.setPageNum(pageNum); 608 page.setPageSize(pageSize); 609 page.setList(list); 610 611 // 將填充好的page對象添加到作用域中 612 request.setAttribute("BackProductClassPage", page); 613 // 子分類的list 614 request.setAttribute("listChild", listChild); 615 request.getRequestDispatcher("/manage/productClass.jsp").forward( 616 request, response); 617 } 618 619 // 點擊修改,獲取該商品信息 620 public void getProductClassByModify(HttpServletRequest request, 621 HttpServletResponse response) throws Exception { 622 623 int id = Integer.parseInt(request.getParameter("productId")); 624 String myId = request.getParameter("myId"); 625 if (myId != null) { 626 int myid = Integer.parseInt(myId); 627 request.setAttribute("myId", myid); 628 } 629 List<EasyBuy_Product_Category> list = impl_pc 630 .getProductCategoryById(id); 631 List<EasyBuy_Product_Category> listParent = impl_pc 632 .getAllProductByParent(); 633 634 request.setAttribute("getPCListById", list); 635 request.setAttribute("listParent", listParent); 636 request.getRequestDispatcher("/manage/productClass-modify.jsp") 637 .forward(request, response); 638 } 639 // 對商品分類的修改 640 public void modifyBackProductClass(HttpServletRequest request, 641 HttpServletResponse response) throws Exception { 642 EasyBuy_Product_Category proClass = new EasyBuy_Product_Category(); 643 request.setCharacterEncoding("utf-8"); 644 response.setCharacterEncoding("utf-8"); 645 String id = request.getParameter("BackPCIdForModify"); 646 if (request.getParameter("parentId") != null) { 647 proClass.setEpc_parent_id(Integer.parseInt(request 648 .getParameter("parentId"))); 649 } else { 650 proClass.setEpc_parent_id(Integer.parseInt(id)); 651 } 652 653 String names = request.getParameter("className"); 654 names = new String(names.getBytes("iso-8859-1"), "utf-8"); 655 proClass.setEpc_name(names); 656 657 int count = impl_pc.updateProductCategory(proClass, id); 658 if (count > 0) { 659 request.getRequestDispatcher("/BackServelet?index=ProductClassPage") 660 .forward(request, response); 661 } 662 } 663 // 點擊新增,進入新增頁面 664 public void getBackProductClassByInsert(HttpServletRequest request, 665 HttpServletResponse response) throws Exception { 666 List<EasyBuy_Product_Category> list = impl_pc.getAllProductByParent(); 667 request.setAttribute("listBackPCInsert", list); 668 request.getRequestDispatcher("/manage/productClass-add.jsp").forward(request, response); 669 } 670 //對商品分類的增加操作 671 public void insertBackProductClass(HttpServletRequest request, 672 HttpServletResponse response) throws Exception { 673 request.setCharacterEncoding("utf-8"); 674 EasyBuy_Product_Category backpc = new EasyBuy_Product_Category(); 675 int parentid = Integer.parseInt(request.getParameter("parentId")); 676 backpc.setEpc_parent_id(parentid); 677 String pcName = request.getParameter("className"); 678 pcName = new String(pcName.getBytes("iso-8859-1"), "utf-8"); 679 backpc.setEpc_name(pcName); 680 int count = impl_pc.addProductCategory(backpc); 681 if (count > 0) { 682 request.getRequestDispatcher("/BackServelet?index=ProductClassPage") 683 .forward(request, response); 684 } else { 685 request.getRequestDispatcher("/manage/productClass.jsp") 686 .forward(request, response); 687 System.out.println("修改失敗"); 688 } 689 690 691 } 692 //對商品分類進行刪除 693 public void delBackProductClass(HttpServletRequest request, 694 HttpServletResponse response) throws Exception { 695 String id = request.getParameter("backPCIdByDel"); 696 int count = impl_pc.deleteProductCategory(id); 697 if (count > 0) { 698 request.getRequestDispatcher("/BackServelet?index=ProductClassPage") 699 .forward(request, response); 700 } else { 701 request.getRequestDispatcher("/manage/product.jsp") 702 .forward(request, response); 703 System.out.println("刪除失敗"); 704 } 705 706 707 } 708 709 // 后台留言管理 710 // 獲取留言信息 711 public void BackCommentInfo(HttpServletRequest request, 712 HttpServletResponse response) throws Exception { 713 // 構建留言分頁對象 714 CommentPage page = new CommentPage(); 715 // 構造一些虛假的分頁的數據 716 int pageIndex = 0;// 當前頁數 717 int pageSize = 3;// 每頁顯示的數目 718 int pageCount = 0;// 總頁數 719 int pageNum = 0;// 總記錄數 720 List<EasyBuy_Comment> list = null;// 分頁后的數據集合 721 722 // 調用實現類中的方法,獲取到總記錄數 723 pageNum = impl_com.getCommentNum(); 724 725 // 根據總記錄數和每頁顯示的數目計算出總頁數 726 if (pageNum % pageSize == 0) { 727 pageCount = pageNum / pageSize; 728 } else { 729 pageCount = pageNum / pageSize + 1; 730 } 731 732 // 獲取到當期頁 733 String pIndex = request.getParameter("PageIndex"); 734 if (pIndex != null) { 735 pageIndex = Integer.parseInt(pIndex); 736 } else { 737 pageIndex = 1; 738 } 739 740 // 獲取到方向,判斷是上一頁還是下一頁 741 String direction = request.getParameter("direction"); 742 if (direction != null && direction.equals("up")) { 743 // 在原來頁數的基礎上減一 744 pageIndex--; 745 } else if (direction != null && direction.equals("down")) { 746 // 將頁數在原來的基礎上加1 747 pageIndex++; 748 } 749 750 // 判斷是否達到了臨界點 751 if (pageIndex > pageCount || pageIndex < 1) { 752 pageIndex = 1; 753 } 754 755 // 調用方法查找出分頁后的數據 756 list = impl_com.getAllCommentByPage(pageIndex, pageSize); 757 758 // 將獲取到的所有分頁信息填充到准備好的Page對象中 759 page.setPageCount(pageCount); 760 page.setPageIndex(pageIndex); 761 page.setPageNum(pageNum); 762 page.setPageSize(pageSize); 763 page.setList(list); 764 765 // 將填充好的page對象添加到作用域中 766 request.getSession().setAttribute("BackCommentPageInfo", page); 767 // 轉發到留言界面 768 request.getRequestDispatcher("/manage/guestbook.jsp").forward(request, 769 response); 770 771 } 772 773 // 對留言信息操作時,通過id獲取所有內容 774 public void getBackCommentByModify(HttpServletRequest request, 775 HttpServletResponse response) throws Exception { 776 String id = request.getParameter("BackCommentId"); 777 List<EasyBuy_Comment> list = impl_com.getAllCommentById(id); 778 request.setAttribute("BackCommentListById", list); 779 request.getRequestDispatcher("/manage/guestbook-modify.jsp").forward( 780 request, response); 781 } 782 783 // 對留言進行修改操作 784 public void modifyBackComment(HttpServletRequest request, 785 HttpServletResponse response) throws Exception { 786 request.setCharacterEncoding("utf-8"); 787 EasyBuy_Comment comment = new EasyBuy_Comment(); 788 String content = request.getParameter("replyContent"); 789 content = new String(content.getBytes("iso-8859-1"), "utf-8"); 790 comment.setEc_reply(content); 791 String id = request.getParameter("CommentIdByModify"); 792 int count = impl_com.updateComment(comment, id); 793 if (count > 0) { 794 request.getRequestDispatcher("/BackServelet?index=BackCommentPage") 795 .forward(request, response); 796 } else { 797 request.getRequestDispatcher("/manage/guestbook-modify.jsp") 798 .forward(request, response); 799 System.out.println("修改失敗"); 800 } 801 } 802 803 // 對留言的刪除操作 804 public void DeleteBackComment(HttpServletRequest request, 805 HttpServletResponse response) throws Exception { 806 String id = request.getParameter("CommentIdByDel"); 807 int count = impl_com.deleteComment(id); 808 if (count > 0) { 809 request.getRequestDispatcher("/BackServelet?index=BackCommentPage") 810 .forward(request, response); 811 } else { 812 request.getRequestDispatcher("/manage/guestbook-modify.jsp") 813 .forward(request, response); 814 System.out.println("刪除失敗"); 815 } 816 } 817 818 // 后台商品管理操作 819 // 獲取商品管理信息 820 public void BackProductInfo(HttpServletRequest request, 821 HttpServletResponse response) throws Exception { 822 // 構建商品分頁對象 823 BackProductPage productPage = new BackProductPage(); 824 // 構造一些虛假的分頁的數據 825 int pageIndex = 0;// 當前頁數 826 int pageSize = 3;// 每頁顯示的數目 827 int pageCount = 0;// 總頁數 828 int pageNum = 0;// 總記錄數 829 List<EasyBuy_Product> list = null;// 分頁后的數據集合 830 831 // 調用實現類中的方法,獲取到總記錄數 832 pageNum = impl_pm.getCommentNum(); 833 834 // 根據總記錄數和每頁顯示的數目計算出總頁數 835 if (pageNum % pageSize == 0) { 836 pageCount = pageNum / pageSize; 837 } else { 838 pageCount = pageNum / pageSize + 1; 839 } 840 841 // 獲取到當前頁 842 String pIndex = request.getParameter("PageIndex"); 843 if (pIndex != null) { 844 pageIndex = Integer.parseInt(pIndex); 845 } else { 846 pageIndex = 1; 847 } 848 849 // 判斷是否達到了臨界點 850 if (pageIndex > pageCount || pageIndex < 1) { 851 pageIndex = 1; 852 } 853 854 // 調用方法查找出分頁后的數據 855 list = impl_pm.getAllProductByPage(pageIndex, pageSize); 856 857 // 將獲取到的所有分頁信息填充到准備好的Page對象中 858 productPage.setPageCount(pageCount); 859 productPage.setPageIndex(pageIndex); 860 productPage.setPageNum(pageNum); 861 productPage.setPageSize(pageSize); 862 productPage.setList(list); 863 864 // 將填充好的page對象添加到作用域中 865 request.getSession().setAttribute("BackProductInfo", productPage); 866 request.getRequestDispatcher("/manage/product.jsp").forward(request, 867 response); 868 } 869 870 // 進入商品修改頁面 871 public void getBackProductByModify(HttpServletRequest request, 872 HttpServletResponse response) throws Exception { 873 response.setCharacterEncoding("utf-8"); 874 String myfilename = new String(request.getParameter("Backfilm") 875 .getBytes(), "utf-8"); 876 request.getSession().setAttribute("myfilename", myfilename); 877 878 String id = request.getParameter("BackProductId"); 879 List<EasyBuy_Product> list = impl_pm.getAllProductById(id); 880 List<EasyBuy_Product_Category> listPc = impl_pc.getAllProductByChild(); 881 request.setAttribute("BackProductListById", list); 882 request.setAttribute("BackProductPcListById", listPc); 883 request.getRequestDispatcher("/manage/product-modify.jsp").forward( 884 request, response); 885 } 886 887 // 對商品管理進行修改操作 888 public void modifyBackProduct(HttpServletRequest request, 889 HttpServletResponse response) throws Exception { 890 // 設置文件編碼 891 request.setCharacterEncoding("utf-8"); 892 String uploadFileName = "";// 上傳的文件名 893 String fieldName = "";// 表單字段元素的name屬性值 894 String myfilename = (String) request.getSession().getAttribute( 895 "myfilename"); 896 // 請求信息中的內容是普通文件類型還是上傳文件類型(multipart) 897 boolean isMultipart = ServletFileUpload.isMultipartContent(request); 898 // 上傳文件的存儲路徑(服務器文件系統上的絕對路徑) 899 String uploadFilePath = request.getSession().getServletContext() 900 .getRealPath("/images/product/"); 901 902 if (isMultipart) { 903 FileItemFactory factory = new DiskFileItemFactory(); 904 ServletFileUpload upload = new ServletFileUpload(factory); 905 try { 906 // 准備一個商品對象 907 EasyBuy_Product product = new EasyBuy_Product(); 908 // 解析form表單中的所有文件 909 List<FileItem> items = upload.parseRequest(request); 910 Iterator<FileItem> iter = items.iterator(); 911 // 獲取商品的ID 912 String id = request.getParameter("BPIdByMidify"); 913 while (iter.hasNext()) { // 依次處理每個文件 914 FileItem item = (FileItem) iter.next(); 915 if (item.isFormField()) { // 普通表單字段 916 fieldName = item.getFieldName(); // 表單字段的name屬性值 917 if (fieldName.equals("productName")) { 918 // 獲取商品名字 919 product.setEp_name(item.getString("utf-8")); 920 } else if (fieldName.equals("productDescription")) { 921 // 獲取商品描述 922 String title = item.getString("utf-8"); 923 product.setEp_description(title); 924 } else if (fieldName.equals("parentId")) { 925 // 獲取商品的次級分類ID 926 String author = item.getString("utf-8"); 927 product.setEpc_child_id(Integer.parseInt(author)); 928 929 List<EasyBuy_Product_Category> list = impl_pc 930 .getProductCategoryById(Integer 931 .parseInt(author)); 932 product.setEpc_id(list.get(0).getEpc_parent_id()); 933 } else if (fieldName.equals("productPrice")) { 934 // 獲取商品的單價 935 String author = item.getString("utf-8"); 936 product.setEp_price(author); 937 } else if (fieldName.equals("productStock")) { 938 // 獲取商品的庫存 939 String author = item.getString("utf-8"); 940 product.setEp_stock(Integer.parseInt(author)); 941 } 942 } else { 943 944 // 文件表單字段 945 String fileName = item.getName(); 946 if (fileName != null && !fileName.equals("")) { 947 948 File fullFile = new File(item.getName()); 949 File saveFile = new File(uploadFilePath, 950 fullFile.getName()); 951 item.write(saveFile); 952 uploadFileName = fullFile.getName();// 文件名:uploadFileName 953 uploadFileName = "images/product/" + uploadFileName; 954 product.setEp_file_name(uploadFileName); 955 } else { 956 957 product.setEp_file_name(myfilename); 958 } 959 } 960 } 961 int updateResult = impl_pm.updateProduct(product, id); 962 if (updateResult > 0) { 963 request.getRequestDispatcher( 964 "/BackServelet?index=BackProductPage").forward( 965 request, response); 966 } else { 967 request.getRequestDispatcher("/manage/product-modify.jsp") 968 .forward(request, response); 969 } 970 971 } catch (Exception e) { 972 e.printStackTrace(); 973 } 974 } 975 } 976 977 // 點擊新增,進入商品管理新增頁面 978 public void getBackProductByInsert(HttpServletRequest request, 979 HttpServletResponse response) throws Exception { 980 List<EasyBuy_Product_Category> list = impl_pc.getAllProductByChild(); 981 request.setAttribute("listInsert", list); 982 request.getRequestDispatcher("/manage/product-add.jsp").forward( 983 request, response); 984 } 985 986 // 對商品管理的增加操作 987 public void insertBackProduct(HttpServletRequest request, 988 HttpServletResponse response) throws Exception { 989 // 設置文件編碼 990 request.setCharacterEncoding("utf-8"); 991 String uploadFileName = "";// 上傳的文件名 992 String fieldName = "";// 表單字段元素的name屬性值 993 String myfilename = (String) request.getSession().getAttribute( 994 "myfilename"); 995 // 請求信息中的內容是普通文件類型還是上傳文件類型(multipart) 996 boolean isMultipart = ServletFileUpload.isMultipartContent(request); 997 // 上傳文件的存儲路徑(服務器文件系統上的絕對路徑) 998 String uploadFilePath = request.getSession().getServletContext() 999 .getRealPath("/images/product/"); 1000 1001 if (isMultipart) { 1002 FileItemFactory factory = new DiskFileItemFactory(); 1003 ServletFileUpload upload = new ServletFileUpload(factory); 1004 try { 1005 // 准備一個商品對象 1006 EasyBuy_Product product = new EasyBuy_Product(); 1007 // 解析form表單中的所有文件 1008 List<FileItem> items = upload.parseRequest(request); 1009 Iterator<FileItem> iter = items.iterator(); 1010 // 獲取商品的ID 1011 while (iter.hasNext()) { // 依次處理每個文件 1012 FileItem item = (FileItem) iter.next(); 1013 if (item.isFormField()) { // 普通表單字段 1014 fieldName = item.getFieldName(); // 表單字段的name屬性值 1015 if (fieldName.equals("productName")) { 1016 // 獲取商品名字 1017 product.setEp_name(item.getString("utf-8")); 1018 } else if (fieldName.equals("productDetail")) { 1019 // 獲取商品描述 1020 String title = item.getString("utf-8"); 1021 product.setEp_description(title); 1022 } else if (fieldName.equals("productPrice")) { 1023 // 獲取商品的單價 1024 String author = item.getString("utf-8"); 1025 product.setEp_price(author); 1026 1027 } else if (fieldName.equals("productNumber")) { 1028 // 獲取商品的庫存 1029 String author = item.getString("utf-8"); 1030 product.setEp_stock(Integer.parseInt(author)); 1031 } else if (fieldName.equals("parentId")) { 1032 String author = item.getString("utf-8"); 1033 // 獲取商品的次級分類ID 1034 product.setEpc_child_id(Integer.parseInt(author)); 1035 List<EasyBuy_Product_Category> list = impl_pc 1036 .getProductCategoryById(Integer 1037 .parseInt(author)); 1038 product.setEpc_id(list.get(0).getEpc_parent_id()); 1039 } 1040 } else { 1041 // 文件表單字段 1042 String fileName = item.getName(); 1043 if (fileName != null && !fileName.equals("")) { 1044 1045 File fullFile = new File(item.getName()); 1046 File saveFile = new File(uploadFilePath, 1047 fullFile.getName()); 1048 item.write(saveFile); 1049 uploadFileName = fullFile.getName();// 文件名:uploadFileName 1050 uploadFileName = "images/product/" + uploadFileName; 1051 product.setEp_file_name(uploadFileName); 1052 } else { 1053 product.setEp_file_name(myfilename); 1054 } 1055 } 1056 } 1057 int insertResult = impl_pm.addProduct(product); 1058 if (insertResult > 0) { 1059 request.getRequestDispatcher( 1060 "/BackServelet?index=BackProductPage").forward( 1061 request, response); 1062 } else { 1063 request.getRequestDispatcher("/manage/product-modify.jsp") 1064 .forward(request, response); 1065 } 1066 1067 } catch (Exception e) { 1068 e.printStackTrace(); 1069 } 1070 } 1071 } 1072 //對商品管理的刪除操作 1073 public void delBackProduct(HttpServletRequest request, 1074 HttpServletResponse response) throws Exception { 1075 String id = request.getParameter("productIdByDel"); 1076 int count = impl_pm.deleteProduct(id); 1077 if (count > 0) { 1078 request.getRequestDispatcher("/BackServelet?index=BackProductPage") 1079 .forward(request, response); 1080 } else { 1081 request.getRequestDispatcher("/manage/product.jsp") 1082 .forward(request, response); 1083 System.out.println("刪除失敗"); 1084 } 1085 1086 1087 }
代碼上有詳細注釋,可以自己領悟
這里我將后台商品分類拎出來
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>后台管理 - 易買網</title> <link type="text/css" rel="stylesheet" href="<%=path %>/css/style.css" /> <script type="text/javascript" src="<%=path %>/scripts/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="<%=path %>/scripts/function.js"></script> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <div id="header" class="wrap"> <div id="logo"><img src="<%=path %>/images/logo.gif" /></div> <div class="help"><a href="<%=path %>/Servelet">返回前台頁面</a></div> <div class="navbar"> <ul class="clearfix"> <li class="current"><a href="<%=path %>/manage/index.jsp">首頁</a></li> <li><a href="<%=path %>/BackServelet?index=UserPage">用戶</a></li> <li><a href="<%=path %>/BackServelet?index=BackProductPage">商品</a></li> <li><a href="<%=path %>/BackServelet?index=orderManage">訂單</a></li> <li><a href="<%=path %>/BackServelet?index=BackCommentPage">留言</a></li> <li><a href="<%=path%>/BackServelet?index=NewsPage">新聞</a></li> </ul> </div> </div> <div id="childNav"> <div class="welcome wrap"> 管理員pillys您好,今天是2012-12-21,歡迎回到管理后台。 </div> </div> <div id="position" class="wrap"> 您現在的位置:<a href="<%=path %>/manage/index.jsp">易買網</a> > 管理后台 </div> <div id="main" class="wrap"> <div id="menu-mng" class="lefter"> <div class="box"> <dl> <dt>用戶管理</dt> <dd><a href="<%=path %>/BackServelet?index=UserPage">用戶管理</a></dd> <dt>商品信息</dt> <dd><em><a href="<%=path %>/BackServelet?index=getBackPCByInsert">新增</a></em><a href="<%=path %>/BackServelet?index=ProductClassPage">分類管理</a></dd> <dd><em><a href="<%=path %>/BackServelet?index=getBackProductByInsert">新增</a></em><a href="<%=path %>/BackServelet?index=BackProductPage">商品管理</a></dd> <dt>訂單管理</dt> <dd><a href="<%=path %>/BackServelet?index=orderManage">訂單管理</a></dd> <dt>留言管理</dt> <dd><a href="<%=path %>/BackServelet?index=BackCommentPage">留言管理</a></dd> <dt>新聞管理</dt> <dd><em><a href="<%=path %>/manage/news-add.jsp">新增</a></em><a href="<%=path%>/BackServelet?index=NewsPage">新聞管理</a></dd> </dl> </div> </div> <div class="main"> <h2>修改商品</h2> <div class="manage"> <c:forEach var="item" items="${BackProductListById }"> <form enctype="multipart/form-data" action="<%=path %>/BackServelet?index=modifyBackProduct&BPIdByMidify=${item.ep_id}" method="post"> <table class="form"> <tr> <td class="field">商品名稱(*):</td> <td><input type="text" class="text" name="productName" value="${item.ep_name}" /></td> </tr> <tr> <td class="field">描述:</td> <td><input type="text" class="text" name="productDescription" value="${item.ep_description}" /></td> </tr> <tr> <td class="field">所屬分類:</td> <td> <select name="parentId"> <c:forEach var="items" items="${BackProductPcListById }"> <c:if test="${items.epc_id eq item.epc_child_id}"> <option value="${items.epc_id }" selected="selected">${items.epc_name }</option> </c:if> <c:if test="${items.epc_id != item.epc_child_id}"> <option value="${items.epc_id }">${items.epc_name }</option> </c:if> </c:forEach> </select> </td> </tr> <tr> <td class="field">商品價格(*):</td> <td><input type="text" class="text tiny" name="productPrice" value="${item.ep_price}" /> 元</td> </tr> <tr> <td class="field">庫存(*):</td> <td><input type="text" class="text tiny" name="productStock" value="${item.ep_stock}" /></td> </tr> <tr> <td class="field">商品圖片:</td> <td><input type="file" class="text" name="photo" value="${item.ep_file_name}" /></td> </tr> <tr> <td></td> <td><label class="ui-blue"><input type="submit" name="submit" value="確定" /></label></td> </tr> </table> </form> </c:forEach> </div> </div> <div class="clear"></div> </div> <div id="footer"> Copyright © 2013 北大青鳥 All Rights Reserved. 京ICP證1000001號 </div> </body> </html>
代碼都在這里,可以自己研究哦 ~