1目录第一章概述.............................................2【实验目的】..........................................2【需求分析】..........................................2第二章网上商店结构分析与设计............................3【前言】..............................................32.1系统结构图........................................32.2系统功能分析.......................................4第三章详细设计..........................................43.1数据库设计........................................43.2商品模块实现.....................................53.2.1模块功能实现和关键代码说明..................53.3用户注册/登录模块实现.............................923.3.1模块功能实现和关键代码说明..................93.4购物车模块实现..................................123.4.1模块功能实现和关键代码说明.................123.5结算功能模块.....................................16第四章总结.............................................17【技术总结】.........................................17【心得体会】.........................................18第一章概述【实验目的】1.掌握java-web网站设计的全过程;2.进一步熟练Servlet技术、数据库、标签等一般java-web应用技术;3.掌握整个java-web应用架构、目录结构以及服务器使用。【需求分析】1.设计一个较完善的网上军靴商店;2.账户模块:提供用户注册、登录,考虑用户数量增减,需要用数据库技术;3.商品显示模块:出于增加销售量考虑,需要有简单广告功能,并提供商品详细参数;推广商品,网站需要对热销商品展示以及商品分类显示、商品查询;4.订单管理模块、订单详细信息模块:显示已保存的订单的详细信息;5.购物车模块:添加/删除商品,结帐,显示订单信息。3第二章网上商店结构分析与设计【前言】随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生。本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。本商城主要利用javaservlet技术进行开发,有很强的逻辑性、可扩展性,便于维护。商城界面设计主要实用了CSS,美化了店面。其次本商城设计还使用了JSP技术、JDBC技术、JavaBean技术、css。2.1系统结构图商店前台用户登录模块新品上市模块商品分类显示模块热销商品模块购物车模块用户注册模块商品查询模块订单显示模块收银台模块4图2.1系统整体框图2.2系统功能分析新品上市模块:在首页框架中显示新品列表畅销商品模块:在首页框架中显示畅销列表购物车模块:显示已点击购买但没结账的商品结账模块:直接显示当前订单查看商品信息模块:显示当前商品详细信息商品分类模块:分类显示商品全部商品模块:显示商品列表查询商品模块:搜寻商品,显示商品信息用户注册模块:实现用户注册统功能分析第三章详细设计3.1数据库设计商品表(shoe)5用户表(user)用户订单表(orderinfo)3.2商品模块实现3.2.1模块功能实现和关键代码说明6先由JSP页面发出请求调用mypack包下GetshoeServlet,调用里面的doGet方法,然后调用db.executeQuery(sql)方法,查询数据库,查到热销商品的列表,保存进requeset对象的resault变量里,然后通过调用取出其中的值,显示到主页面。商品查询模块按商品ID、关键词查询,商品显示模块使用同样方法根据不同条件查询数据库。主要代码如下:protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{Begin调用mypack包下Getshoeservlet里doGet方法返回GoodsAction查询数据库显示到主页面7req.setCharacterEncoding(utf-8);StringtypeId=req.getParameter(typeId);StringshoeId=req.getParameter(shoeId);Stringkeyword=req.getParameter(keyword);Stringsql=select*fromshoe;Stringsql1=select*fromshoewheretypeId=?;Stringsql2=select*fromshoewhereshoeId=?;ListShoeshoelist=newArrayListShoe();HttpSessionsession=req.getSession();BookDBdb=null;CachedRowSetresult=null;try{db=newBookDB();if(typeId!=null){if(typeId.equals(0)){result=db.executeQuery(sql);}else{result=db.executeQuery(sql1,typeId);}while(result.next()){Shoeshoe=newShoe();shoe.setType(result.getString(1));shoe.setShoeId(result.getInt(2));8shoe.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()){ShoeshoeDetail=newShoe();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){9result=db.executeQuery(sql);while(result.next()){if(result.getString(3).contains(keyword)){Shoeshoe=newShoe();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(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}3.3用户注册/登录模块实现3.3.1模块功能实现和关键代码说明10先由JSP页面发出请求调用mypack包下UserRegistServlet/UserLoginServlet,调用里面的doGet方法,然后调用db.executeQuery(sql1,username,password)方法,更新数据库。主要代码如下:登录(UserLoginServlet):HttpSessionsession=req.getSession();try{db=newBookDB();result=db.executeQuery(sql1,username,password);Begin调用/ARMY-SHOES/UserLoginServlet和UserRegistServlet返回查询/更新数据库显示regist.jsp/login.jsp11if(result.next()){user=newUser();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):Stringusername=req.getParameter(username);Stringpassword=req.getParameter(password);Stringmail=req.getParameter(mail);Stringtel=req.getParameter(tel);Stringsql1=select*fromuserwhereusername=?;12Stringsql2=insertintouservalues(?,?,?,?);BookDBdb;CachedRowSetresult=null;try{db=newBookDB();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模块功能实现和关键代码说明13先由JSP页面发出请求