1、摘 要系统尝试用 JSP在网络上架构一个动态的电子商务网站,它是在 Windows XP下,以SQL Server 2000为数据库开发平台,Tomcat 网络信息服务作为应用服务器,MyEclipse6.0为开发工具,采用 HTML,javascript,CSS 控制样式前台界面设计,采用 JSP(Java Server Pages)技术开发的网上书店系统。系统分前台部分和后台部分,前台部分由用户使用,主要包括客户登录,客户注册,商品选购(可按分类方式查询商品,或通过关键字查询),购物车管理,查看用户订单,用户个人信息修改等功能。后台部分由管理员使用,主要包括商品管理(增,删,查
2、) ,订单管理(查看订单清单,更新订单付款,删除订单) ,用户信息管理(修,删,查) ,发布新产品等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理功能的电子商务网站。关键字:网上书店;Tomcat;SQL Server;动态网页;JSP;JDBC-ODBC 桥ABSTRACTTry to use JSP system on the network structure of a dynamic e-commerce sites, it is in Windows XP, to SQL Server 2000 database for the development platfo
3、rm, Tomcat network information services as application servers, MyEclipse6.0 for development tools, using HTML, javascript , CSS style outlook control interface design, use JSP (Java Server Pages) technology developed by online bookstore system. The prospects of the system and part of the background
4、, the outlook in part by users, including ID, customer registration, commodity purchase (subject to classification for goods, or through keyword query), shopping cart management, user orders, users Edit features such as personal information. By administrators to use part of the background, including
5、 management of goods (by, delete, search), order management (see the list of orders, payment orders update, delete orders), personal information management (repair, delete, search), the release of new products, etc. Function. After the establishment of the website system is a dynamic, interactive, w
6、ith the provision of goods, systems management capabilities of e-commerce sites.Key words: Bookstore on net;Tomcat;SQL Server;Dynamic homepage;JSP technology;JDBC-ODBC目 录摘 要 .IABSTRACTII第 1 章 绪 论 11.1 引言 .11.2 课题的目的和意义 .1第 2 章 系统开发技术和环境 .32.1 网站开发工具MYECLIPSE60 32.2 服务器 TOMCAT6.0简介
7、.32.3 数据库 SQL SERVER 2000简介 32.4 JSP技术工作原理 42.4.1 JSP技术简介 42.4.2 JSP技术的优点 42.4.3 JAVA SERVLET概述 52.4.4 JAVABEAN简介 .52.5 网站开发模式 62.6 本章小结 7第 3 章 系统分析 83.1 设计目标 83.2 可行性分析 .83.2.1 经济可行性 83.2.2 技术可行性 93.2.3 社会可行性 93.3 网站的需求分析 .93.3.1 相关网站的功能构架的考察 .93.3.2 网站的设计 103.3.3 网站设计的特点 103.3.4 网站开发的设计思想 .103.3.5
8、 系统设计总的原则 113.4 本章小结 11第 4 章 系统的总体设计 124.1 购书系统功能分析 .124.2 功能模块的设计 .124.3 系统流程分析 124.4 系统数据库设计 .174.4.1 数据库设计分析 174.4.2 E-R图 .174.4.3 数据库具体设计 194.5 本章小结 21第 5 章 系统的详细设计和实现 .225.1 前台设计 225.2 用户管理 225.2.1 用户注册 .225.2.2 用户登录 .225.2.3 用户找回密码 .235.2.4 用户信息查看 .235.2.5 用户信息修改 .235.2.5 用户注销 .245.3 书籍管理 245.
9、3.1 书籍查看 .245.3.2 书籍推荐 .245.3.3 新书上架 .255.4 书籍查询 255.4.1 书籍一般搜索 .255.4.2 书籍高级搜索 .255.5 购物车管理 .265.5.1 购物车添加 265.5.2 购物车查看 265.5.3 购物车修改 265.5.4 购物车清空 275.6 订单管理 275.6.1 生成订单 .275.6.2 结帐 275.6.2 查看订单 .285.7 后台设计 285.7.1 用户管理 .285.7.2 书籍管理 .285.7.3 订单管理 .295.7.4 管理员退出 295.8 本章小结 29第 6 章 系统测试 306.1 注册与
10、登录测试 .306.2 书籍查找测试 316.3 购物车测试 .326.4 订单测试 326.5 付款测试 336.6 本章小结 34结 论 35致 谢 36参考文献 37附录 1 程序主要代码 38附录 2 使用说明 .48附录 3 JSP DYNAMIC WEB TECHNOLOGY52第 1 章 绪 论1.1 引言目前,网络正以一种前所未有的冲击力在影响着人类的活动,包括人类的生产和日常生活。网络的诞生和发展,颠覆了传统的信息传播方式,冲破了存在于传统交流方式中时间和空间的种种壁垒,极大地改变了人类从物质到精神、从形式到内容、从生产到生活的各种活动,并
11、且给人类带来了新的机遇和挑战,截至 2007年 12月底,内地上网用户总数为 9400万,比去年同期增长 8.0%,其中使用宽带上网的人数达到 4280万;上网计算机达到 4160万台,增长了 14.6% 。用户在网上关注的信息也不再是单一的新闻。报告数据显示,用户在网上经常查询的信息中,教育信息占 29.3%,汽车信息占 13.8%,求职招聘信息占 24.2%。在互联网服务业务方面:电子邮件、搜索引擎、网上银行、在线交易、网络广告、网络新闻、网络游戏等服务业务仍然快速的发展着。在上网的时候我们接触最多的是 Web页面,Web 页面是如何制作出来的呢?它的制作是不是非常难以掌握呢?JSP(Ja
12、vaServer Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP技术,它是在传统的网页 HTML文件中插入JAVA程序段(Scriptlet)和 JSP标记(tag),从而形成 JSP文件。1.2 课题的目的和意义Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用 Internet的技术和协议,建立各种企业内部网(Intranet) ,企业外部网(Extranet) ,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约
13、了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。当今比较流行的网上书店国外有“亚马逊()” ,国内有“当当()”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。设计和完成一个电子商务购物系统,将会牵涉到许多技术上的问题,如:动态网页制作技术的、后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。所以说,完成这个课题的意义是重大的,其意义如下:1、理论联系实际通过
14、自己动手,把以往纯理论的理论知识和实践结合起来。在实践中验证理论的正确性。2、学习新技术,培养自学和探索能力目前流行的技术有 JSP、ASP 、PHP 等,结合 HTML 都能够快速的开发网站,要完成毕业设计就要在其中选择一种最合适的技术来进行开发,无论选择某一种技术,都能够学习到最新的开发技术。此外开发的时候一定会遇到疑难问题,这就需要自己寻找资料和开动脑筋。3、规模较大,可以弥补理论知识和实践的距离整个项目以开发一个完整的网站为目标,虽然只有基础的功能,但是规模已经不小,这就需要我们有更强的动手能力,这样通过动手操作能大大缩短理论知识和实践的距离。第 2 章 系统开发技术和环境2.1 网站
15、开发工具MyEclipse60MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称 MyEclipse)是对Eclipse IDE 的扩展,利用它我们可以在数据库和 J2EE 的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。2.2 服务器 Tomcat6.0 简介Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,目前最新版本
16、是6.0.14。Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Ap
17、ache 独立的进程单独运行的。我们的很多中小应用不需要采用 EJB 等技术,Jsp 和 Servlet 已经足够,这时如果用应用服务器就有些浪费了。而 Tomcat 短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择 Tomcat。2.3 数据库 SQL Server 2000 简介SQL Server 2000 是 Microsoft 公司推出的 SQL Server 数据库管理系统的最新版本该版本继承了 SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行 Microsoft Windows 98
18、 的膝上型电脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。2.4 JSP 技术工作原理2.4.1 JSP技术简介JSP(JavaServer Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML 文件中插入Java 程序段(Scriptlet)和 JSP 标记 (tag),从而形成 JSP 文件(*.jsp)。 所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的 Java 语言,具有良
19、好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。JSP 有六种内置对象,其中常用的有:request, response, out, session, application, config, pagecontext, page, exception. 2.4.2 JSP技术的优点JSP 技术在多个方面加速了动态 Web 页面的开发:(1)将内容的生成和显示进行分离 使用 JSP 技术,Web 页面开发人员可以使用HTML 或者 XML 标识来设计和格式化最终页面。使用 JSP 标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成
20、内容的逻辑被封装在标识和 JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。(2)强调可重用的组件 绝大多数 JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者 Enterprise JavaBeansTM 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。(3)采用标识简化页面开发 Web 页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标识中进行动态内容生成所需要的。(4
21、)健壮的存储管理和安全性 由于 JSP 页面的内置脚本语言是基于 Java 编程语言的,而且所有的 JSP 页面都被编译成为 Java Servlet,JSP 页面就具有 Java 技术的所有好处,包括健壮的存储管理和安全性。(5)一次编写,各处运行 作为 Java 平台的一部分,JSP 拥有 Java 编程语言“ 一次编写,各处运行” 的特点。2.4.3 Java Servlet概述Servlet 是 Java 编写的服务器端程序,是由服务器端执行和调用的 Java 类。Servlet 是采用 Java 技术来实现 CGI 功能的一种技术,能够像 CGI 一样动态地扩展 Web 服务器的功能
22、,并采用请求响应模式提供 Web 服务。JSP 技术是用 JAVA 语言作为脚本语言的,谈及 JSP 技术,少不了要对 JAVA 技术进行一些基本的介绍。2.4.4 JavaBean简介JavaBean 是一种基于 Java 的软件组件,JavaBean 和 Active 控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件) ,避免重复开发,也为 JSP 应用带来了更多的可伸缩性。JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库
23、的交互及数据提取等。由于 Java 语言在这些方面所具有的特点和优势,使得基于它的软件 JavaBean 组件技术倍受人们关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean 组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、Web 站点和应用程序构造器工具等多种方案中再利用。为了创建和使用 Java 软件组件, JavaBean 被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构和细节问题,只需定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。2.5 网站开发模式目前,JSP 技术已经成为一种受
24、大多数大型企业或中小型企业喜爱的动态网页开发技术。越来越多的技术人员也逐步成为 JSP 技术的推崇者。JSP 技术正是利用了 Java 的“一次开发,处处使用”的性能,成为了网站开发技术人员的首选技术。当然,JSP 技术的最大优势在于能够将页面的表现形式和页面的商业逻辑分开。JSP 网站开发技术标准提供了两种开发模式:一种是 JSP+JavaBean 开发模式;一种是JSP+Servlet+JavaBean 开发模式。JSP+JavaBean 模型图如图 2-3 所示: JSP浏览器 DatBaseJavBean图 2-3 JSP+JavaBean 模型图在这种模型中,JSP 页面独自响应请求
25、并将处理结果返回给客户,所有的数据通过JavaBean来处理,JSP 实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或者 Java代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难。JSP+Servlet+JavaBean模型图如图 2-4所示:浏览器 DatBaseJavBeanServltJSP图 2-4 JSP+Servlet+JavaBean 模型图Servlet 技术是一种采用 Java 技术来实现 CGI 功能的一种技术。Servlet 是运行在 Web服务器上,用来生成 Web 页面。 Servlet 技术非常适于服务器端的处理和编程。在此种开发模式中
26、,JSP 技术用来显示页面,该页面中没有任何的商业处理逻辑,通过 Servlet 技术来完成大量的事物处理工作。Servlet 用来处理事务的请求,充当着一个控制者的角色,并负责向客户发送请求,创建 JSP 需要的 Bean 和对象,根据用户的请求行为,决定将哪个 JSP 页面发送给用户。本设计主要使用第一种开发模式,简单实用,便于管理。2.6 本章小结本章只要介绍了开发系统所需要的技术和环境。本系统开发的只要工具是MyEclips6.0。接着介绍了服务 tomcal6.0,数据库本课题用的是 SQLSERVER2000,它连接前台用的是 JDBC-ODBC 桥。最后介绍了 JSP 的运行模式
27、、工作原理和技术特点。第 3 章 系统分析系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计。3.1 设计目标本平台利用现在比较广泛的 JSP+SQLServer2000 数据库的架构实现的,进行系统分析,为将来进一步的实施打下一个坚实的技术基础。本平台将投入到实际的试运行之中,进行测试,如果测试满意的话,将进行平台的完善开发,从而实现信息化,规范化,系统化,网络化的平台,具有较好的适应性和推广性。此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏
28、览、查询使用。包括:浏览商品、查询商品、订购商品、购物车、用户信息管理等功能;后台管理是提供给管理员的,其中包括:商品管理、用户管理、订单管理等。使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。3.2 可行性分析可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的。3.2.1 经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发,这些即为经济可行性研究的内容。对于大多数系统,一般衡量经济上是否合算,应考虑一个底线,经济可行性研究范围比较广,包
29、括成本效益分析、公司的长期经营策略、开发所需的成本和资源、潜在的市场前景。本平台只需要一台性能好一点的计算机担当服务器,装上 tomcat 服务器软件,即可成为一台服务器。客户只要连上服务器就可以进行运作,经济上都是可行的,而且要求不高,所以该系统的开发是可行的。3.2.2 技术可行性对要开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险又多大,项目是否能实现,这些即为技术可行性研究的内容。这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员水平和已有的工作基础。本系统需要一台服务器,配置要求与客户量成正比,可以供一个公司或企业使用。当前的主流服务器有很多选择,而
30、他们厂家的售后服务也很好。服务器需要安装的服务器Tomcat6.0。数据库可以使用 SQLSERVER2000 数据库。总之,这个平台开发所需要的东西很容易集齐,技术性也不是很高,所以技术是可行的。3.2.3 社会可行性研究要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行,这些即为社会可行性研究得内容。社会可行性所涉及得范围也比较广,它包括合同、责任、侵权、用户组织得管理模式及规范,其他一些技术人员常常不了解得陷阱等。因为本平台是个人自主开发的,所以不存在侵权、管理制度、组织管理等问题,这个平台的社会可行性是可行
31、的。3.3 网站的需求分析3.3.1 相关网站的功能构架的考察考察的网站主要是国内有名的“当当”网上书店进入网站后不用急着登录,你可以随便看看,新的图书和软件介绍详细,可以看到除了图书外还有影碟、游戏等多种商品,避免了网站销售的单一性。当你需要购买的时候,就需要登录了, 如果你没有注册过,就需要注册成为用户。 除了这些功能,比较人性化的功能还有商品搜索,除此之外,还有如新品推荐、热门商品等等。最后当你结账的时候,只要点击结账就可以了。这样整个购买过程就结束了。这些就是我们能够以用户的角度从“当当”得到的信息。其中有一些功能由于没有作过详细的调查,所以不能确定,但是以上调查证明要想成为一个完整的
32、购物网站,有一些功能如会员、购买等必须有,这就为本次设计提供了参考。3.3.2 网站的设计经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过实习调查和指导老师的耐心介绍,设计出该平台功能如下:(1) 能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。(2) 能够完成管理员对网站的书籍管理、处理订单,会员管理、操作管理的功能。(3) 能过书籍的名称,书籍的分类进行搜索。(4) 能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。3.3.3 网站设计的特点我所
33、设计和开发的网上书店是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用 Wed 技术,借助于Internet 互联网广泛应用技术,达到资源共享,提高以往买书的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购书活动过程简单、方便、易行。3.3.4 网站开发的设计思想网上书店主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过商品管理、处理订单、 、会员管理、操作管理等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行用户注册,通过网站的新书上架、商品分类或
34、商品搜索功能,找到自己想要买的书,装入购物车,提交定单进行购买。3.3.5 系统设计总的原则无论哪个网站都要有它自己的设计规则。该平台也一样,它的主要设计规则有:(1)简单性 在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。(2)针对性 该平台设计是网上书店及后台管理的定向开发设计,所以具有专业突出和很强的针对性。(3)实用性 该平台能完成电子商品展示和管理员管理的基本信息,具有良好的实用性。3.4 本章小结本章主要确定了本课题的设计目标,接着对系统作了可行性分析,包括经济可行性、技术可行性、社会可行性。最后对网站的需求作了分析,在需求分析中,先考察了和本课题相
35、关的网站制作的特色,参考它们用到的技术,最后得出本系统的特点、设计思想和总的开发原则,为以后开发作了准备。第 4 章 系统的总体设计4.1 购书系统功能分析经过前期的深入调查和研究,总结出该系统需要完成的一些具体功能,分析如下:(1)用户管理 能够完成用户基本信息录入的注册和用户基本信息的个人前台后台管理。(2)管理员管理 能够完成管理员对网站的商品资料(商品添加、商品删除) 、商品交易(处理订单、订单查询) 、会员管理(会员管理) 、操作管理(管理员添加、管理员审查、管理员退出)的功能。(3)搜索功能 能过书籍的名称,书籍的分类,进行模糊查询和精确搜索。(4)查询功能 能够通过查看购物车对所
36、选商品进行确定、挑选,通过定单查询对支付费用进行确定。4.2 功能模块的设计在系统功能的分析基础上,得到本系统的功能模块图如图 4-1所示。网上书店主要包括四大功能模块,用户管理模块、管理员模块、搜索模块、查询模块其中用户管理模块,主要包括用户注册、用户修改、用户删除,用户的找回密码等功能;管理员管理主要包括书籍管理(书籍添加、书籍删除,书籍查看) 、商品交易、会员管理、操作管理(管理员添加、管理员退出)等功能;搜索主要包括(书籍名称、书籍类别) 。4.3 系统流程分析(1)前台购物流程图 如图 4-2所示。(2)后台订单处理流程图 如图 4-3 所示。(3)注册功能流程图 如图 4-4 所示
37、(4)用户登录流程图 如图 4-5 所示。(5)商品搜索流程图 如图 4-6 所示。浏览书籍选择书籍订购书籍去购物车去收银台提交订单未注册用户已登录注册用户未登录注册用户注册登录图 4-2 顾客前台购物网上书店用户管理 管理员管理网站布局 搜索书籍修改 书籍添加 书籍删除 管理员添加 管理员退出会员管理 管理员管理 模糊搜索 精确搜索书籍管理用户删除用户信息修改用户注册 订单管理用户查找密码用户信息查看用户删除用户信息查看用户注销订单查看 订单删除书籍发送新书上架 销售排行商家推荐图 4-1 系统总体结构用户订单订单处理订单结帐订单发货订单删除图 4-3 后台订单图 4-4 用户注册注册入口必
38、选项为空用户名有效?输入密码致一致?密码长度符合要求求?注册成功否否否否是否是是是登录入口取得用户名和密码将 UserID 存入 session 中用户是否存在密码是否正确登录成功是是 否否图 4-5 用户登陆图 4-6 商品搜索(6)商品管理流程图 如图 4-7所示。开始搜索输入条件搜索结果查看商品 购物车下订单继续搜索是否商品管理查询商品修改,删除满意否返回添加商品是否图 4-7 商品管理(7)购物车流程图 如图 4-8 所示。图 4-8 购物车流程购物车查看商品满意吗下订单调整商品是否付款4.4 系统数据库设计4.4.1 数据库设计分析在信息世界中,信息从客观事物出发流经数据库,通过决策
39、机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进入数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。网上书店的主要对象是用户,所以必需建立用户表,包括用户的基本信息情况;用户的主要活动是对商品的购买,所以必需建立商品信息表;用户对商品的购买,用户提交定单,建立定单表。4.4
40、.2 E-R 图数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表。实体、属性与联系是进行概念设计时要考虑的 3个元素,也是一个好的数据库设计的核心。经过仔细地设计,得到各个实体的 E-R图。图 4-1 用户实体属性图真实姓名邮编详细地址用户名称回答联系电话用户密码用户 ID用户类型问题注册时间用户图 4-2 订单实体属性图图 4-3 图书实体属性图图 4-4 消费实体属性图订单订单 ID 销售价格订单日期图书数量 图书金额订单状态用户名销售价格库存数量图书 ID内容简介作者是否推荐图书名称出版社出版日期进货日期书籍类型进货价格图书消费
41、折扣数用户名 消费额会员等级11 m1 nm图 4-5 实体联系 E-R图4.4.3 数据库具体设计由设计的 E-R图得到下面各表的结构。表 4-1 系统会员消费信息表(usersend 表)字段名 类型 说明userName 文本 会员名称Sendmoney 数字 消费的数量Zhe 数字 折扣等级Dengji 数字 会员等级表 4-2 系统书籍信息表(book 表)用户购买书籍订单订购包括字段名 类型 说明bookId 数字 图书的 ID号bookName 文本 图书名称bookType 文本 图书的类型aut
42、hor 文本 本书作者chubanshe 文本 出版社Price 数字 本站售价格Cben 数字 进格outdate 文本 出版时间addtime 文本 进货时间booksum 数字 图书剩余数量bookIntroduce 文本 图书介绍Iftujian 数字 是否推荐lirun 数字 每本的盈利表 4-3 订单明细表(dmingxi 表)字段名 类型 说明dingdanId 文本 订单号userName 文本 会员名称bookName 文本 书籍名称Quantity 数字 购买的书籍数量Price 数字 单价num 数字 总价Addtime 文本 下单时间Ifok 数字 订单状态表 4-4
43、系统会员信息表(usr 表)字段名 类型 说明userId 数字 会员的 ID号userName 文本 会员名称trueName 文本 用户的真实姓名userPrd 文本 密码question 文本 找回密码的问题answer 文本 答案address 文本 用户地址Post 文本 邮编addtime 文本 注册时间Lasttime 文本 上次登录时间userType 文本 用户的类型Tel 文本 电话Email 文本 邮箱Introduce 文本 备注4.5 本章小结本章开始了系统的总体设计,主要有系统的功能分析、模块分析和流程分析。其中,在功能分析中画出了本系统的总体 E-R 图,在模块分
44、析中介绍到系统总共用到哪些模块,而在流程分析中分别画出了会员注册、购物、订单等流程图。最后写出了系统数据库的表的结构,为系统的详细设计做了准备。第 5 章 系统的详细设计和实现5.1 前台设计在主页上,顾客能迅速获得商品的资料,如新发布的产品、热门产品,商家推荐,销售排行,新书推荐。这样能让顾客在最短时间内获得他们说需要的商品。而我们还可以看到,新的用户可以在这里注册、会员可以在这里直接登陆、修改自己的资料,查看订单,查看购物车等。总之,主页的设计的只要思想就是方便顾客购物。首页的设计使用的是表格嵌套的 JSP 语句。jsp:include 加载的头部页面 head.jsp,中间为总体的显示页
45、面 head.jsp,页脚是静态页面 copyright.html 作为版权说明。5.2 用户管理5.2.1 用户注册如果成为会员,在购物的时候可以获得优惠,基于这个想法,顾客一般都会在这里先注册成为会员的。在主页上点击“新用户注册”就可以跳到会员注册页面,在会员注册资料中,分为必填资料和选填资料。注册页面为 reg1.jsp 填好一切资料后点击“好了我要提交”,提交到注册处理页面 reg3.jsp.并使用 JAVASCRIPT 脚本进行验证,将用户名与原有的 user 表进行比较,若用户名已存在,则提示“此用户名已存在请重新填写”,经过验证后填写的数据添加到数据库的 usr 表中,点击“不行
46、我要重填 ”进行重新填写。 5.2.2 用户登录顾客经过注册后,可以用注册过的帐号进行登陆。在登陆界面 login.jsp 中或首页的登录框中输入帐号、密码、会员类型提交到 user_login.jsp 页面处理登录请求,将提交的数据与数据库中的原有 userName,userprd,userType 进行组合查询比较,验证通过后就可以登陆会员系统。如果是管理员进入管理页面 manager/index.jsp,普通会员进入网站首页index.jsp,并且显示出用户名,将用户名存入 session 中后可以进行购物等所有操作。5.2.3 用户找回密码顾客经过注册后,可以用注册过的帐
47、号进行登陆。但是如果忘记了密码,还可以通过单击找回密码链接转到 findprd.jsp 页面填写问题和答案后提交到 findprd_ok.jsp,比较 usr 表中的 userName,question,answer 的内容,找回自己的密码。该页面如图 5-1 所示。图 5-1 黄金屋书店找回密码页面如果问题和答案都正确则弹出对话框显示密码“你的密码是” ,后进入登录页面重新登录。相反如果填写的信息有误则弹出对话框显示“输入信息有误,请重新填写或注册”。5.2.4 用户信息查看 用户登录后可以查看自己的注册信息和在网站的消费信息,通过 myinfo.jsp 显示用户信息。并出现信息修改链接,可
48、以修改密码和注册信息,但是用户名不可改变。5.2.5 用户信息修改可以分别进行修改密码和注册信息,但是用户名不可改变。表单提交信息的约束由JavaScript 完成,修改密码的处理页面是 modify_password_save.jsp。用户信息修改处理页面是 modify_info_save.jsp。数据库更新操作过程中,定义一个整型变量 temp 用于返回数据库操作的状态。这样可以不用抛出异常来显示数据库操作状态,不但可以设计成一个比较友好的错误处理页面,管理员也可以根据提示判断错。当 temp0 时,数据库更新成功,并弹出对话框提示修改成功。若当 temp=0 则提示数据库更新失败,重新
49、填写信息。当temp0 时,网络内部错误或其它系统错误。 5.2.5 用户注销用户在登录时将用户名和 ID 存入 session 中,从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户首次访问服务器上的一个 JSP 页面时,JSP 引擎产生一个 session 对象,同时分配一个 String 类型的ID 号,JSP 引擎同时将这个 ID 号发送到客户端,存放在 Cookie 中,这样 session 对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的 session 对象,直到客户关闭浏览器后,服
50、务器端该客户的 session 对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的 session 对象。所以为了安全和资源浪费的角度来看要用注销来释放 session 中的用户 ID。单击注销时提交到 loginout.jsp 将 session 中的 ID 释放清空完成注销。5.3 书籍管理5.3.1 书籍查看用户可以查看书籍,当用户点击“商品浏览”链接时提交到 showbook.jsp 显示全部书籍,并且点击书籍名称来将书籍的 ID 号传递到 seebookall.jsp,然后通过查询语句查出与ID 号相同的书籍后显示书籍的详细信息,单击图书类型名称可通过条件组合将 bookType传入 s