目录第一章概述 (2)【实验目的】 (2)【需求分析】 (2)第二章网上商店结构分析与设计 (3)【前言】 (3)2.1 系统结构图 (3)2.2系统功能分析 (4)第三章详细设计 (4)3.1数据库设计 (4)3.2 商品模块实现 (5)3.2.1 模块功能实现和关键代码说明 (5)3.3 用户注册/登录模块实现 (9)3.3.1 模块功能实现和关键代码说明 (9)3.4 购物车模块实现 (12)3.4.1 模块功能实现和关键代码说明 (12)3.5 结算功能模块 (16)第四章总结 (17)【技术总结】 (17)【心得体会】 (18)第一章概述【实验目的】1.掌握java-web网站设计的全过程;2.进一步熟练Servlet技术、数据库、标签等一般java-web应用技术;3.掌握整个java-web应用架构、目录结构以及服务器使用。
【需求分析】1.设计一个较完善的网上军靴商店;2.账户模块:提供用户注册、登录,考虑用户数量增减,需要用数据库技术;3.商品显示模块:出于增加销售量考虑,需要有简单广告功能,并提供商品详细参数;推广商品,网站需要对热销商品展示以及商品分类显示、商品查询;4.订单管理模块、订单详细信息模块:显示已保存的订单的详细信息;5.购物车模块:添加/删除商品,结帐,显示订单信息。
第二章网上商店结构分析与设计【前言】随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。
本系统正是基于这样一种环境下应运而生。
本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。
本商城主要利用javaservlet技术进行开发,有很强的逻辑性、可扩展性,便于维护。
商城界面设计主要实用了CSS,美化了店面。
其次本商城设计还使用了JSP技术、JDBC技术、JavaBean技术、css。
2.1 系统结构图图2.1 系统整体框图2.2系统功能分析新品上市模块:在首页框架中显示新品列表畅销商品模块:在首页框架中显示畅销列表购物车模块:显示已点击购买但没结账的商品结账模块:直接显示当前订单查看商品信息模块:显示当前商品详细信息商品分类模块:分类显示商品全部商品模块:显示商品列表查询商品模块:搜寻商品,显示商品信息用户注册模块:实现用户注册统功能分析第三章详细设计3.1数据库设计商品表(shoe)用户表(user)用户订单表(orderinfo)3.2 商品模块实现3.2.1 模块功能实现和关键代码说明先由JSP页面发出请求调用mypack包下GetshoeServlet,调用里面的doGet方法,然后调用db.executeQuery(sql)方法,查询数据库,查到热销商品的列表,保存进requeset对象的resault变量里,然后通过调用取出其中的值,显示到主页面。
商品查询模块按商品ID、关键词查询,商品显示模块使用同样方法根据不同条件查询数据库。
主要代码如下:protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {req.setCharacterEncoding("utf-8");String typeId = req.getParameter("typeId");String shoeId = req.getParameter("shoeId");String keyword = req.getParameter("keyword");String sql = "select * from shoe";String sql1 = "select * from shoe where typeId = ?"; String sql2 = "select * from shoe where shoeId = ?";List<Shoe> shoelist = new ArrayList<Shoe>(); HttpSession session = req.getSession();BookDB db = null;CachedRowSet result = null;try {db = new BookDB();if(typeId != null){if(typeId.equals("0")){result = db.executeQuery(sql);}else{result = db.executeQuery(sql1, typeId);}while(result.next()){Shoe shoe = new Shoe();shoe.setType(result.getString(1));shoe.setShoeId(result.getInt(2));shoe.setName(result.getString(3));shoe.setPrice(result.getFloat(4));shoelist.add(shoe);}session.setAttribute("shoelist", shoelist);resp.sendRedirect(req.getContextPath()+"/catalog.jsp");}if(shoeId != null){result = db.executeQuery(sql2, Integer.parseInt(shoeId));if(result.next()){Shoe shoeDetail = new Shoe();shoeDetail.setType(result.getString(1));shoeDetail.setShoeId(result.getInt(2));shoeDetail.setName(result.getString(3));shoeDetail.setPrice(result.getFloat(4));shoeDetail.setSale_amount(result.getInt(5));session.setAttribute("shoedetail", shoeDetail);}resp.sendRedirect(req.getContextPath()+"/shoedetail.jsp");}if(keyword != null){result = db.executeQuery(sql);while(result.next()){if(result.getString(3).contains(keyword)){Shoe shoe = new Shoe();shoe.setType(result.getString(1));shoe.setShoeId(result.getInt(2));shoe.setName(result.getString(3));shoe.setPrice(result.getFloat(4));shoelist.add(shoe);}}session.setAttribute("shoelist", shoelist);resp.sendRedirect(req.getContextPath()+"/catalog.jsp");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}3.3 用户注册/登录模块实现3.3.1 模块功能实现和关键代码说明先由JSP页面发出请求调用mypack包下UserRegistServlet/UserLoginServlet,调用里面的 doGet方法,然后调用db.executeQuery(sql1, username, password)方法,更新数据库。
主要代码如下:登录(UserLoginServlet):HttpSession session = req.getSession();try {db = new BookDB();result = db.executeQuery(sql1, username, password);if (result.next()) {user = new User();user.setUsername(result.getString(1));user.setPassword(result.getString(2));user.setMail(result.getString(3));user.setTel(result.getString(4));session.setAttribute("user", user);resp.sendRedirect(req.getContextPath() + "/index.jsp");} else {resp.sendRedirect(req.getContextPath() + "/login.jsp?statu=no");}注册(UserRegistServlet):String username = req.getParameter("username");String password = req.getParameter("password");String mail = req.getParameter("mail");String tel = req.getParameter("tel");String sql1 = "select * from user where username = ?";String sql2 = "insert into user values(?, ?, ?, ?)";BookDB db;CachedRowSet result = null;try {db = new BookDB();result = db.executeQuery(sql1, username);if(result.next()){resp.sendRedirect(req.getContextPath()+"/regist.jsp?statu=no") ;}else{db.executeUpdata(sql2, username, password, mail, tel);resp.sendRedirect(req.getContextPath()+"/regist.jsp?statu=ok") ;}3.4 购物车模块实现3.4.1 模块功能实现和关键代码说明图3.1 购物车模块流程图先由JSP页面发出请求调用org.action包下的findId方法,findId 调用DaoImpl包里的findOrderById,把得到的结果,保存到session里取名order1通过orderdetail里取变量得到这个值,显示到主页面。