




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学本科毕业论文在线购书系统摘要 JSP是一种基于Java技术执行于服务端的动态网页开发技术,而Servlet技术的加入使得网页开发变得分工明确,JSP主要负责页面设计,后台则交予Servlet掌控,效率更高!本文描述了基于JSP+Servlet技术实现的网上购书系统,以Tomcat作为服务器,sqlserver2000为数据库,在工具Eclipse上开发,正文中介绍了技术特征,应用原理及方法,也展现了整个网站的运行流程,数据库的结构和网站的页面组成。关键词 J2EE 动态网页开发 JDBCOnline Book ShoppingAbstract JSP is a java-based technology in the implementation of server-side dynamic web development technology. And the in-joining of Servlet make the web development divide the work more efficiently, JSP response for the page design, Servlet control the background process, This paper describes my online book shopping system based on JSP and Servlet, my server is Tomcat, database is sqlserver2000, and I complete the system on Eclipse. In the text, I describe the technical features, theory and methods of application, as well as the whole operation process, the structure of the database and web page component on the website.Key words J2EE dynamic web development JDBC第 2 页 共 2 页厦门大学本科毕业论文目录第一章 引 言1第二章开发工具与技术22.1 J2EE简介22.2 JSP与servlet简介42.3 Eclipse与myEclipse简介42.4 Tomcat简介52.5 SQL Server2000简介6第三章网上购书系统整体框架描述73.1网站整体设计思想73.2网站总体框架说明83.3网站各级目录详细说明9第四章网上书店的详细设计104.1数据库设计104.1.1数据库设计对整个系统的影响104.1.2数据库的内容概述104.1.3数据库的详细设计114.2客户端前台设计134.2.1客户登陆验证134.2.2用户注册154.2.3分类查看书籍信息154.2.4图书信息简介与评论164.2.5订购图书174.2.6 TOP5图书184.2.7我的购物车184.3后台管理设计184.3.1管理员登陆验证184.3.2商店图书查询194.3.3添加图书资料204.3.4定单信息查询214.3.5用户信息查询214.3.6用户建议信息214.4系统的特色设计22第五章结 束 语23致 谢24参考文献25附录26CONTENTSChapter 1 Introduction1Chapter 2 Tool and Technology22.1 J2EE Introduction22.2 JSP and servlet Introduction42.3 Eclipse and myEclipse Introduction42.4 Tomcat Introduction52.5 SQL Server2000 Introduction6Chapter 3 Whole Frame Description of The System73.1 The Whole Design Thinking73.2 The Whole Frame Description83.3 Detailed Description of Every Layer of Catalog9Chapter 4 Detailed Description of The System104.1 The Database Design104.1.1 Database Designs Effect on the System104.1.2 The Overview of Database104.1.3 The Detailed Design of The Database114.2 The Design of The Client-side134.2.1 User Login Validation134.2.2 User Registration154.2.3 Read the Book Inforation Assortedly154.2.4 The Book Introduction and Commentary164.2.5 Book the books174.2.6 TOP5 Books184.2.7 My Shopping Cart184.3 The Design of The Server-side184.3.1 Administrator Login Validation184.3.2 Books Query194.3.3 Add Book Inforation204.3.4 Order Inforation Query214.3.5 User Inforation Query214.3.6 User Commentary Inforation214.4 Unique Design of The System22Chapter 5 Summary23Acknowledgement24References25Appendix26第一章 引 言随着计算机及网络技术的飞速发展,Internet/Intranet作为新世纪人们交流的新兴手段,已经逐渐渗透到我们的日常的工作生活中了,各式的网站也随之以惊人的速度增长着,网上购物日趋普及,网上商店系统已经成为任何人可以在网络所提供的平台上进行买卖的新型购物方式。在众多网络开发技术中,JSP技术是当前较为流行的,它可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理。网上书店的开发设计是以J2EE为开发平台,以JSP和JAVA为开发语言,以Microsoft SQL Server2000为网站后台的数据库管理系统。J2EE作为现在广为运用的开发平台,是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。与以往的开发环境相比,有以下显著特点:(1)多层模型J2EE平台提供了一个多层应用程序模型,这意味着应用程序的不同部分可以运行在不同的设备上。J2EE结构定义了一个客房机层,一个中间层(由一个或多个子层组成),以及一个EIS层。(2)对商业逻辑组件的支持在J2EE平台中,EJB组件实现中间层的商业逻辑,EJB让组件或应用程序的开发者将精力集中在商业逻辑的开发上,将复杂的服务(例如:安全、事务)交由EJB服务器处理。 (3)对J2EE标准的支持J2EE标准定义了一系列相关规范,其中主要的有J2EE平台规范,Enterprise JavaBeans规范,Java Servlet规范和Java Server Page规范,另外,还包括J2EE兼容性测试套件(J2EE Compatibility Test Suite,CTS)和J2EE SDK. Microsoft SQL Server2000数据库管理系统是微软公司推出的一种关系型数据库产品。它具有良好的可靠性、安全性和易用性,是大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。第二章 开发工具与技术2.1 J2EE简介J2EE即Java2平台企业版(Java 2 Platform,Enterprise Edition),是Sun公司为企业级应用推出的标准平台(Platform),是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。过去二层化的C/S应用被J2EE切分成许多层,一个N层化应用能够为以下的每种服务提供一个分开的层:显示层:在一个典型的WEB应用中,客户端机器上运行的浏览器负责实现用户界面。当然终端类型可以多种多样。表示层:尽管浏览器可以完成某些动态内容显示,但为了兼容不同的浏览器,这些动态生成工作应该放在WEB服务器端进行,使用JSP、SERVLETS,或者XML(可扩展标记语言)和(可扩展样式表语言)。业务层:业务逻辑适合用SESSION EJBS(后面将介绍)来实现。数据访问层:数据访问适合用ENTITY EJBS(后面将介绍)和JDBC来实现。 同后台系统的集成可能需要用到许多不同的技术,至于何种最佳需要根据后台系统的特征而定。这样的多层式使企业级应用具有很强的伸缩性,它允许每层专注于特定的角色。J2EE大体层次结构如图2-1所示:图 21 J2EE层次结构J2EE包括多种组件,以下列举几种常用的: Servlet Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。 JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。 EJB EJB定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。在装配组件时,所有的Enterprise Beans都需要配置到EJB服务器中。 JDBC JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。 JMS JMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。 JMX JMX是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的管理应用。2.2 JSP与servlet简介 Jsp 与Servlet已经在上面有分别介绍了,这里主要介绍他们的联系。Jsp(JavaServer Page)是在普通Html中嵌入了Java代码的一个脚本,在这一点上,它与其它的脚本语言(如Php)一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件。最终,服务器解释的是Class文件。那么什么是Servlet呢?Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回。Servlet和Jsp是Sun公司J2EE架构中重要的部分。由于基于Java语言,因此其可以方便的调用功能强大的Java API(如JDBC)。2.3 Eclipse与myEclipse简介Eclipse是一个开放源代码的、与NetBeans、Sun ONE Studio和Borland Jbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一,IBM在最近几年里也一直在大力支持该项目的发展,目标是将其做成用以替代IBM Visual Age for Java(简称IVJ)的下一代IDE开发环境,并于2001年11月宣布投入4千万美元资金到该项目的研发。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。 Eclipse是一个专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成-Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 而myEclipse则就是Eclipse的一个插件包,他包括很多的插件功能集合,他提供AJAX/Web2.0的支持,对Java Editor的提升,新的Java Debbugger和Web 2.0平台和浏览器,UML序列图标支持,JSP本地察看,新的Hibernate映射编辑工具,Spring/Hibernate 集成等众多功能,使Eclipse变得无所不能。2.4 Tomcat简介Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat提供Realm支持,Realm类似于Unix里面的group。在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm: JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。 JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。 MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。Tomcat也可以与其它一些软件集成起来实现更多的功能。如与JBoss集成起来开发EJB,与Cocoon集成起来开发基于Xml的应用,与OpenJMS 集成起来开发JMS应用等.2.5 SQL Server2000简介SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好,与相关软件集成程度高等优点.可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用.SQL Server 2000的数据库对象主要包括了以下部分: 表和视图 表,即基本表,它是在数据库中存放的实际关系。一个数据库中的表可多达20亿个,每个表中可以有1024列(字段)和无数个行(记录)。视图 是 为 了用户查询方便或根据数据安全的需要而建立的虚拟表。它可以是一个表中的数据的子集,也可以由多个表连接而成的。 角色 角色是SQL Server服务器操作权限和数据库访问许可的管理单位,角色类似于Windows NT/2000中的用户组,设置角色的目的是为了方便数据库的管理。 存储过程 存储过程 (Stored Procedure)是SQL SERVER服务器上一组预先编译好的Transact-SQL语句。使用存储过程可以提高Transact-SQL语句的运行性能,提高其执行效率。 约束 在数据库管理系统中,所谓数据库的完整性,是指存储在数据库中数据的一致性和正确性。为了保证数据库的完整性,SQL Server 2000内建了许多数据库对象,如约束、默认、规则、触发器等。在SQLSERVER中的约束包括下面的种类:PRIMARY KEY(主键约束)、FOREIGN KEY(外键约束)、UNIQUE(唯一约束)、CHECK(检查约束)、DEFAULT(默认值约束)。 触发器 触发器本质上是运行在服务器上的一种功能约束,在对表进行插入,更新,删除动作的时候它会自动启动并检查,保证数据的完整性和一致性。第三章 网上购书系统整体框架描述3.1网站整体设计思想本系统设计的总体思想是能让普通用户查询,购买书籍,这是网站要实现的基本功能,同时对于后台数据库的管理也是设计的另一个重点,没有后台的支持,前台也很难顺利的进行购书操作,所以前台用户部分和后台管理部分是整体设计的两大重点。前台用户部分可以实现的功能主要有依据书籍分类查询对应类别的图书,查看图书简介发表评论,查询TOP5书籍(即客户购买次数最多的五项),订购书籍,我的购物车等,这可以在图3-1中看到相应的链接及提示操作。图31用户界面的一部分后台管理部分可以实现的功能住要有商店图书查询,添加图书资料,定单信息查询,用户信息查询,用户建议信息等,这可以在管理员主页上看到相应的功能链接,如图3-2所示。图32管理员主页面3.2网站总体框架说明网上购书系统主体分为两大模块:用户端和管理端,这在前面已经提到了,两大模块下还有各自的二级模块,是分别实现的具体功能,为便于说明,这里将网站总体框架和各个模块间的关系通过图33展示出来。图33网站总体框架3.3网站各级目录详细说明网站的一级子目录(主栏目)及其二级子目录的内容定位的详细说明如表31所示。表31网站各级目录说明一级子目录二级子目录说明前台管理 用户进行网上购书的模块分类查询图书通过分类用户可以查询对应书籍的所有图书信息,通过这步用户可以进一步发表评论,订购图书等。TOP5图书通过记录图书订购的次数选出被订购最多的五本图书展现出来,也可以进行发表评论,订购图书。我的购物车可以向用户展现所下的定单信息后台管理管理员进行查询定单,发送图书的模块图书信息查询显示数据库所有的图书信息添加图书信息允许管理员添加新的图书信息定单信息查询管理员可以查看所有的用户定单用户信息查询管理员可以查看所有的已经注册的用户信息用户建议信息管理员查看所有的用户的建议第四章 网上书店的详细设计4.1数据库设计4.1.1数据库设计对整个系统的影响由于管理员后台的添加图书,发货等动态操作,以及用户评论,对同本书的购买次数统计,数据库存储的信息是动态变化的,信息的显示又与数据库密切相关,因此数据库的设计的好坏将直接对网站系统的效率以及网站实现的效果产生很大的影响.在本系统数据库设计过程中,曾因整体掌握的不清晰,在中途有修改数据表的过程,相当的困难和麻烦,对开发进度带来了很大的延迟。4.1.2数据库的内容概述考虑到网上购书功能实现的完善,数据库主要涉及到以下几个方面的内容要求:(1) 书籍信息部分书籍是整个网站实现的基础,由于本项目侧重与软件本身功能的实现,只在数据库引入五大类具有代表性的书籍。(2) 用户信息部分在本系统中,为测试的需要,普通用户登陆的ID是moon,密码是123456,当然,可以通过注册进入。管理员是固定的,无法通过注册得到ID和密码,测试的ID是sun,密码是123456。(3) 用户定单部分既然是网上购书,定单是必不可少的,每份定单都会写入数据库中,以便于后台的查询发货。(4) 用户意见部分用户意见信息是用户对购买的书籍的评论,以此联系后台与顾客的沟通,便于书籍的管理。4.1.3数据库的详细设计l 管理员表adm表(管理员名,密码)中文字段名英文字段名字段类型长度主键/外键字段约束管理员名namevarchar50PKnot null密码passwordvarchar50not null 此表是存放管理员登陆的ID和密码,由于正常的管理员无法是通过注册来获取ID和密码的,所以本系统管理员登陆只认识此表里的管理员信息,为测试需要,默认的ID和密码是sun和123456。l 用户信息表uuser表(用户名,密码,性别,地址,电话,邮编)中文字段名英文字段名字段类型长度主键/外键字段约束用户名namevarchar100PKnot null密码passwordvarchar50not null性别sexvarchar50地址addressvarchar100电话phonevarchar50邮编postvarchar50此表是存放用户信息的表,新用户注册时会将注册的信息插入此表,列name即用户名为主键;列password不能为空,表名选取时要注意的是不能用user作为表名,因为user是数据库已经定义的对象了。设计时,一度也因为以user为表名而无法对此表进行操作。为测试需要,默认的ID和密码是moon和123456。l 图书信息表book表(书名,图书类别,作者,出版社,单价,购买次数,简介)中文字段名英文字段名字段类型长度主键/外键字段约束书名namevarchar100PKnot null图书类别kindvarchar50not null作者authorvarchar50出版社publishvarchar50单价pricevarchar50购买次数clivarchar4简介commvarchar8000 此表是存放图书信息的表,是本系统最基础的表,用户查看各类图书,评选出TOP5图书以及管理员增加图书等,都是对此表的操作,列name是主键;列kind是类型(本系统共提供五种书籍信息),不为空;列price也不能为空;列cli是为评选TOP5书籍的标准,用户每购买此书一次,对应的cli值会增加一,最后找出cli最大的五个书籍为TOP5书籍;列comm是对此书的简介,由于简介的字数不确定,且有可能会很大,所有将其长度定为sqlserver2000的varchar型的最大长度8000。l 定单信息表buy表(用户名,书名,数量,单价,定单号)中文字段名英文字段名字段类型长度主键/外键字段约束用户名custvarchar50书名bookvarchar100数量numvarchar10单价pricevarchar10定单号indvarchar10此表是存放定单信息的表,用户订购书籍信息都将写入此表,而管理员展现定单信息,发货也是对此表的操作。如果无人订购的话,此表的内容将为空,所以本表没有人为设置主键,就以数据库默认的ID为主键。列ind是定单号,此列是后加上去的,由于前期设计的问题,没有考虑到,每个用户可能有几次下定单,对一行的选取,没有ind将会变的很繁杂,当然,后面添加此列也造成了进度上的推延。l 用户建议表comm表(用户名,书名,建议)中文字段名英文字段名字段类型长度主键/外键字段约束用户名customervarchar50书名bookvarchar50建议commvarchar8000此表是存放用户购书后对书的评价的表,跟定单信息表相似,由于如果无人提出建议的话,此表为空,所以表的每列值可以为空,主键也未人为设置,列comm是用户意见,考虑到建议字数有可能很多,也采用了varchar型最大的长度8000。4.2客户端前台设计客户端前台是面向用户的,是整个系统中被采访次数最多的部分,设计时要考虑用户的需求,习惯,以及便于操作性。4.2.1客户登陆验证 系统展现给客户的首个页面是用户登陆界面,如图4-1所示。图41用户登陆界面 此界面提供的功能有三个:(1) 用户登陆用户输入用户名和密码,经过验证即可进入用户主页面。(2) 提供管理员登陆界面的链接(3) 提供用户注册的链接客户登陆输入的用户名和密码是要经过数据库验证的,首先servlet要提取用户输入的信息,即用户名和密码,通过request请求从JSP页面获取这些信息,然后进行数据库的连接及操作。数据库连接与操作是本系统运用最多的一个技术,所以这里详细介绍一下,在接下的数据库操作中就不再累述。JDBC(java Database API)是JAVA连接数据库的唯一的API,它提供一个SQL语句的接口,通过这个接口,JAVA可以跟任何数据库进行连接。对于不同的数据库,都有其特定的驱动程序,它是适合特定的数据库JDBC接口的实现,换种说法就是,我们可以把这特定的驱动程序看做是个中间层,它把JAVA方法调用翻译为专用的数据库API调用,然后用来操作数据库。JDBC驱动程序可以完成以下三种功能:(1) 建立一个与数据源的连接(2) 发送查询和UPDATE语句到数据源(3) 取回结果集本系统采用的数据库是微软的sqlserver2000,按照以上的原理,验证步骤如下:(1) 装入驱动程序;(2) 连接sqlserver数据库 此步的数据库连接要用到安装的sqlserver数据库的一些信息,即数据库的登陆名和密码,不同的安装设置不一样,所以此处要依情况对代码进行修改。由于项目设计的电脑中,用户名和密码都为sa,所以代码就如项目中所写的那样。同时,系统中的所有表都是放在数据库表BOOK中的,这也是此步需要的一个参数。(3) 创建个Statement语句对象以便允许创建个SQL命令并执行他由于用户信息的验证只需要查询信息,无须对数据库进行修改,此处用Statement对象。如果需要对数据库进行改动,或者说SQL查询语句是动态的话,就要用PreparedStatement对象。 (4) 通过取回结果集ResultSet,比较ResultSet中是否有跟用户输入的信息相符的,如果有就通过验证,跳转到用户主页面中,如果没有就提示用户输入有误,请返回重新填写。 在用户信息验证的同时,考虑到通过验证进入用户主界面有些信息必须要在登陆后一直保留着,即登陆用户信息,因为以后的操作都只是针对这一个指定用户进行的,这个用户信息将会过度到他所浏览的每个界面,包括他购书,提出评论等,在对数据库操作中,要将用户的信息也一块写入,为此,项目中定义了个用户信息的类:User,用它可以同时存储登陆用户的用户名,密码,地址,电子邮件等信息,以便后续的应用。要在登陆后能一直保存此用户的信息,在JSP中通过session可实现此功能。4.2.2用户注册如果用户还没有注册,可以通过用户登陆界面上的提示,链接进入新用户注册界面,如图4-2所示。 图42用户注册界面 用户注册将会把注册的信息写入数据库,此处即写入用户信息表uuser中。在写入之前,首先要对用户输入的信息进行检验,主要考虑以下几点:(1) 用户名不能与表uuser中以有的重复。(2) “密码”和“确认密码”两项要保持一致。(3) 用户要求输入的各项不能有空,即注册的各项为必填。 在保证以上几点的情况下,接下来就可以将用户注册的信息写入数据库,对要写入的信息进行重新中文编码,以避免数据库中显示出乱码的情况,这正如在每个JSP页面上都要首先进行中文编码一样。 由于用户在注册成功后将直接进入用户主页面,所以,在将用户信息写入数据表后,也要通过session将用户的信息保留下来,以便后续的使用。4.2.3分类查看书籍信息用户登陆后者注册后将会进入用户主界面,通过主页面用户可以很清晰的看到网站所提供的主要功能信息,首先是系统是将所有书籍按种类划分为五大类:科幻,军事,技术,体育,艺术。用户可以通过选取图书的种类,然后点击“查看”查询对应种类书籍的全部信息,如图4-3所示。图43图书分类界面 此模块的设计主要包括两大部分,具体实现如下:(1) 图书种类选取框处的设计。由于种类选取点击“查看”,页面跳转到的都是classes.jsp,只是每次跳转都是把选取的图书种类信息传递过去,然后通过传递的这个信息,界面读取数据库(这是下面要说的)。同时,选择框combobox里显示的也要是已选取的种类,所以在jsp里设计combobox时要用if语句判断,将选取的那项的属性定为selected。页面右边是主体,即展示选取种类的所有书籍信息,通过传递来的图书种类信息,访问数据库表book,把表中列kind为选取种类的所有行以表格的形式显示在页面上。在显示的图书信息中,每行显示某一种书籍的相关信息,同时,有“简介”和“订购”链接,通过这两个链接进入不同的功能模块的界面,链接时要将书名作为参数带到下个页面中去,以便于接下的操作。4.2.4图书信息简介与评论用户在查看图书分类后可以了解到对应类别的所有图书,这是以表格的形式显示出来的,每行是一本书籍的信息,其中“简介”是链接到图书简介页面的,在这个页面里用户可以看到对应书籍的简介,同时也可以对此书发表评论,这是出于便于管理端与客户交流而设置的功能。具体实现如下: (1)根据链接传递过来的图书名,访问数据库表book,找到对应的行,将对应comm列的内容提取出来,并显示在页面上。(2)出于考虑用户在购买书籍后有相应的意见回馈,在这里设置个textarea,以便让用户提出意见。程序设计上,考虑到有可能用户没有提建议,所以,先提取textarea的值,然后判断是否为空,如果为空,就跳转到上个界面;不为空的话,就将其写入用户建议表comm,当然也将书名(从上个页面传递过来的),用户名(登陆或者注册时已经通过session存储起来的)一起写入。4.2.5订购图书用户查询完图书,查看简介后,如果想购买图书,就要进入订购图书的界面,由每行图书最后一列的“订购”链接进入,如图4-4所示。图44图书订购界面订购页面的设计比较简单,在操作上主要有三步:(1) 通过获取上个页面传递过来的图书名,将其显示出来,便于用户清晰的知道自己所要购买的书籍,同时也为将此份定单写入数据库做准备。(2) 通过提取页面上textbox里的内容,即用户想要购买的数量,也为写入数据库做准备。“购买”按钮的触发将调用servlet文件,进行数据库操作。这里要注意的同样是,在写入数据库之前要先进行中文编码,然后将所获取的信息,包括用户名,书名,数量,定单号写入定单表buy中。定单号的选定也是要非常注意的地方,由于定单常有被添加和删除的改变,定单号的选取必要要注意不能跟以有的重复,项目中选取定单号的方法是:从数据表的第一份定单开始,设定其定单号为1,第二份定单为2,依次类推,这样的设定就必须每次往定单表buy中添加信息时,要先查询已有的定单号的最大值,将其加一作为新定单的定单号。同时,由于系统里有TOP5书籍的选举功能的存在,而选取的标准就是书籍的订购次数,所以,这里每份定单写入表buy后,也要对图书表book进行修改,将对应书名的cli(即订购次书)值加1。最后跳转到上个页面。4.2.6 TOP5图书TOP5图书就是将用户购买次书最多的5本书籍信息展现出来,以便于引导用户的购买,这个设计是借鉴于音乐网站设计中的。由用户主页面或者图书分类页面的“TOP5书籍”链接进入。 TOP5图书界面的设计跟图书分类界面相似,访问的数据库表也都是book,只是查询的依据是选取列cli值,即其最大的前五项。 程序设计上主要是在数据库访问时,查询的结果要按cli列递减的顺序存储在ResultSet中,这样,显示的时候,只要取出前5项即可。4.2.7我的购物车我的购物车展现的就是登陆用户所订购图书情况,也就是把数据库表buy中用户名为登陆用户的所有行显示出来,链接是由标题图片下面的“我的购物车”进入。 此页面的设计简单,数据库操作就是将图书订购表buy中对应用户的定单提取出来,以表格的形式展示出来即可。4.3后台管理设计后台管理是直接对数据库操作较多的部分,是前台得以顺利方便运行的前提,对用户购书的查询,添加图书,发货等都由后台操作。4.3.1管理员登陆验证管理员验证是管理员进入管理后台的验证页面,由项目首页中的提示链接进入,如图4-9所示。图45 管理员登陆界面 管理员登陆验证的操作跟用户登陆验证相同,只是数据库有存储管理员信息的专门表adm,只要输入的信息与adm表中有相符的项,即可进入管理员主页面。而且与用户登陆中不一样的是,管理员登陆时无须将管理员的信息存储下来,因为后续的管理操作主要是针对客户的,如查看建议,添加图书,发送定单等,跟管理员的信息没有联系。同时管理员无法通过注册来获取用户名和密码,只能是数据表adm指定的。4.3.2商店图书查询管理员信息验证后即进入管理员主页面,主页面很清晰的展现了后台管理可以实现的功能,都是以链接的方式显示出来的,一目了然,如图4-6所示。图46 管理员主页如上图说示,管理员可以实现的功能有如下几点:(1) 商店图书查询。(2) 添加图书资料。(3) 定单信息查询。(4) 用户信息查询。(5) 用户建议查询。此模块主要是商店图书查询,它是让管理员了解当前数据库所有的图书信息,数据库操作上比较简单,那就是连接sqlserver,查询图书列表book,将表里的全部内容以表格的形式显示出来。 不过,考虑到此处要显示的图书数量比较大,前面涉及的数据库读取(当然,那些信息量相对较小)后显示没有过多的考虑到如下这个问题:在页面显示是用for循环一行一行添加显示在页面上的,这样随着数量的增加,页面会被拉得很长很长,严重影响美观,所以此模块最重要的就是要实现页面显示的分页特性。分页的实现主要是“首页”,“上一页”,“下一页”,“末页”几个链接的算法设计,具体设计思想如下:首先,考虑跳转到此页面的所有链接,这些链接都要传递过来个信息,此信息是用来判定此次是要显示哪一页的(这里可以设定每页显示6项数据,这样,一共要显示的页数就确定下来了),如果从其他页面跳转到商店图书查询页面的话,一般都是显示第一页的,由本页面的“首页”再跳转到本页面的,也是显示第一页,由“上一页”跳转的话要考虑上次跳转的页号,在此基础上减一,由“下一页”跳转的话就是要在上个页号基础上加一,而“末页”的设计就是通过算法求得末页数据的首项是什么,以便于显示此页。程序上的实现主要有以下几步:(1)首先提取从跳转页传递过来的信息,即判定页号的基准,这里假设其为page,以便接下的取用,同时读取数据库表book,将表中的信息总量(即图书的总数量)取出来,假设其为count,也是便于接下的操作。(2)对page的值进行判断,如果是1,即是从其他页面跳转过来的或者由本页的“首页”链接过来的,这样显示的数据第一项就是从数据库取出来的第一项,并依次显示接下的5项;如果page是“10000”(在传递page时设定的),说明这是从本页的“末页”链接过来的,接下来判断count%6是否为0,如果是0,则本页要显示的第一项在数据库中是第(count/6-1)*6+1项,并依次显示接下的五项;如果page是其他值,则显示的第一项为数据库表的第(page-1)*6-1项,并依次显示接下的五项。(3)对page判断完后,根据本页要显示的第一项的信息,读取book表,将对应的图书信息以表格的形式显示在页面上。4.3.3添加图书资料添加图书资料是管理员向数据库添加新书的界面,如图4-7所示。图47 添加图书资料此页面是管理员添加图书的,设计上也很清晰明了,JSP通过form获取所填写的新书信息,通过servlet将这些信息写入图书表book中。4.3.4定单信息查询定单信息查询是管理员查看用户所下的定单情况,以便于及时发货。通过查询数据库的定单信息表buy,将用户的所有订购信息显示在此页面上 ,管理员可以清楚的看到这样些信息:下定单的用户,所要购买的书籍,要购买的时间,以及定单号,同时在每份定单后都有个“发货” 的链接,当管理员要对此项定单发货时,进入此链接界面,此界面提示管理员是否要发货,如果确定的话,此项定单信息将会从数据表buy中删除,因为图书已经发送出去,此定单已经不在有效了。4.3.5用户信息查询用户信息界面是向管理员展示所有已经注册用户的信息,即访问数据表uuser,将其所有行显示在界面上。4.3.6用户建议信息用户建议是用户在购买书籍后对书籍的评论信息,显示出来是让管理员了解售书后的意见,便于与用户沟通,程序中就是查询用户建议表comm,并将其所有信息显示出来。4.4系统的特色设计由于网上购物系统是JSP设计中一个比较常见的项目,这里简要的介绍下本系统设计中的一些相对独到的地方。首先,系统是从登陆界面直接进入的,用户或者管理员要想进入对应的主页面就必须先登陆,这是考虑到一个不管是前台还是后台的操作,都是要对应相应的信息的,如用户名等,直接由登陆界面登陆,并将登陆用户的信息保存起来以便后续的运用,整体上显得更简洁,功能上也更好的实现。其次,系统中涉及大量的数据库读取并将取得的信息展示在页面上,而展现的方式是通过表格的方式将从数据库读取的信息一行一行的显示在页面上的,考虑到这种方式展现的信息一旦是数据量大时,整个页面会被拉得很长,影响美观,在某些页面上也用到了对表格的分页显示。第三,受音乐网站设计的影响,本系统中有选取TOP5书籍的功能,目的这是引导用户的购书,TOP5书籍的评选也是对数据库中的书籍被购买的次数来统计的,所以有一定的知道作用。第四,系统设计是用JSP和servlet开发的,JSP负责页面设计部分,而servlet负责对数据库的操作,相对而言效率要高得多,但由于部分在页面上显示的信息如果先由servle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州国企招聘2025仁怀市交通运输服务有限公司招聘92人笔试参考题库附带答案详解
- 江西丰城市纪委监委招聘38名调查看护人员笔试历年参考题库附带答案详解
- 天津滨海职业学院《程序设计实训(二)》2023-2024学年第二学期期末试卷
- 西安财经大学《功能高分子材料的设计与开发》2023-2024学年第二学期期末试卷
- 随州职业技术学院《网络爬虫技术》2023-2024学年第二学期期末试卷
- 锡林郭勒职业学院《新媒体网络营销划写作》2023-2024学年第二学期期末试卷
- 北京邮电大学世纪学院《现代大地测量学》2023-2024学年第二学期期末试卷
- 南京师范大学中北学院《人力资源管理实验》2023-2024学年第二学期期末试卷
- 榆林能源科技职业学院《护理学基础Ⅰ(实验)》2023-2024学年第二学期期末试卷
- 湖南三一工业职业技术学院《现代环境监测技术》2023-2024学年第二学期期末试卷
- 国开电大《工程数学(本)》形成性考核作业5答案
- 部编版道德与法治六年级下册第二单元《爱护地球共同责任》大单元作业设计
- 西藏自治区2021年小升初数学考试真题与答案解析
- 2023年全国统一高考地理试卷(新课标)(含解析)
- 《康复医学》第一章第一节
- 论文联想与想象在语文教学中的应用及培养
- 2020年10月自考00152组织行为学试题及答案
- 食品营养与安全学智慧树知到答案章节测试2023年信阳农林学院
- 《森林培育学》考博复习资料
- DCF-现金流贴现模型-Excel模版(dcf-估值模型)
- 甘肃敦煌莫高窟简介
评论
0/150
提交评论