嘉应-购物车系统课程设计.doc_第1页
嘉应-购物车系统课程设计.doc_第2页
嘉应-购物车系统课程设计.doc_第3页
嘉应-购物车系统课程设计.doc_第4页
嘉应-购物车系统课程设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP购物车程序课程设计报告 姓 名:院 系:计算机学院班 级:1202班设计名称:购物车程序设计指导教师:2014年 12月 8日目录一、需求分析31.功能需求32.开发及运行环境4(1) 硬件平台4(2) 软件要求4二、总体设计42.1网站的设计目标42.2网站的深入调查42.3网站设计的特点52.4网站开发的设计思想5三、模块设计53.1 基于MVC的应用开发模型53.2平台功能模块的设计分析7四、程序模块设计74.1 系统流程分析74.1.1前台购物流程如图4-2 所示74.1.2注册功能流程如图4-3所示84.1.3商品搜索流程如图4-4所示94.1.4用户登录流程104.1.5购物车流程11五、详细设计与代码实现115.1注册设计115.2登录设计135.3购物车设计145.3.1 购物车模块的实现145.3.2商品信息185.3.3 商品搜索模块的实现19六、实验总结1921一、需求分析网络购物车是现在广泛用于网上购物的工具之一。购物车主要提供了基本的用户注册,用户登录,增删物品,统计价格等功能。用户在使用购物车时,可以方便的使用这些简易的功能。1.功能需求从部署的位置来看,本项目可以分为服务器端和客户端。服务器端的应用主要是起管理作用,用户端发送的所有消息都将被发送到服务器端,经过服务器端的出来后,服务器端可以选择将消息丢弃或者转发。用户端的应用分成三种。第一种是提供基本的登录界面,在登录界面中应该有服务器地址选择、服务器端口选择以及用户登录昵称等信息;第二种是想服务器发送消息,比如用户注册,用户登录、用户退出、添加物品,删除物品,统计价格等消息;第三种是响应服务器的消息,即当接收到服务器端方式的消息后,采取响应的动作。比如当用户端收到服务器端发送的添加物品的消息后,用户端应该从消息中提取添加物品的信息,并将信息按要求添加到适当的位置。综上所述,本系统需要提供一下的界面和功能:(1)用户注册。当用户第一次使用购物车时,提供用户注册界面,以便后期进行各种购物车功能(2)在用户端提供登录界面,支持服务器的选择,并提供所选择服务器的端口号,以及基本的登录昵称的输入。(3)提供一个完整的网络消息协议的设计以及实现。该消息协议应包括登录消息、添加物品、删除物品、统计价格等。每一种网络消息都应该有响应处理以及回复的方法。(4)在客户端提供购物车页面。用户在购物车页面可以进行添加、删除等操作,并可以实时统计价格。(5)在服务器端提供消息出来机制。对客户端发送的各种消息,服务器端应该在进行分析后,进行响应的处理。2.开发及运行环境 (1) 硬件平台CPU: Pentium 4 2.0GHz以上内存:512MB以上容量显卡:32MB或以上显存之AGP接口显卡 (2) 软件要求操作系统:Microsoft Windows XP/Microsoft Windows 7运行环境:Tomcat/jdk1.6开发工具:MyEclipse 二、总体设计2.1网站的设计目标本购物系统由于需要演示程序,故为了演示方便,采用JSP+Oracle数据库的架构实现的,此系统分为前台管理和后台管理。操作界面的功能是供用户浏览、查询使用。包括:浏览商品、查询商品、订购商品、购物车等功能;2.2网站的深入调查经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,设计出该平台功能如下:1. 能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。2. 能过电子商品的名称,电子商品的分类进行搜索。3. 能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。2.3网站设计的特点我所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,达到资源共享,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购物活动过程简单、方便、易行。2.4网站开发的设计思想网上购物平台主要功能是用户登录到本网站,可以进行用户注册,通过网站的精品推荐或商品搜索功能,找到自己想要买的商品,装入购物车,提交定单进行购买。三、模块设计根据需求分析以及功能需求,我们得出我们的购物网站的总体框架以及程序的实际运用流程.3.1 基于MVC的应用开发模型在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。Control服务控制View显示方式Model业务逻辑模型输入请求输出Html其他图3-3 MVC业务流程示意图通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。View(视图)层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。3.2平台功能模块的设计分析用户进入网上购物平台,用户可以注册,然后登录后,用户可以通过商品搜索,找到自己想要产品。作出添加商品到购物车和处理订单等操作。四、程序模块设计4.1 系统流程分析4.1.1前台购物流程如图4-2 所示浏览商品选择商品订购商品去购物车去收银台提交订单未注册用户已登录注册用户未登录注册用户注册登录图4-2 前台购物流程图用户再前台可以浏览商品,看到自己喜欢的商品可以选择商品,然后订购商品,这时需要进行判断,如果是没有注册的用户,那么系统跳到注册页面,如果是注册了没有登录的用户,则跳转到登录页面,已经登录的用户则跳转到购物车页面,然后去收银台结帐,然后提交订单。4.1.2注册功能流程如图4-3所示 注册入口必选项为空用户名有效?2次输入密码是否一致?密码长度符合要求?Emai地址有效效?其他信息有效注册成功图4-3 注册功能流程图注册的具体实现为:点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E_mail,地址,电话,真实,姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。4.1.3商品搜索流程如图4-4所示开始搜索输入条件搜索结果查看商品购物车下订单继续搜索是否图4-4 商品搜索流程图商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。4.1.4用户登录流程如图4-5所示登录入口取得用户名和密码将用户ID(mid)存入session中查询用户是否存在核对密码是否正确登录成功是是否否图4-5 用户登陆流程图用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。4.1.5购物车流程如图4-7所示购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。1.列出商品的列表,使用户能够自由选择所需要的商品。2.当用户在点击“添加到购物车”的链接时,执行如下功能:检查用户购物车类是否存在。如不存在,则建立,并注册这session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。购物车查看商品满意吗下订单调整商品是否 图47 购物车流程图五、详细设计与代码实现5.1注册设计如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该处存在用户名命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。注册页面的效果图如下图5-3所示:图5-3注册页面示意图系统对用户的注册信息的验证实现如下:用户输入的各项信息分别对应字段先判断用户名是否为空request.getParameter(mid).equals() 同样道理对密码进行判断判断两次输入是否一致password.equals(rePassword)其他选项与上面类似,如果条件符合则将该值赋给各个字段用户名重复的验证代码为:sql=select * from member where mid=+mid+;当所有条件都符合的时候,系统将数据写入数据表,并返回成功页面,显示用户所填的注册信息,写入关键语句为:sql = INSERT INTO MEMBER VALUES(?,?,?,?);5.2登录设计用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行定购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进行定购。如果用户以浏览者的身份进入网站,则只能进行一般的商品浏览和搜索,而不能进行选购,在点击添加购物车后,系统会判断该用户是否是登陆用户,如果不是则弹出提示页面,提示用户必须先登陆才能定购商品。 登陆的具体实现要通过一个全程变量,即session变量来实现,用户登录的界面login.jsp,从member表查得用户提交的帐户名和密码正确后,用一个全局变量,即session变量保存这一消息(该变量名称为session(“mid”))。示意图如图5-4所示图5-4 登录示意图具体的判断过程为:若session中user为空即session.getAttribute(mid)=null,表明没有经过登陆与否的验证,则立即跳转到login.jsp,请用户登录;并将用户登陆的帐号和密码通过关键代码为:String sql=select * from member where mid=+mid+;如果user_name存在的话则判断其密码是否正确如果为真则将用户信息赋给session session.setAttribute(mid,+mid+);以方便系统对用户在操作一些会员功能时进行用户身份验证。登录后,可以在导航条上看到自己的用户名,如图5-5所示:图5-5 用户信息示意图5.3购物车设计5.3.1 购物车模块的实现当用户登陆成功以后,如果找到了希望定购的物品,可以浏览商品列表,将想要定购的商品加入购物车,成功后会显示该物品已经添加进购物车,然后用户需要选择定购的数量。页面效果如图5-7所示:图5-7购物车示意图在点击确认以后,该物品信息被后台添加到购物车表即member_product表中,如果用户需要继续购物,可以继续选择,不断添加,系统会自动将所有信息写入member_product表,同时显示用户所购买的物品列表,及合计价格。其具体代码实现过程为:从session中取得该用户的信息mid=(String)session.getAttribute(mid);对商品的信息进行提取以写入购物车表具体的写入语句为:sql = INSERT INTO MEMBER_PRODUCT(MID,PID,MPID,AMOUNT) VALUES(?,?,?,?);以下是用户执行确认后的示意图,如图5-8所示图5-8 所购商品信息示意图如果用户在去收银台结帐前对已经选购的物品不满意时,可选择从购物车中删除商品,同时系统也将member_product表中相关信息删除。用户完成选购之后,可点击收银台付款,系统返回最终选购物品列表和合计价格,如图5-9所示:图5-9收银台结帐示意图该步骤实现的关键语句为:String sql = SELECT MP.MID,MP.PID,MP.MPID,MP.AMOUNT,P.PRICE,P.NAME,P.COLOR,P.NOTE,MP.FLAG FROM MEMBER M , PRODUCT P , MEMBER_PRODUCT MP WHERE MP.MID=M.MID AND MP.PID=P.PID AND MP.MID=?;提交订单后,系统会将商品信息和联系人信息存储到product_order表中这一步的具体实现主要语句是sql = INSERT INTO PRODUCT_ORDER(MID,PID,P_NAME,ADDRESS,COLOR,TELEPHONE,ZIPCODE,OID,LID,PRICE,AMOUNT,M_NAME) VALUES(?,?,?,?,?,?,?,?,?,?,?,?);然后删除member_product表中该交易的信息。确认后,系统弹出提交成功页面,如图5-11所示:图5-11 订货成功示意图该页面也就是将用户提交的订单信息返回,并产生了一个唯一订单号,以方便用户查询,这个订单号的产生,并不是随机产生的,而是使用了一定的规则,在这里主要是根据商品编号和订单产生的时间来生成订单号,具体的代码如下:Calendar cal=Calendar.getInstance(); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH); int day=cal.get(Calendar.DATE); int hour=cal.get(Calendar.HOUR_OF_DAY); int minute=cal.get(Calendar.MINUTE); int second=cal.get(Calendar.SECOND);String oid = year+month+day+hour+minute+second+mp.getPid(); 相类似的,系统中的其他类似字段也可以使用这样规则来产生随机编号,以方便管理5.3.2商品信息 商品信息主要是为了让顾客对所需要的信息就行了解。商品的信息都会显示到商品列表中(参考图5-7)其中商品显示的关键代码如下:String sql = SELECT * FROM(SELECT PID,NAME,PRICE,AMOUNT,QUALITY,BRAND,CATEGORY,IMAGE,COLOR,NOTE,ROWNUM AS RN FROM PRODUCT WHERE(PID LIKE ? OR NAME LIKE ? OR NOTE LIKE ? OR PRICE LIKE ? OR AMOUNT LIKE ? OR QUALITY LIKE ? OR BRAND LIKE ? OR CATEGORY LIKE ? OR COLOR LIKE ?)AND ROWNUM=? ORDER BY PID;该sql配合页面显示进行了分页处理,且添加了模糊查找功能。5.3.3 商品搜索模块的实现网上购物作为一个在网上展示自己商品的销售系统,如何能让用户以最快的速度找

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论