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