简介下关于易买网的各个功能模块:

前台:

(1)登录,注册

(2)按照分类查询商品

(3)加入购物车

(4)买家留言

(5)结账

后台:

(1)账号管理

(2)商品管理

(3)商品分类

(4)回复买家留言

(5)订单管理

 项目的大概目录如下

MySQL易买网 易买网络科技有限公司_easybuy  易买网  S2

  由于本人主要写的是后台的一些功能,所以只能详解后台功能

后台的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>

 代码都在这里,可以自己研究哦  ~