Java 实战项目锤炼之仿天猫网上商城的实现流程
作者:qq_1334611189
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+jsp+servlet+mysql+ajax实现一个仿天猫网上商城项目,大家可以在过程中查缺补漏,提升水平
一、项目简述
功能:
前台:
* 用户模块
* 分类模块
* 商品模块
* 购物车模块
* 订单模块
后台:
* 管理员模块
* 分类管理模块
* 商品管理模块
* 订单模块
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。
基础信息操作代码:
基础信息操作: public abstract class BaseBackServlet extends HttpServlet { /* 添加 */ public abstract String add(HttpServletRequest request, HttpServletResponse response, Page page); /* 删除 */ public abstract String delete(HttpServletRequest request, HttpServletResponse response, Page page); /* 更新 */ public abstract String update(HttpServletRequest request, HttpServletResponse response, Page page); /* 修改 */ public abstract String edit(HttpServletRequest request, HttpServletResponse response, Page page); /* 显示 */ public abstract String list(HttpServletRequest request, HttpServletResponse response, Page page); protected CategoryDAO categoryDAO = new CategoryDAO(); protected OrderDAO orderDAO = new OrderDAO(); protected OrderItemDAO orderItemDAO = new OrderItemDAO(); protected ProductDAO productDAO = new ProductDAO(); protected ProductImageDAO productImageDAO = new ProductImageDAO(); protected PropertyDAO propertyDAO = new PropertyDAO(); protected PropertyValueDAO propertyValueDAO = new PropertyValueDAO(); protected ReviewDAO reviewDAO = new ReviewDAO(); protected UserDAO userDAO = new UserDAO(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try{ /* 获取分页信息 */ int start = 0; int count = 5; try{ start = Integer.parseInt(req.getParameter("page.start")); count = Integer.parseInt(req.getParameter("page.count")); } catch(Exception e) { } Page page = new Page(start, count); /* 借助反射,调用对应的方法 */ String method = (String)req.getAttribute("method"); Method m = this.getClass().getMethod(method, HttpServletRequest.class, HttpServletResponse.class, Page.class); String redirect = m.invoke(this, req, resp, page).toString(); /* 根据方法的返回值,进行相应的客户端、服务端跳转,或仅输出字符串 */ if(redirect.startsWith("@")){ resp.sendRedirect(redirect.substring(1)); } else if(redirect.startsWith("%")){ resp.getWriter().print(redirect.substring(1)); } else { req.getRequestDispatcher(redirect).forward(req, resp); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } public InputStream parseUpload(HttpServletRequest request, Map<String, String> params){ InputStream is = null; try{ DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); //设置上传的文件大小限制为10M factory.setSizeThreshold(1024 * 1024); List items = upload.parseRequest(request); Iterator iter = items.iterator(); while(iter.hasNext()){ FileItem item = (FileItem) iter.next(); if(!item.isFormField()){ //获取上传文件的输入流 is = item.getInputStream(); } else { String paramName = item.getFieldName(); String paramValue = item.getString(); paramValue = new String(paramValue.getBytes("ISO-8859-1"), "UTF-8"); params.put(paramName, paramValue); } } } catch (FileUploadException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return is; } }
用户信息操作代码:
用户信息操作: public class UserServlet extends BaseBackServlet { @Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 UserServlet add方法"); return null; } @Override public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 UserServlet delete方法"); int id = Integer.parseInt(request.getParameter("id")); userDAO.delete(id); return "@admin_user_list"; } @Override public String update(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 UserServlet update方法"); Map<String, String> params = new HashMap<>(); InputStream is = super.parseUpload(request, params); System.out.println(params); int id = Integer.parseInt(params.get("id")); String password = params.get("password"); User user = userDAO.get(id); user.setPassword(password); userDAO.update(user); return "@admin_user_list"; } @Override public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 UserServlet edit方法"); int id = Integer.parseInt(request.getParameter("id")); User u = userDAO.get(id); request.setAttribute("u", u); return "admin/editUser.jsp"; } @Override public String list(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("调用了 UserServlet list方法"); List<User> us = userDAO.list(page.getStart(), page.getCount()); int total = userDAO.getTotal(); page.setTotal(total); request.setAttribute("us", us); request.setAttribute("page", page); return "admin/listUser.jsp"; } }
以上就是Java 实战项目锤炼之仿天猫网上商城的实现流程的详细内容,更多关于Java 天猫商城的资料请关注脚本之家其它相关文章!