简介下关于易买网的各个功能模块:
前台:
(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>
代码都在这里,可以自己研究哦 ~
