1、专业综合实践论文样本摘 要 上世纪90年代以来,随着网络、通信和信息技术的突破性进展,Internet在全球爆炸性增长并迅速普及。在这一发展背景下,网上购物应运而生了。网上购物是基于互联网、以交易双方为主体、以银行电子支付和结算为手段、以客户数据为依托的全新的商务模式。 本次实践采用JSP+Servlet+JavaBean技术、基于MVC架构,开发并设计一个简单的网上购物小车网站。Java环境是JDK1.5.0_06,IDE环境是NetBeans5.0和 SQL数据库。网站主要根据实际的需求,进行了网站功能模块的详细设计和实现。 本系统实现了查询功能、购买功能、管理功能模块。本论文详尽论述了需
2、求分析、系统分析、概要设计、详细设计、以及测试与调试的整个过程。最后,总结了网站实现的优缺点。本网站具有良好的功能完备性,较好的人机交互界面,测试结果表明,网站设计已经达到要求,具有较好的实用价值。关键词:购物车网站 系统开发 数据库设计 实用性目 录第一章 引 言 1第二章 需求分析 2第三章 总体设计 3第四章 详细设计与实现 6第五章 系统测试 12结 论 13参考文献 14第1章 引 言网上购物是基于互联网、以交易双方为主体、以银行电子支付和结算为手段、以客户数据为依托的全新的商务模式,它可以使商家与供应商更紧密地联系起来,更快地满足客户需求,也可以让商家在全球范围内选择最佳供应商,在
3、全球市场上销售产品。著名网络经济调查评论家Robert Metcalfe声称:“互联网的价值等于网点数量的平方。网上购物中心作为电子商务的一种形式正以高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已不再满足于信息浏览和发布,而是渴望着能够充分享受网络所带来的更多的便利。的确,客户足不出户便可以方便快捷的选购自己喜欢的商品,这正是网络购物中心为客户带来的好处。敏锐的网络商家当然不会错过这样绝好的机会,越来越多的网站投身到提供网络购物服务的行列中来,一个基于Internet的全球电子商务框架正在形成。网上购物的有无穷的魅力和意义。在中国,“网上购物”,这个逐渐流行于二十世纪的购物方式已经为
4、越来越多的人所接受。本课题以JSP+Servlet+JavaBean开发一个基于MVC架构,设计一个简单的网上购物小车网站。将信息化的观念导入购物车整体设计之中,并规划完善网站系统,以及对系统所需的相关技术进行探讨,网上购物有无穷的魅力和意义。第2章 需求分析网上购物车的网站需求大体如下:查询功能模块(以分页的方式列出所有当前的商品,也可以输入商品的具体名称进行精确查找)、购买功能模块(选择要购买的商品添加到购物车中)、管理功能模块(通过登录验证的用户能访问管理页面)。网站开发人员对购物车开发过程中所需要的计算机设备及其有关的外部设备、对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、
5、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标进行分析,考虑其性价比。基本的购物流程:用户登录商城,查询所有的商品,将要选购的产品放到购物车中,管理员进行确认,得到的系统用例图如图2.1所示。图2.1系统用例图 管理员 客户 图2.1系统用例图 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库的设计通常是以一个已经存在的数据库管理系统为基础的。根据用户需求和业务流程,本系统SQL Server 20
6、00数据库管理系统。Java环境是JDK1.5.0,IDE环境是NetBeans5.0,使用了Tomcat 5.5.7作为JSP/Servlet容器,而EJB容器则采用了JBoss4.0.3。此次开发研究使用了JSP+Servlet+JavaBean开发一个基于MVC架构,MVC是一种设计模式,主要有三个主要组件:模型:负责业务逻辑的状态和管理数据;视图:负责显示业务领域的表示视图;控制器:负责控制用户输入的流程和状态。使用MVC模式时,通常会有某种形式的事件通知,当模型某部分有了变动时,可以通知视图控件。NetBeans是SUN公司重点开发的JAVA集成开发环境,使用JAVA编程语言编写,具
7、有很好的可移植性,它集成了程序员开发桌面,WEB,企业级和移动应用所需要的一切软件资源,具有以下特性:(1)全面支持构建NetBeans插件模块和基于NetBeans平台的富客户端应用程序。 (2)全面支持SUN Application Server8.2及Tomcat 5x(3)全面支持JAVA企业版应用程序消息服务(4)增强了对JAVA Server Faces和Struts的支持(5)提供了更强大的代码编译器(6)加快了代码编译的速度(7)重新实现了对CVS的支持(8)改进的、用户界面友好的IDE外形(9)继承了编写、测试以及调试JAVA ME程序的功能第3章 总体设计3.1 系统框架本
8、系统有5个完整的功能模块。分别是:查询商品模块;购买商品模块;删除商品模块;添加商品模块;交易操作模块。结构如图3.1所示。 图3.1 功能结构图 购物流程图是一种表明用户购物过程的流程图,它可以帮助分析人员找出流程中的不合理回路。图3.2就是客户网络购物流程图。登录购买商品送货 图3.2 客户网络购物流程图3.2数据库设计 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库的设计通常是以一个已经存在的数据库管理系统为基础的。通过对业务流程的分析,得到
9、了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图3.3所示。nn1m 图3.3 网上购物车ER图数据流程顶层图即是数据流程零层图,是宏观的数据流程图。下面是网上购物车的顶层图,如图3.4所示。图3.4 数据流顶层图 E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。本系统数据库使用SQL Server 2000,包含以下4个表:商品表(product)、用户表(user)、管理员表(admin)、购买表(purchase)。
10、下面分别详细介绍以上各表:表3.1 商品表(product)字段名称数据类型长度是否为空主外键说明Product_idint4否主键商品编码Product_namevarchar50否否商品名称Product_pricevarchar50否否商品价格Product_numint4否否商品序号Product_describevarchar50否否商品描述表3.2客户表(user)字段名称数据类型长度是否为空主外键说明User_idint4否主键用户IDUser_namevarchar50否否用户名Rnamevarchar50否否真实姓名User_passvarchar50否否用户密码Emailv
11、archar50否否EmailDatetimedatetime8否否注册时间 表3.3 管理员表(admin)字段名称数据类型长度是否为空主外键说明Admin_idvarchar50否主键管理员IDPasswordvarchar50否否密码Product_IDint4否外键商品编号Stockint4否否库存数量表3.3 购买表(purchase)字段名称数据类型长度是否为空主外键说明Contract_idint4否主键订单编号Purchase_patternvarchar50否否付款方式Product_idint4否外键商品编号User_idint4否外键用户编号第4章 详细设计与实现详细设计
12、阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。该系统的设计基于以下几个原则:1.标准化;2.模块化;3.先进性;4.安全性;5.交互性。首先实现对数据库的连接,代码如下:String CLASSFORNAME=sun.jdbc.odbc.JdbcOdbcDriver;String CONNECSTR=jdbc:odbc:shop_db;Try Class.fo
13、rName(CLASSFORNAME); This.con=DriverManager.getConnection(CONNECTSTR); catch(Exception e)e.printStackTrace();4.1 查询功能1.实现目标:操作员(或者普通用户)进入查询商品页面,如图4.1.1所示,主要实现以下功能:查看所有商品,对具体商品进行精确查询,模糊查询。 图4.1 .1项目主界面2.实现方法(1)图4.1.1以分页的形式列出了当前所有的商品,单击“下一页”可以查询其它商品。(2)在“查询商品名称”文本框中分别输入“Java”、“jsp”、“j2ee”,查询方式选择“精确查询”
14、,单击“查询”按钮,此时浏览器中内容如图4.1.2 图4.1.2 精确查询(3)在“查询商品名称”文本框中输入“j”,查询方式选择“模糊查询”单击“查询”,显示如图4.1.3 图4.1.3 模糊查询 获取当前查询出来的所有商品,并根据其ID号重新组织CartProduct的内容private void productNotExit(Vector vec,String id) Enumeration enume=vec.elements(); int tempid=Integer.parseInt(id); while(enume.hasMoreElements() ProductBean pb
15、=(ProductBean)enume.nextElement(); if(tempid=(pb.getProductId() CartProduct cp=new CartProduct(); cp.setProductId(pb.getProductId();/从Vector中获取具有相同Id号码的商品名称,作为CartProduct的productName属性的值。 cp.setProductName(pb.getProductName(); cp.setSelectedCount(1); cp.setProductPrice(pb.getProductPrice(); hash.put
16、(id,cp); return ;4.2购买功能1.实现目标:程序启动后,在项目主界面中选择要购买的商品放入购物车中,主要实现如下功能:将购买商品放入购物车中,显示要结算的商品进行结账。2.实现方法:在如图4.1.1所示的窗口中选中商品编号1、2、3、4、5的商品前面的复选框,单击“添加到购物车”按钮,此时窗口如图4.2.1,从图中可以看出,单击“添加到购物车后”按钮后,被选中的商品会被添加到购物车中并显示出来,还会显示出该商品的购买数量以及商品单价。 图4.2.1 将商品添加到购物车(2)如果要购买的商品已经全部放入购物车中,然后点击“去结算中心”的超级链接,此时打开如图4.2.2所示的界面
17、,给出了将要结算商品的数量、单价、金额小计。如果点击“继续购物”链接,则会转到4.1.1页面可以继续选购商品。 图4.2.2 结算中心主要代码如下:public class CustomerServlet extends HttpServlet String action=request.getParameter(action).trim();/获取action属性的值String selectedCount=request.getParameterValues(choose);/获取用户选择的复选框的值this.forward(request,response,searchview.jsp?
18、pageno=+pageno);else if(action.equals(addtocart)/处理用户按下“添加到购物车”按钮的请求if(selectedCount!=null) CartBean cartbean=null; Vector tempvec=(Vector)session.getAttribute(result); if(session.getAttribute(cart)=null)cartbean=new CartBean(); elsecartbean=(CartBean)session.getAttribute(cart); for(int i=0;iselecte
19、dCount.length;i+)cartbean.addToCart(tempvec,selectedCounti); session.setAttribute(cart,cartbean);this.forward(request,response,cartview.jsp); else if(action.equals(delete)/处理用户按下“删除选中商品”按钮的请求 if(selectedCount!=null)CartBean cartbean=(CartBean)session.getAttribute(cart); for(int i=0;iselectedCount.le
20、ngth;i+)cartbean.deleteFromCart(selectedCounti); session.setAttribute(cart,cartbean);this.forward(request,response,cartview.jsp); else if(action.equals(gotocheckout)/处理用户点击“去结算中心”链接的请求 this.forward(request,response,checkout.jsp); else if(action.equals(checkout)/处理用户按下“结算”按钮的请求 4.3 管理功能1.实现目标:在浏览器的地址
21、栏中输入如下内容,出现登录界面(如图4.3.1所示)主要实现如下功能:管理员管理界面,添加和删除商品。 图4.3.1 管理员登录界面2.实现方法:(1)管理员输入正确的账号和密码之后,程序会自动跳转到查看与删除页面,浏览器的内容如图4.3.2所示,分页的形式显示了当前数据库的所有商品,单击“删除”链接可以删除相应的商品。 图4.3.2 管理员登录后页面(2)可以在4.3.3所示的页面中设置要添加的商品的信息,设置完成后。单击“提交”按钮提交所添加的信息。 图4.3.3添加商品页面主要代码如下:protected void processRequest(HttpServletRequest re
22、quest, HttpServletResponse response)String action=request.getParameter(action).trim();/获取action属性的值if(action.equals(login)/用户点击了“提交”按钮String username=request.getParameter(username).trim();String password=request.getParameter(password).trim();boolean login=database.adminLogin(username,password);/查看是否
23、通过验证if(action.equals(delete)/用户按下了“删除”链接if(action.equals(next)/用户按下了“下一页”链接if(action.equals(previous)/用户按下了“上一页”链接if(action.equals(add)/用户按下了“添加新商品”链接if(action.equals(addproduct)/用户点击了“添加”按钮if(line=1)/更新的记录数为1,则表明添加成功if(action.equals(showadddelete)/用户按下了“查看已有商品”链接this.forward(request,response,showad
24、ddelete.jsp);第5章 系统测试通过测试,可以发现测试对象的缺点,这对进一步完善自己的系统中的错误起着很大作用。分为以下几个步骤:模块测试,模块测试通常又称为单元测试。在这个测试步骤中所发现的往往都是编码和详细设计的错误;子系统测试,子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。这个步骤着重测试模块的接口;系统测试,系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能。在这个测试步骤中发现的往往是软件设计中的错误;验收测试,它的主要目的是验证系统确实能够满足用户的需要。图5-1
25、 验证码错误图进行测试的过程中,在对该系统进行测试的过程中,重点对该子系统的错误处理功能进行了检验,主要进行了系统模块出错的处理测试,在测试时使用了比较合理的测试用例,不仅仅是对键盘的操作进行测试,对一些链接,查看也进行了测试,也通过测试寻找到一些问题,对这些问题做出了及时有效的改正。测试的结果还是令人乐观和满意的。结 论运用MVC架构,结合普通电子商务网站的用户查询与购买及管理部分,详细的介绍了如何是用JSP、Servlet与Javabean开发一个具有MVC架构的购物网站。通过该项目可以看到使用JSP、Servlet与Javabean开发的具有MVC框架的项目具有易维护、易修改、模块之间的
26、耦合性低等优点。这次课程设计第一次涉及到做网站。系统存在下面的一些缺点,管理内容不够细致;数据库表浪费,在进行该系统的设计时对数据库表与表之间的关系还是有比较清楚地分析的,但是在开发过程中这样设计的表相互关联性太多,使得对数据库操作起来比较复杂。虽然困难重重,但是成功的人生,需要自己去经营,别再说了,莫再等了,现在就为自己的人生做好规划,为人生点亮一盏明灯,赢在人生起跑点上。参考文献1 耿祥义,张跃平. JSP实用教程M.北京:清华大学出版社,20032 赛奎春.JSP信息系统开发实例M北京:机械工业出版社,20053 吴亚峰,NetBeans、java桌面与企业级程序开发M北京:人民邮电出版社,20074 施伟伟.ASP.NET 2.0数据库通用模块开发与系统移植M.北京:清华大学出版社,20075 武新华,秦连清.ASP.NET+SQL Server典型网站建设M.北京:电子工业出版社,20076 陈娴.ASP.NET中型在线系统开发实践M.北京:中国铁道出版社,20077 方兵.ASP.NET 2.0网站开发技术详解M.北京:机械工业出版社,20078 李长林.ASP.NET+SQL Server动态网站开发与实例M.北京:清华大学出版社,2006
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1