版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
滁州职业技术学院ATA软件学院2021级毕业设计姓名:叶成班级:08软件技术〔1〕班设计题目:在线商城指导教师:吴昌雨二○一○年十二月目录引言 3摘要 4第一章系统概述 61.1课题背景与意义 61.1.1课题开发背景 61.1.2课题开发意义 61.2课题开发工具与环境 71.2.1JAVA和JSP技术简介 71.2.2SQLServer2005效劳器SQLServer概述 81.2.3Tomcat6.0效劳器架构 101.2.4总体开发 11第二章系统分析 122.1系统概述 122.1.1系统分析原那么与方针 122.1.2系统需求 122.2系统功能分析 132.2.1可行性分析 132.2.2具体功能分析 13第三章系统设计 143.1数据库设计 143.1.1数据库总体设计 143.1.2数据库概念设计 143.1.3数据库逻辑设计 153.2系统总体设计 163.2.1总体设计 163.2.2系统逻辑处理 173.3功能设计 183.3.1前台用户功能模块设计 183.3.2后台管理员功能模块设计 19第四章系统实现与调试 224.1系统实现概论 224.1.1
结构化程序编码原那么 224.2系统功能实现 224.2.1
文件结构图 224.2.2
文件详细结构物 234.3系统功能实现 234.3.1
MVC架构 234.3.2
与数据库的连接 264.4调试过程中的常见错误 294.4.1
JDK配置错误 294.4.2
SQL空指针异常 304.4.3
数据库连接错误 31第五章系统运行结果截图 325.1
系统主界面 325.2
用户注册界面 335.3
个人资料管理 335.4
帮助 345.5
我的购物车 345.6
生成订单 355.7
后台管理主界面 35结论 36致谢 37参考文献 38引言互联网从它出现开始就不仅改变了信息传递的方式,同时改变着企业的运营模式,管理模式,影响着人们的生活观念,改变着人们的习惯。网络使人们足不出户就能获取各方面的信息,而电子商城的出现更是人们足不出户就可以进行商品交易活动。互联网的兴起从本质上改变了整个社会的商品交易方式,国内各大企业从上个世纪90年代互联网兴起之时,就产生了通过网络进行销售经营商品的想法。但是由于在互联网上企业的信誉难以认证、网络法规政策不健全、物流不兴旺等一系列的原因,限制了网上交易开展的步伐。进入21世纪以后,随着整个社会的开展、进步,制约网上交易的各个瓶颈问题逐一被击破,各企业也纷纷的参加到电子商务的洪潮之中。术语列表:JSP:〔JavaServerPages〕,JSP是一种基于Java的技术,用来产生跨平台和跨Web效劳器的动态页面。JDBC:(JavaDatabaseConnectivity),Java数据库连接。它主要是一套让你访问数据库的API,程序人员可以利用JDBCAPI来执行SQL语句。Servlet:Servlet可以称之为“效劳器小程序〞,与Javaapplication不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML页进行交互。JavaBeans:JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。HTML:(HypertextMarkupLanguage)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创立列表、建立链接等等。SQL:〔StructuredQueryLanguage〕,结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。摘要随着互联网和宽带上网的普及,电子商务在中国更是异军突起,并日益渗透到人们的日常生活中。网上商品交易更是其重要内容。各种网上商品交易网站层出不穷。本课题设计的目标是实现一个基于Jsp+JavaBean+servlet模式的在线商城网站。论文先介绍了开发工程所用到的关键技术,接着从用户需求、经济和技术等三个方面对系统进行分析。在概要设计中,根据系统分析的结果,把系统分为前台和后台两大模块。根据前台和后台用户的不同需求,把前台细分为会员登录注册,商品购置等模块,把后台细分为管理员登录,商品设置,用户设置,用户查询等模块。详细介绍了在基于Jsp+JavaBean+servlet模式下各个模块的实现过程,且以开发过程为根底实现系统所具有的可重用性、可维护性和可扩展性等优势进行了分析。关键词eclipse开发工具,在线商城,网站平安ABSTRACTWiththepopularizationofInternetandbroadbandInternetaccess,electroniccommerceinChinaisbouncy,andincreasinglypenetratedintoPeople'sDailylife.Merchandiseonlinetradingistheimportantcontent.Allkindsofmerchandiseonlinetradingwebsiteemergeinendlessly.ThistopicdesigngoalistoachieveabasedonJsp+JavaBean+servletmodeofelectronicmallsite.Paperfirstintroducesthedevelopmentprojectofthekeytechnologyused,thenfromtheuserdemand,economicandtechnologyinthreeaspectssuchassystemisanalyzed.Insummarydesign,accordingtotheresults,thesystemanalysissystemisdividedintotwomajormoduleatthefrontdeskandbackground.Accordingtothefrontandbacktheusers'differentneeds,thefrontdeskforthememberloginsubdivideregistered,commoditypurchasegoodsinquires,inquiriesordersmodule,suchasthebackground,subdividedintoadministratorlogin,commoditySettings,orderSettingsetcmodule.DiscussedindetailbasedonJsp+JavaBean+servletmodetherealizationprocessofmodules,andtodevelopprocessforfoundationsforsystemwithreusabilityandmaintainabilityandexpansibilityadvantagesareanalyzed.Keywordseclipsedevelopmenttools,electroniccommercialcity,websecurity第一章系统概述1.1课题的背景与意义课题开发背景20世纪,随着计算机科学的开展,数据库技术在Internet中的应用越来越广泛,为广阔网络用户提供了更加周到和人性化的效劳。个性化已逐渐成为当今Wed应用的潮流。本文研究了一种基于数据关联规那么采集技术的用户个性化页面动态生成方案,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、反映用户更明显细致等优点。所谓在线商城就是在网上开展购物商务活动,当企业将它的主要业务通过企业内部网〔Intranet〕、外部网〔Extranet〕以及Internet与企业的职员、客户供销商以及合作伙伴直接相连时,其中发生的各种活动就是电子商城。在线商城是基于Internet或局域网、广域网、包括了从销售、市场到商业信息管理的全过程。本系统的开发正符合了这一要求。论文中详细阐述了系统的设计目标、总体架构及各功能模块的详细设计。1.1.2网站的主要目的就是通过网站来推广互联企业的产品和效劳,并使客户随时可以了解企业和企业的产品,为客户提供在线效劳和订单处理功能。从长期的战略目标来说,网站不仅仅是产品和效劳的推广,而且是通过Internet、企业内部网(Intranet)和企业外部网(Extranet),将买家与卖家、厂商和合作伙伴紧密结合在了一起,因而消除了时间与空间带来的障碍。系统主要分为前台和后台。前台包括产品的展示及会员购物等模块,后台是管理界面,主要包括商品信息、会员信息、订单信息和公告信息的常规设置。1.2课题开发工具与环境1.1、将内容的生成和显示进行别离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容〔内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等〕。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在效劳器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在效劳器端,JSP引擎解释JSP标识和脚本,生成所请求的内容〔例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件〕,并且将结果以HTML〔或者XML〕页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。2、可重用组件大多数JSP页面依赖于可重用的、跨平台的组件〔JavaBeans〕来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3、采用标识Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。4、适应平台几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。5、数据库连接Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有JDBC驱动程序的数据库,目前大多数数据库系统都带有JDBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。1.SQLServer数据平台SQLServer是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个平安、可靠和高效的平台用于企业数据管理和商业智能应用。SQLServer2005为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创立、部署、管理及使用企业数据和分析应用程序的复杂度。通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQLServer2005为不同规模的企业提供了一个完整的数据解决方案。图1显示了SQLServer2005数据平台的组成架构。SQLServer数据平台包括以下工具:1.关系型数据库:平安、可靠、可伸缩、高可用的关系型数据库引擎,提升了性能且支持结构化和非结构化〔XML〕数据。2.复制效劳:数据复制可用于数据分发、处理移动数据应用、系统高可用、企业报表解决方案的后备数据可伸缩存储、与异构系统的集成等,包括已有的Oracle数据库等。3.通知效劳:用于开发、部署可伸缩应用程序的先进的通知效劳能够向不同的连接和移动设备发布个性化、及时的信息更新。4.集成效劳:可以支持数据仓库和企业范围内数据集成的抽取、转换和装载能力。5.分析效劳:联机分析处理〔OLAP〕功能可用于多维存储的大量、复杂的数据集的快速高级分析。6.报表效劳:全面的报表解决方案,可创立、管理和发布传统的、可打印的报表和交互的、基于Web的报表。7.管理工具:SQLServer包含的集成管理工具可用于高级数据库管理和调谐,它也和其他微软工具,如MOM和SMS紧密集成在一起。标准数据访问协议大大减少了SQLServer和现有系统间数据集成所花的时间。此外,构建于SQLServer内的内嵌Webservice支持确保了和其他应用及平台的互操作能力。8.开发工具:SQLServer为数据库引擎、数据抽取、转换和装载〔ETL〕、数据挖掘、OLAP和报表提供了和MicrosoftVisualStudio?相集成的开发工具,以实现端到端的应用程序开发能力。SQLServer中每个主要的子系统都有自己的对象模型和API,能够以任何方式将数据系统扩展到不同的商业环境中。SQLServer2005数据平台为不同规模的组织提供了以下好处:1.充分利用数据资产:除了为业务线和分析应用程序提供一个平安可靠的数据库之外,SQLServer2005也使用户能够通过嵌入的功能,如报表、分析和数据挖掘等从他们的数据中得到更多的价值。2.提高生产力:通过全面的商业智能功能,和熟悉的微软Office系统之类的工具集成,SQLServer2005为组织内信息工作者提供了关键的、及时的商业信息以满足他们特定的需求。SQLServer2005目标是将商业智能扩展到组织内的所有用户,并且最终允许组织内所有级别的用户能够基于他们最有价值的资产——数据来做出更好的决策。3.减少IT复杂度:SQLServer2005简化了开发、部署和管理业务线和分析应用程序的复杂度,它为开发人员提供了一个灵活的开发环境,为数据库管理人员提供了集成的自动管理工具。4.更低的总体拥有本钱(TCO):对产品易用性和部署上的关注以及集成的工具提供了工业上最低的规划、实现和维护本钱,使数据库投资能快速得到回报。SQLServer是美国Microsoft公司开发的一个关系型数据库管理系统,是目前世界上最著名的关系数据库管理系统之一。它在性能和可扩展方面确立了世界领先的地位,是一套完全的数据库和数据分析解决方案,使用户可以快速创立下一代的可扩展电子商务和数据仓库解决方案。MicrosoftSQLServer2005在数据库效劳器自动调整和自动管理技术方面在数据库领域中处于领先地位,使客户可以集中精力处理商业战略上的问题,而不是去细微调整数据库效劳器的各项参数。SQLServer的主要功能:1.数据库管理功能作为数据库管理系统,SQLServer自然应该具有数据库管理功能。它的数据库由包含数据的表集合和其他对象〔如视图、索引、存储过程和触发器〕组成,目的是为执行与数据有关的活动提供支持。存储在数据库中的数据通常与特定的主题或过程相关。2.数据仓库功能SQLServer2005提供了一套全新的综合分析效劳系统。分析效劳为商业活动提供了集成的OLAP效劳和数据挖掘功能。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势。SQLServer针对包括集成数据挖掘、OLAP效劳、平安性效劳及通过Internet对多维数据集进行访问和链接分析提供新的数据仓库功能。3.电子商务SQLServer不仅提供电子商务所需的可伸缩性与可扩展性之外,还提供了丰富的数据库编程能力,以确保系统的协同工作和灵活性。SQLServer2005不仅支持集中化数据库管理功能,而且还最大程度地实现了管理与优化工作的自动化,从而,减轻了有关管理人员的负担。4.完备的Web功能SQLServer2005允许通过协议,在Web上进行高性能、基于标准的平安访问。基于Web的客户端拥有访问关系型数据存储和访问分析效劳的能力。5.分布式数据复制功能它可以将一个数据库中的数据复制到通过局域网、广域网或Internet网络连接的不同地点效劳器或同一效劳器中的不同数据库中,并能够自动保持这些数据同步,使各个数据库中具有相同的数据。1.Tomcat6.0由Apache组织开发的一种常用Web效劳器,提供Web效劳。一种JSP引擎,本身具有Web功能,可以作为独立的Web效劳器使用。但是,在作为Web效劳器方面,Tomcat处理静态HTML页面时不如Apache迅速,也没有Apache健壮,一般选用Tomcat与Apache结合的方式,让后者对网站的静态页面的请求提供效劳,而Tomcat作为专用的JSP引擎,提供JSP解析,得以更好的性能。1.JDK的安装与配置(1)找到path变量后单击[编辑]按钮;弹出[编辑系统变量]对话框。在[变量值]文本框中输入“c:\jdk\bin〞,然后单击[确定]按钮。同时新建CLASSPATH变量;(2)在[系统变量]选项组中单击[新建]按钮,在[变量名]文本框中输入“CLASSPATH〞,在[变量值]文本框中输入“c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar;〞然后单击[确定]按钮。(3)用同样的方法把c:\jdk添加到JAVA_HOME环境变量中;2.TOMCAT的安装与配置在这里我们设默认安装目录为c:\Tomcat安装完毕,更改环境变量,用同样的方法把c:\Tomcat添加到TOMCAT_HOME环境变量中。启动Tomcat,在浏览器的[地址]下拉列表框中输入“://localhost:8080/〞,如果看到的是在左上方有一只可爱的小猫,那么表示Tomcat安装成功。1.1、JAVA三层模式架构:界面表示层:Web层,JSP+JavaScript+HTML〔XML〕;业务逻辑层:JSP(JavaBeans);数据存储层:SQLSERVER2005。2、开发工具采用Eclipse,Dreamweaver2021网页编辑工具数据库SQLServer2005,效劳器:ApacheTomcat6.0。Java中连接数据库的技术是JDBC3、系统总体架构(见图1-1)数据库数据库jsp/javabean/serleret前台购物后台管理图1-1系统总体架构第二章系统分析2.1系统概述系统分析原那么与方针采用结构化系统分析的方法,建立新系统的逻辑模型,此模型尽量防止使用计算机术语,便于企业的计算机人员与系统开发人员的共同讨论。本系统的结构是层次化的暗盒模块结构。对高层模块,将采用以事物为中心的设计谋略,把一个大的复杂的系统逐步分解成小的相对简单的暗盒模块,对低层模块,采用以变换为中心的设计谋略。因此,为了提高模块的内聚性,降低模块的耦合程度,数据库的设计原那么是把它作为模块间的邮政信箱,从而为实现数据共享由提高了模块的独立性,使系统具有很高的可修改性。系统需求通过分析我们可以得知用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,从而有助于我们开发出用户满意的产品。前台用户需求分析,用户除了可以查询商品的所有根本信息(如商品名价格及有关商品信息描述)外,还能了解商品的最新动态,商品的销售排行,最新商品和特价商品的查询。用户可以进行购物,查看购物车及查看订单的操作。用户需要登录和注册个人账户,同时可以修改个人信息。要求数据的平安性,完整性。要有平安保密、上下级数据一致性功能,要采用严格的用户权限管理。各单位只能拥有自己相应的操作权限,不可越权操作。各单位只可操作本单位的数据,不可修改甚至浏览其他单位的数据。后台管理员需求分析,管理员需要对商品进行设置包括查看、删除、添加、修改等操作。管理员能对会员信息进行查看和删除,对订单信息能够进行查看、出货、删除,对公告和友情链接进行设置,对数据的平安性和完整性有着严格的要求。2.2系统功能分析2.1.技术可行性:本系统的配置〔Tomcat与MicrosoftSQLServer2005〕在这种中小规模的情况下能够提供较快的数据访问,技术上可行。2.经济可行性:系统的配置,不需要昂贵的EJB效劳器,除MicrosoftSQLServer2005外大局部软件都是可以免费获得,开发本钱低。3.操作可行性:访问系统的主要有两种:客户,管理员。目前资源的利用情况和可操作性,只需少量的对数据库中的表的直接操作就可以实现系统的完整、稳定的运行,不会造成系统的巨大压力。2.前台购物系统:〔1〕可实现在线注册;〔2〕注册成功后,可进行登录,购置自己想要买的商品;〔3〕可在购置商品并且下订单;后台管理系统:〔1〕管理员登录;〔2〕查看所有注册用户的信息并对其编辑,并提供高级查询;〔3〕查看/添加/删除商品信息,同时也提供了高级查询;〔4〕查看/添加/删除商品的主分类〔菜单〕;〔6〕查看/发布/编辑公告;〔7〕增加了管理员平安性,管理员分模块管理自己相应的功能,对于其他功能那么无法操作。第三章系统设计3.1数据库设计3.1本系统采用关系型数据库模式,因此数据库由假设干个二维表〔即数据文件〕构成。本系统的数据文件全为数据数据。数据的保存方法有很多种,最长用的方式是使用DBMS(数据库管理系统)。市场上流行的DBMS主要有Oracle、SYBASE、MSSQLServer、DB2、Informix等,而MSSQLServer可作为中小型数据管理系统的首选。根据以上分析,本系统后台数据库决定采用MSSQLServer2005为后台数据库。3.1.管理员管理员登陆名ID密码图3-1管理员E-R图用户用户ID用户名密码姓名注册时间图3-2用户E-R图商品商品类别价格名称ID图3-3商品信息E-R图3.1.表3-1管理员数据表表序号1表名admininfo含义存储商品的根本信息序号属性名称含义数据类型长度说明约束1adminID管理员IDint主键2login_name管理员名varchar20notnull3Login_psw管理员密码varchar20notnull表3-2用户数据表表序号2表名userinfo含义存储用户的根本信息序号属性名称含义数据类型长度说明约束1userID用户idint主键2username用户名varchar50notnull3password用户密码varchar50notnull4name姓名varchar50notnull5phone号码varchar20notnull6regTime注册时间Varcharnotnull表3-3商品数据表表序号3表名productinfo含义存储商品的根本信息序号属性名称含义数据类型长度说明约束1productID商品IDint主键2productName商品名称varchar20notnull3productClass商品类别varchar20notnull4productPrice商品价格Money20notnull3.2系统总体设计3.本系统设计遵循结构化设计原那么:1.模块独立性、适度性原那么模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块独立性是通过指定具有单一功能并且和其它模块没有过多联系的模块来实现的。模块独立性是由内聚性和偶合性两个定性指标来度量的。内聚性是度量一个模块功能强度的一个相对指标。偶合性是用来度量模块之间的相互联系的程度。模块过大时,模块的可理解性会迅速下降。另外对过大的模块分解时,也不应降低模块的独立性。因为当对一个大的模块分解时,可能会增加模块间的依赖。2.系统结构深度、宽度、扇出、扇入适当原那么深度表示从根模块到最低层模块的层数;宽度表示控制的总分布;扇出数指由一模块直接控制的其它模块数;扇入数指有多少模块直接控制一个给定的模块。好的系统结构通常顶层扇出比拟大,中间扇出比拟少,底层模块大扇入。3.模块的作用范围保持在该模块的控制范围内模块的作用范围是指受该模块内一个判定影响的所有模块的集合。模块的控制范围是指这个模块本身以及所有直接或者间接附属于它的模块的集合。4.系统模块的单入口,单出口原那么这一准那么是要防止内容耦合性。如果模块都是从顶部入口,从底部出口的话,这样系统更容易理解和维护。如可以防止病态连接〔病态连接关系是指从中间进入或者访问一个模块〕等。5.模块结果可预测原那么如果一个模块可以当作一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。6.数据一致性原那么3.2.系统采用MVC结构,在客户端用户通过浏览器完成数据下载与模拟操作,浏览器端的表现逻辑通过JSP网页完成。而系统内部复杂的业务逻辑主要通过JavaBean的组件〔Component〕实现,JavaBean组件在WWW效劳器上运行,通过JSP返回到客户浏览器。通过表现逻辑与业务逻辑的别离,使网页内容简洁,系统的可维护性和可扩充性增强。在效劳器端,系统使用JDBC中间件访问数据库,数据库效劳器定义了本系统所需要的事务逻辑和数据逻辑如图3-4。图3-4系统逻辑关系图本系统使用JSP技术作为表现手段,效劳器采用Tomcat6.0作为JSP引擎,系统业务逻辑由JavaBean组件完成,使用JDBC驱动程序访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用SQLSERVER2005数据库作为数据库效劳器。3.3功能设计根据需求分析本系统整体分前台和后台两大模块。前台用户主要功能模块包括:会员登陆注册、会员登陆、购置商品、添加购物车、查看订单、查看商城公告。后台管理员主要功能模块包括:管理员登陆、商品设置、用户设置、后台管理员设置、订单设置、公告设置、退出后台。下面分别从前台和后台进行详细功能设计3.根据概要设计对前台模块进行细化,经过对用户需求和业务逻辑的分析,前台各个模块的详细设计如下。会员登录注册模块主要有登录注册功能。登陆功能主要用于会员的登陆,如果已经是网站的会员,那么只需输入“用户名〞和“密码〞即可进行进入系统的事务,然后用户可以以会员的身份方可在网站上进行购物。注册功能主要用于用户的首次登录,注册后才能以网站用户的身份登录进行网站购物。购置商品模块可查看相应的商品信息。如果会员想购置此商品,将商品放入购物车便可以继续购置商品。如果购物结束,可以查看购物车,进入如图3-5所示的购物车界面图3-5购物车界面如果同一种商品要购置多个,只需返回主页面继续订购此商品。最后结算订单结账。输入真实姓名、联系、送货方式和送货地址。查看订单模块功能主要是相应用户下了订单信息,如果用户要查询订单,系统会根据要求显示如图3-6所示的相应的订单信息并且在用户输入用户信息后,列出订单所对应的全部商品如图3-7所示。图3-6订单用户信息确认图3-7订单界面后台管理员功能模块设计根据管理员对系统的需求和对管理员权限的限制,后台模块功能详细设计如下。后台登录模块主要实现管理员输入账号和密码后才可进入后台管理模块,并且判定管理员的权限。商品设置模块主要实现如图3-8所述功能,系统根据要求自动显示相应的商品列表如下列图所示。该模块可以实现商品信息的查看、添加、修改和删除操作。图3-8商品信息界面选择所属类别和要添加的商品类别,输入商品ID,商品名称,商品类别和商品价格即可添加新的商品。删除功能实现商品信息的删除管理员对用户的设置模块实现查询用户,根据用户的ID信息点击查询并显示用户的资料如图3-9。图3-9查询用户当你输入正确的ID后,就会在管理用户界面显示该用户的信息如图3-10,在此界面上,你可以更新改用户的信息,删除该用户,另外还有两个超链接,一个是返回后台总界面的,一个是返回主页。图3-10管理用户界面第四章系统实现与调试4.1系统实现概论4.1、系统实现遵循结构化程序设计的思想,为了确保每个模块的逻辑清晰,应该尽量使各个模块使用单入口,单出口和顺序、选择和循环三种根本控制结构。另外为了增强系统的编码效率,也采用扩展的结构程序设计,即除了使用三种根本的控制结构以外,还使用多分支的选择结构和下部判断循环条件的循环结构。2、良好的程序编写风格为了提高程序的可读性和易维护性,关键是使程序结构简单清晰,因此在程序编写过程中应保持良好的程序设计风格。主要在以下方面表达:采用序言性和描述性两种注释对程序进行解释;变量说明尽量使其具有实际意义;程序语句构造应该简单直接,应直接反映意图,不必过于巧妙和深奥。4.2系统功能实现4.文件结构的良好设计,对自己的开发过程有很大的好处,在设计的最初,应该想到自己要用的文件资源,一般来说:Tomcat中webapps是默认存放应用程序的地方,把工程shoppingsales放到新建目录的workspace下,里面的主要存src和WebRoot文件,src主要存放com包,WebRoot主要存放jsp网页、css代码和images图片文件。这样在自己改良系统或书写文档以及书写使用说明时都可以简明扼要的写出自己的程序结构4.2.2图4.1文档结构关系图4.3关键技术实现4.3.MVC设计思想MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行别离,这样一个应用被分成三个层——模型层、视图层、控制层。视图视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和MVC模式Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比方一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。模型模型(Model):就是业务流程/状态的处理以及业务规那么的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规那么抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存〔持续化〕。比方将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与控制器的别离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图4-2所示。图4-2MVC组建类型的关系和功能在在线商城的系统中:Model〔模型〕层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备平安、高性能、可重用等优秀的特征。
View〔视图〕层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。
Controller〔控制器〕层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度别离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在,它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。
通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行别离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。4.本次连接是采用SQLServer2005数据库的,文件时DataBase.javapackagecom.shop.db;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.Enumeration;importjava.util.PropertyResourceBundle;publicclassDataBase{ privatestaticStringurl; //数据库连接字串privatestaticStringuserName; //数据库用户名称privatestaticStringdriver; //数据库驱动名称privatestaticStringpwd; //数据库用户登陆密码privatefinalstaticStringfileName="database"; //属性文件名称 //ThreadLocal当前线程局部变量privatestaticThreadLocalconnection=newThreadLocal(); static{ readConfig(); } // getConn方法用于获取数据库连接 publicsynchronizedstaticConnectiongetConn()throwsSQLException{ Connectioncon=(Connection)connection.get(); if(con!=null&&!con.isClosed()){ returncon; } try{ ClassproviderClass=Class.forName(driver); con=DriverManager.getConnection(url,userName,pwd); //setAutoCommit //将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,那么将执行其所有SQL语句,并将这些语句作为单独的事务提交。 //否那么,其SQL语句将成组地进入通过调用commit方法或rollback方法终止的事务中。默认情况下,新的连接处于自动提交模式下。 con.setAutoCommit(false); connection.set(con); returncon; }catch(ClassNotFoundExceptione){ e.printStackTrace(); } returnnull; } //读取配置文件信息 privatestaticvoidreadConfig(){ //PropertyResourceBundle使用属性文件中的静态字符串集合来管理语言环境资源。 PropertyResourceBundleprb=(PropertyResourceBundle)PropertyResourceBundle .getBundle(fileName); //枚举Enumeration Enumerationenu=prb.getKeys(); while(enu.hasMoreElements()){ StringpropertyName=enu.nextElement().toString(); //读取配置文件中的静态字符串并且赋值给类成员变量 if(propertyName.equals("database.driver")) driver=prb.getString("database.driver"); if(propertyName.equals("database.url")) url=prb.getString("database.url"); if(propertyName.equals("database.username")) userName=prb.getString("database.username"); if(propertyName.equals("database.password")) pwd=prb.getString("database.password"); } } /* publicstaticvoidDataBase()throwsException{ try{ readConfig(fileName); System.out.println("readok!"); }catch(Exceptione){ System.out.println(e.getMessage()); e.printStackTrace(); throwe; } } */ // commit使自从上一次提交/回滚以来进行的所有更改成为持久更改,并释放此Connection对象当前保存的所有数据库锁定。 //此方法应该只在已禁用自动提交模式时使用。 publicstaticvoidcommit(){ Connectioncon=(Connection)connection.get(); try{ conmit(); }catch(SQLExceptione){ e.printStackTrace(); } } //回滚事务 publicstaticvoidrollback(){ Connectioncon=(Connection)connection.get(); try{ con.rollback(); }catch(SQLExceptione){ e.printStackTrace(); } } //释放数据库连接 publicsynchronizedstaticvoidreleaseConnection(Connectionconnection){ try{ if(connection!=null&&!connection.isClosed()) connection.close(); }catch(SQLExceptione){ e.printStackTrace(); } connection=null; } publicstaticvoidmain(String[]args){ try{ DataBase.getConn(); }catch(Exceptione){ e.printStackTrace(); } }}4.4调试过程中的常见错误4.4.1图4.3JDK配置错误解决方法:1.为Myeclipse插件的ApplicationServer指定新的JRE。
2.修改缺省的JRE配置路径。
方法1〔以Tomcat5为例):
点击eclipse的菜单工程-窗口-首选项
在MyEclipse->ApplicationServers中选择需要配置的应用效劳器Tomcat5,选择应用效劳器下的JDK,可以看到右边出现"TomcatJDKname"项,点击右部按钮"Add...",弹出窗体中设置"JRE名称"(随便起了),设置"JRE主目录",设置为当前的JAVA_HOME所指向的位置,即JDK安装的目录。然后确定。
这时可见Tomcat5的TomcatJDKname中使用的即是刚刚所设置的JRE名称了,应用即可。
方法2:
MyEclipse的窗口-首选项,在JAVA下可见一个"已安装的JRE",选择它,右部可以看到所有的JRE库名称及位置,选择当前所使用的,编辑它,会弹出一个窗口,修改一下JRE的主目录位置即可。
应该来说,添加新的JRE系统库,然后针对不同的Appserver使用不同的系统库。这种做法应该比直接修改缺省的JRE配置路径要好一些。4.4图4.4空指针异常解决方法:为了确保进行操作或引用的对象非空,假假设我们要对某对象进行操作或引用,我们首先去检查该对象是否已经实例化且不为空;并且在系统中参加针对对象为空时情况的处理。
如:采用String对象保存用户提交的结果;在如果涉及对象的操作时,先检测其是否为空后,检查到对象为空后,可再选择进行以下任一种处理方式:
处理方式1)检查到对象为空时,设置对象值为空字符串或一个默认值;
处理方式2)检测到对象为空时,根本不执行某操作,直接跳转到其他处理中。
处理方式3)检查到对象为空时,提示用户操作有错误。4.图4-5数据库连接错误解决方法:选择的顺序和数据库顺序不一致,获得结果集中的次序不对,防止的方法是SQL语句时就按数据库中的顺序写,取值时亦按照顺序严格取值。还有你的版本太低,需要升级,你检查看看你的版本是sp3还是sp4,因为好多时候版本低的话,不支持。还有一种可能就是你的MSSQL连接的用户和密码和DataBase中设置连接的用户和密码是否一致。代码如下:url="jdbc:microsoft:sqlserver://:1433;DataName=pubs";
dr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国深圳市房地产行业商业创新模式及投资规划分析报告
- 2024-2030年中国液压阀行业生产状况及未来发展策略分析报告
- 2024-2030年中国液化气钢瓶气密性测试机产业未来发展趋势及投资策略分析报告
- 2024-2030年中国油分离器产业未来发展趋势及投资策略分析报告
- 2024-2030年中国汽车底涂行业深度调查及投资风险分析报告
- 2024-2030年中国水泥煤炭行业市场运营模式及未来发展动向预测报告
- 2024-2030年中国水产养殖行业发展形势及投资风险分析报告
- 2024-2030年中国氨基寡糖素行业需求量预测及投资价值研究报告
- 幼教行业资助政策管理制度
- 2022年大学林业工程专业大学物理二期末考试试题B卷-附解析
- 2024年甘肃酒泉肃州区选拔项目人员纳入编制管理107人高频考题难、易错点模拟试题(共500题)附带答案详解
- 2025版 高考试题分析-数学-部分4
- 医疗器械创新售后服务体系建设与应用示范阅读札记
- 汽油机油低速早燃性能测试方法编制说明
- 2023-2024学年山东省济南市历城区九年级(上)期中英语试卷
- 2024年全国注册消防工程师之消防技术综合能力考试历年考试题(详细参考解析)
- IWAY6.0实施计划完整
- 《慈母情深》教学设计与指导课件(第二课时)
- 法律顾问服务投标方案(完整技术标)
- 人教版八年级上册数学期中考试压轴题专练
- 中国环卫机械行业市场发展态势及发展趋势与投资战略研究报告
评论
0/150
提交评论