收藏 分销(赏)

网上书店系统开发.doc

上传人:仙人****88 文档编号:9282344 上传时间:2025-03-19 格式:DOC 页数:33 大小:863.50KB 下载积分:10 金币
下载 相关 举报
网上书店系统开发.doc_第1页
第1页 / 共33页
网上书店系统开发.doc_第2页
第2页 / 共33页


点击查看更多>>
资源描述
摘要 本文首先介绍了课题所涉及的相关技术:多层用户/服务器结构以及Web应用的相关数据库访问技术,JSP技术。本文描述了JSP和Servlet技术的特点以及在互联网上的使用情况,介绍这两种技术的重要编程方法和两者之关的联系,并完成一个基于这种技术的网上书店系统。在此基础上论述了网上书店系统的需求分析,系统分析和数据流程设计和总体设计方案,较详细的论述了网上书店系统的详细设计和实现。最后,本文对网上书店系统进行了总结并提出了还需要改进的问题。 关键词 购物车,网上书店系统,B/S结构,JSP ABSTRACT This paper firstly introduces multi-tier Client/server Architecture, Web-related technology and JSP(Java Server Pages). This text described the characteristics of JSP and Servlet technology and the state of operating on Internet, it introduced the relationship between them and the important programming method of the double technology, and work out an online bookstore system. Based on them, particularly analyzes system design and solution in detail. At last, the summary and future development of On Bookstore System is offered. Keywords The shopping cart, bookshop online, Browse/Server structure, JSP (Java Server Pages). 目录 摘要 I ABSTRACT II 第1章 绪论 1 1.1选题的背景与意义 1 1.2国内外文献综述 1 1.2.1国外网上售书发展的基本情况 1 1.2.2国内发展情况 2 1.3本文所做的工作 3 第2章 系统的技术综述和开发平台 4 2.1系统的技术综述 4 2.1.1 BROWSER/SERVER结构 4 2.1.2 JSP和SERVLET 技术 4 2.1.3模型-视图-控制器(MVC) 4 2.2系统的开发平台 5 2.2.1 SQL SERVER 数据库 5 2.2.2 TOMCAT 5 2.2.3 MYECLIPSE 5 2.3本章小结 6 第3章 网上售书系统的需求分析和系统设计 7 3.1需求分析 7 3.2系统功能模块设计 9 3.3数据库结构及实现 9 3.4公有JAVABEAN类和复用的页面元素 11 3.5本章小结 12 第4章 主页及各功能模块的实现 13 4.1主页INDEX 13 4.2用户功能模块 15 4.2.1用户注册模块 15 4.2.2用户登录模块 16 4.2.3修改密码模块 16 4.2.4修改用户信息模块 17 4.2.5图书评论模块 18 4.2.6用户购书模块 18 4.2.7查看历史订单 22 4.2.8用户退出系统模块 22 4.3管理员功能模块 23 4.3.1管理员登录模块 23 4.3.2订单管理模块 23 4.3.3用户管理模块 24 4.3.4图书管理模块 25 4.3.5管理员退出模块 26 4.4本章小结 26 第5章 总结 27 致谢 28 参考文献 29 - 29 - 第1章 绪论 1.1选题的背景与意义 认识网上书店,首先必须了解电子商务。电子商务是通过人与电子通信方式的结合,依靠计算机网络,以通信技术为基础,来解决商品交易问题,降低经营成本,增加商业价值,宣传企业形象,并创造新的商业机会的所有商务活动[1]。电子商务是纸上信息交流和储存方式的一种替代形式,是以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托的全新商业模式,是现代商业的发展方向。其主要功能包括:网上广告、商品订货、付款、服务和货物销售,以及市场调查分析、财务核算等。电子商务从服务类型上可分为网上商店、网上信息服务、电子货币三类[2]。     进入电子商务的企业不一定会赚钱,但不进入电子商务的企业将来一定会被淘汰。正是这种对未来希望的认识,许多网上书店应运而生。网上书店与传统的书店相比有许多新特点:(1)书写电子化,传递数据化。(2)没有店面租金成本。(3)没有图书库存的压力。(4)便于收集读者信息,为读者提供个性化服务。(5)品种规模大,经营时间久,上架寿命长。一般传统的大型书城,图书品种不超过20万种,网上书店在理论上可有无限多的品种。“网络不打烊”,只要服务器工作正常,网友就能查到并订购图书,不受时间的限制。(6)实行无国界经营。只要知道域名,全世界都可访问,不受空间的限制[3]。 网上书店因其有许多新特点冲击传统发行业的运作模式,因而书店必须调整自己的经营方式,才能在适者生存的市场竞争中取得立足之地。 1.2国内外文献综述 1.2.1国外网上售书发展的基本情况 1994年7月,美国考夫·贝佐斯在西雅图开设了全球第一家网上书店——亚马逊书店,随着因特网用户的激增,世界各国,尤其是西欧、北美的经济发达国家,很快形成了一股汹涌的网上售书潮流。 在美国,亚马逊书店不仅成了全美电子商务的领头羊,而且在英国建立了亚马逊英国网上书店,在德国建立了亚马逊德国网上书店。全美最大的图书零售商巴诺集团与德国贝特斯曼集团联手开设了巴诺网上书店。另一销售巨头鲍德斯连锁店也在田纳西州设立了新图书供应中心,能容纳70万种以上的图书和声像制品,主要负责鲍德斯在互联网上销售定单的供货。以这些销售巨头为龙头,美国的出版社、批发商、独立书店等纷纷行动,或者独立上网,或者联合设网站,使全美网上售书迅速形成了高潮[4]。     在英国,1996年史密斯集团开设了第一家网络书店——因特网书店之后,随着亚马逊书店和巴诺网上书店在英国的网上分店的相继开办,英国的网上图书销售也开始繁荣。其中位于剑桥的赫弗斯书店是英国最大的网上书店,可供图书达190万种,分布 在全球的客户已达5万人,瓦特斯通连锁店开设的网上书店,可供书目达140万种,现在英国已有300家独立书店开办了网站。 此外,日本、德国、法国、加拿大、巴西、澳大利、意大利、瑞典、丹麦等国,也纷纷开展了网上售书业务。 尽管不少的网上书店,如美国的亚马逊、英国的因特网书店等,由于急于不断地扩充、向网民让利及其他原因,到目前为止经营上仍处于严重亏损状况,但各国出版界争先恐后上网售书的热情却始终未减。 1.2.2国内发展情况 与国外相比,我国还是存在着较大的差异。 1)政策差异。各国政府对于电子商务的发展都是抱着积极支持的态度的,中国也不例外。但,美国在税收政策上更为倾斜,目前对电子商务实行暂免征税政策。中国目前尚未对电子商务的税收采取减免政策,只有部分地区的高新技术企业可享受国税“三免三减”政策。 2)物流差异。中美物流产业发达程度相差悬殊。美国目前不仅拥有发达的邮政系统,还拥有实力雄厚的物流企业近几年中国物流产业也有一定发展,但是尚无覆盖全国的现代物流公司。 3)互联网普及差异。 4)社会信用以及网上银行发展差异。美国拥有全球最为发达的信用管理行业,而中国个人信用制度尚处于起步阶段,目前社会上信用方面出现的问题较多。 亚马逊模式能够使网上书店建立很多优势,有些经营策略是中国网上书店能够借鉴的。中国网上书店目前较难借鉴的是亚马逊的物流和结算。物流方面,亚马逊主要采用物流外包的方式运输,并按照商品分类建立配送中心,在接到订单之后从中盘商拿货并直接送往邮局(畅销书例外,有库存)。受到物流产业发展状况以及较高邮政费率的限制,中国网上书店不能实现低成本的全国性物流外包和零库存运营。 1.3本文所做的工作 本章对网上书站的背景和国内外的发展状况做了简单的描述。鉴于此,设计 了一个小型的网上售书系统,深入对网上书站的了解,以便今后在网站或电子商务上能有一定的发展。 本文接下来将介绍开发的技术和开发平台,并将重点介绍开发这个网上售书系统的系统设计与需求分析,并展开对各功能模块的分析和具体实现的描述。在基于JSP(Servlet)的基础上,主要实现了购物车功能。 第2章 系统的技术综述和开发平台 2.1系统的技术综述 本小节主要介绍系统开发所涉及到的一些技术。 2.1.1 Browser/Server结构 Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。 2.1.2 Jsp和Servlet 技术 JSP是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病——脚本级执行。Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP——Java Server Page。Jsp可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 Java Servlet及其特点:Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。 2.1.3模型-视图-控制器(MVC) MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。 本次设计中采用了较多的mvc模式,大量的使用了一个表单和一个.java的servlet来完成功能模块的设计。首先表单传值到servlet中,servlet对之进行处理,然后将信息根据一定的条件返回表单或跳转到其他jsp页面进行相应的数据显示。 2.2系统的开发平台 本小节介绍了系统开发所用到的几个主要的开发工具。 2.2.1 Sql Server 数据库 Microsoft SQL Server是由微软Microsoft出品,基于关系型数据库的大型数据库系统,它具有独立于硬件平台、对称的多处理器结构、抢占式多任务管理、完善的安全系统和容错功能,并具有易于维护的特点。 2.2.2 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的配置文件即可。 2.2.3 Myeclipse Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。 Eclipse 是一个IDE(Integrated Developing Environment),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。而Myeclipse就是其中的一种有名的插件集之一,MyEclipse将开发者常用到的一些有用的插件都集合起来,为Eclipse提供了一个大量私有和开源的Java工具的集合,这解决了各种开源工具的不一致和缺点。 Eclipse 工作台由几个称为 视图(view) 的窗格组成,比如左上角的 Navigator 视图。窗格的集合称为 透视图(perspective)。默认的透视图是 Resource 透视图,它是一个基本的通用视图集,用于管理项目以及查看和编辑项目中的文件。 该工作台的大多数其他特性,比如菜单和工具栏,都应该和其他那些熟悉的应用程序类似。一个便利的特性就是不同透视图的快捷方式工具栏,它显示在屏幕的左端;这些特性随上下文和历史的不同而有显著差别。Eclipse 还附带了一个健壮的帮助系统,其中包括 Eclipse 工作台以及所包括的插件(比如 Java 开发工具)的用户指南。至少浏览一遍这个帮助系统是值得的,这样可以看到有哪些可用的选项,同时也可更好地理解 Eclipse 的工作流程。 MyEclipse的实际价值来自包含的发布包中的大量的工具。如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如action/session bean/form等。还包含编辑Hibernate配置文件和执行SQL语句的工具。 2.3本章小结 本章主要介绍了系统开发所采用的技术和主要用到的开发工具。了解这些技术和熟练的掌握以上工具的使用,对系统的设计和开发是十分重要,也是所必须了解和掌握的。 第3章 网上售书系统的需求分析和系统设计 3.1需求分析 要完成一个网上售书系统,首先必须满足用户的购书功能,这就要求书站包括用户注册,修改账号信息等基本的功能;此外为实现购物功能还要有购物车的实现和提交的功能。为方便管理这些用户,需要有对用户管理的管理员模块,实现对订单一定的管理和对用户及书籍的管理。 为了更好地方便用户使用,在主页的导航选项中设了按书的类型搜索,并有具有按书名或作者进行模糊查询的功能,另外也添加了对图书进行评论的模块。 如图3-1到图3-7所示是关于网上售书系统的数据流图。 图3-1 第0层 图3-2 第1.1层 图3-3 第1.2层 图3-4 第1.3层 未登录的用户与登录的用户相比,除个别处(比如提交订单和用户欢迎界面)有些不同之处外,大多数的操作类似,故将图3-2第1.1层与图3-3第1.2层中的事务操作合并处理。 图3-5 第2.1,2.2层 图3-6 第2.3层 图3-7 第3.1层 3.2系统功能模块设计 本系统实现一个基于Web的售书系统,将该系统的使用者分为两类:普通用户,主要是通过系统在线选择要购买的书籍并提交定单;管理员则通过系统对用户定单和图书进行管理。如图3-8所示是系统的功能模块图。 图3-8 系统功能模块图 3.3数据库结构及实现 1)数据库的表 管理员信息表:admin——用来保存管理员帐号和密码,如表3-1所示。 表3-1 管理员信息表 字段名称 数据类型 长度 说明 id vchar 20 管理员帐户 password vchar 20 管理员密码 图书信息表:book——用来保存图书信息,如表3-2所示。 表3-2 图书信息表 字段名称 数据类型 长度 说明 id vchar 8 图书编号 name vchar 20 书名 author vchar 20 作者 publisher vchar 20 出版社 type vchar 20 图书类别 ifNew vchar 4 是否为新书推荐 price float 8 单价 书评信息表:bookcomment——用来保存图书评论的信息,如表3-3所示。 表3-3 书评信息表 字段名称 数据类型 长度 说明 id vchar 8 书评编号 bookId vchar 8 被评论图书的书号 userId vchar 20 评论者:注册用户或游客 comment vchar 50 书评内容 stars vchar 1 总体评价:0-5 用户信息表:customer——用来保存注册用户的信息,如表3-4所示。 表3-4 用户信息表 字段名称 数据类型 长度 说明 id vchar 20 用户帐号 password vchar 20 密码 name vchar 20 姓名 sex bit 1 性别 address vchar 50 地址 code vchar 6 邮政编码 tel vchar 12 电话 email vchar 20 电子邮箱 订单项信息表:orderlist——用来保存每份订单包含的各图书信息,如表3-5所示。 表3-5 订单项信息表 字段名称 数据类型 长度 说明 id vchar 8 订单号 user vchar 20 用户帐号 book vchar 8 书号 sum int 4 数量 money float 8 共计价格 订单信息表:userorder——保存用户提交的订单信息,如表3-6所示。 表3-6 订单信息表 字段名称 数据类型 长度 说明 id vchar 8 订单编号 user vchar 20 用户帐号 day datetime 8 提交订单日期 money float 8 订单总额 flag bit 1 是否发货标记 2)表中的关系图: 在各个表中,书评信息表与用户信息表由于游客也可以参加评论,所以两个表为多对多的关系。其余表均为一对多的关系。如图3-9所示是各表的关系图。 图3-9 各表的关系图 3.4公有Javabean类和复用的页面元素 1)5个公有类: DBClass:用于数据库连接,查询,更新和关闭等操作。 StrClass:用于系统中字符串操作。 在数据库和系统中对输入和获取的数据都采用字符串的方式。因此,类中创建了检测字符串是否为数字和e-mail的两个公用方法及将字符串转换为整数和浮点数的方法。这样将方便在JSP页面,数据库和Servlet中对字符串的操作。 UserInf:用于负责存储用户信息的Bean,对应用户信息表customer。 CartInf:用于存储订单信息,有书号和用户订购的数量两个私有成员,对应订单项信息表orderlist中的内容。一组CartInf对象组成了购物车。 BookInf:用于存储图书信息,对应图书信息表book。 2)复用的页面元素: siteName.jsp:用于显示书店的标题。 navigation.jsp:用于显示标题下的导航目录。提供了数目类型和销售总量排行的跳转链接及按作者和书名的查询。 bar.jsp和bottom.jsp:用于显示边框和底部。 menu.jsp:用于显示用户控制菜单。其中,若用户未登录,则显示登录from;已登录则显示欢迎界面(用if session中用户ID是否存在来判断两者区分)。 提供我的购物车,历史定单和修改密码,个人资料和离开书店的跳转。 adminMenu.jsp:用于显示管理员菜单选项。提供订单管理,用户管理,书籍管理和离开书店的跳转。 3.5本章小结 本章介绍了对网上书站的需求分析和系统设计,并以此展开进行具体描述,另外对用到的数据库,JavaBean和复用的网页元素做了一定的分析和说明。 第4章 主页及各功能模块的实现 4.1主页index 主页主要实现图书信息从数据库中根据不同操作查询出来并在页面中显示,及对页面翻页功能的实现。 显示图书信息的主要代码: <p>书名:<%= book.getName() %></p> <p>作者:<%= book.getAuthor() %></p> <p>出版社:<%= book.getPublisher() %></p> <p>类别:<%= book.getType() %></p> <p>单价:&yen;<%= book.getPrice() %></p> 这些代码负责显示图书信息,在显示时将session对象中的内容读取出来。首先创建了一个vector类型的变量booklist,用来读取存放在session中的内容;其中vector是对象的数组,java中提供了一些方法方便对数组中对象的操作。Booklist中存放的是上3.4中所述BookInf类的对象book,book中包含了图书中的所有信息。因此,Book中取得值后便可在index中显示了。 Session中内容的赋值是由Servlet添入的,主要有ShowBook.java和SelectValue.java实现: 1) ShowBook.java ShowBook.java中定义了type变量用来获取页面传递过来的图书类型(type)的内容。这样通过“select * from book where type=‘type’”对数据库进行查询操作,便可把resulet中的内容放入book中,再把book放入booklist中,最后传值到session中,这样主页就可以读取session的内容实现图书显示。 2) SelectValue.java SelectValue.java则根据用户选择的类型(书名或作者)和输入的搜索内容从数据库中查询并添入session中。选择的类型是由具有列表/菜单的表单进行传值,使用if判断用户选择的是书名还是作者,然后获取用户的输入内容(变量selectvalue)。通过“select * from book name(author) like ‘%selectvalue%’”进行数据库操作,最后将信息放入session中返回主页显示。当然若用户没有输入内容,则跳转到SelectValuenull.jsp中。 3)ShowBookValue.jsp 对销售排行的查询则是在ShowBookValue.jsp中实现。主要涉及到对book和orderlist数据库的查询操作。代码段中,创建了3个ArrayList(主要用到了add,set和get方法)对象组:bookid,bookinf,bookinf2;bookid存放所有书的id,bookinf存放所有的书的信息,bookinf2则存放被购买过书的图书信息。通过“select * from book” 查询出book表中的id号和图书信息分别存放在bookid和bookinf对象组中。“select money from orderlist where book=‘id’”查询出orderlist中的购买过书的值(同时bookinf2也存入购买过的图书信息),并将相同的书id号所销售的值相加存入count数组,最后经过冒泡排序(bookinf2也相应排序),从高到低依次在页面中显示出来。 最后是页面翻页的控制。定义了pg,pgsum和index 3个变量。pg=request.getParameter("pg"); pgSum=(int)(booklist.size()+5)/6; index=(Integer.parseInt(pg)-1)*6; 其中pg用于获取当前页的值,pgsum为总共的页数,index用来控制图书显示信息的序号。在页面的最后部分通过一系列的if else 判断完成翻页的实现。如图4-1是关于主页的截图。 图4-1 主页的显示图 4.2用户功能模块 4.2.1用户注册模块 功能模块描述:用户注册模块接受用户注册,检查用户注册数据的合法性,并将用户信息存入数据库。如图4-2所示是用户注册模块功能图。 图4-2 用户注册模块功能图 当在注册表单(userRegister.jsp)中输入一些不合法信息时,必须满足表单中的各项提示,否则将提示数据输入不合法的具体提示;当输入的数据通过合法性检验后,就回跳至注册成功的提示界面(registerSucess.jsp)。 本模块主要用一个注册表单(userRegister.jsp)和一个处理表单数据的Servlet(userRegister.java)来实现上述功能。在注册表单中,主要用UserInf类创建了两个对象(userinf和errinf)。通过表单传值到处理表单的Servlet(userRegister.java),用String类和自己建立的StrClass类中的一些方法来判断输入或其他一些要求是否正确,正确的赋值给userinf,错误的则赋值与errinf;返回至表单项时,则显示userinf和errinf(无值则为空字符串,没有显示,有值显示其正确的字符串或提示错误的字符串)。判断正确无误后则将表单信息调用数据库DBClass类的操作写入数据库,完成用户注册并跳转到注册成功的提示界面(registerSucess.jsp),并转回首页。 在注册成功的提示界面中也引用了UserInf类,并将内容写入session中,这样在登录模块中判断用户ID非空,则跳至已登录界面。 4.2.2用户登录模块 用户登录功能描述:检验帐号密码是否输入正确,是则登录成功,否则跳回登录页面,显示提示错误的信息;功能图如图4-3所示。 图4-3 用户登录模块功能图 与注册模块相同,采用了一个表单(userLogin.jsp)和一个servlet(userLogin.java)来完成上述功能。表单提交到servlet处理时,先要判断session对象中userid是否存在,非空则跳转至已登录的提示页面(hasLogin.jsp);为空则从数据库中查询表单传的id和pwd是否与customer相同,相同跳至登录成功(loginSuccess.jsp)页面,否则将errinf赋值(errinf=“*密码与帐号不匹配”)转会表单显示错误信息(errinf)。 4.2.3修改密码模块 修改密码模块功能描述:负责完成用户提交的修改密码的请求,在允许修改之前,需要用户再次输入密码,并要检验新密码是否合法;功能图如图4-4所示。 图4-4 修改密码模块功能图 类似的,创建一个表单(changePassword.jsp)和一个servlet(changePassword.java)来完成模块功能。表单中的旧密码,新密码和确认密码传至servlet处理,首先判断新旧密码的各种合法性,查看各项要求是否全部满足,不满足则赋不同的值至errinf,满足则通过update set 对数据库进行更新操作。成功后跳至operationSuccess.jsp的操作成功页面。 4.2.4修改用户信息模块 修改用户信息模块功能描述:负责完成用户提交的修改用户信息的请求。在允许用户修改资料之前,需要用户输入密码,并要检验新信息的合法性;功能图如图4-5所示。 图4-5 修改用户信息功能模块图 与修改用户密码相似,但是所提交和处理的内容多了些,由于用户信息较多,为便于用户查看修改,因此与之前几个模块相比多了个显示用户信息的页面(userinf.jsp),这里引用了几个复用的JSP页面元素(比如siteName.jsp,navigation.jsp)。根据session获取的userid从数据库中查询出所有的用户信息,并提供跳至修改的链接。 表单(changeinf.jsp)包含了要提交的密码确认,和其他用户的所有信息修改的提交,提交到servlet后对其合法性进行判断,若出错则赋值与UserInf类创建的errinf中,正确则通过update set 进行数据库中customer表信息的修改;未满足合法性要求的则取得errinf属性里的错误信息,显示在表单中。其中若用户未登录则跳到notLogin.jsp,操作成功则跳到operationSuccess.jsp页面。 4.2.5图书评论模块 图书评书模块功能描述:用户在点击图书画面时,通过onclick=“windows.open()”来新打开网页进入图书评论系统。即使未登录,游客也可以对该图书发表评论,只需提供一个页面用来显示用户对该图书的评论,并包含一个表单用来添加评论。 相应的创建了一个JSP页面(bookComment.jsp)和对应的servlet。在JSP页面中首先获取书的id值,根据书的id值查询出图书信息,并显示出来;在下面则根据id来查询对该书的评论信息并加以显示。在底部的表单中将评论信息和radio中的评分选择传入servlet中,先对用户身份进行查询,session中userid为空则赋值为游客,然后设置书评的id号,通过insert into values();进行更新操作返回bookComment.jsp页面。如图4-6所示是关于图书评论的截图。 图4-6 图书评论JSP页面显示 4.2.6用户购书模块 该模块为系统中的核心部分,负责完成用户对订单的查询修改和提交等操作。 A)购书 用户购书时系统将创建一个购物车,购物车是一个vector的变量,是存储CartInf类创建的对象的数组。购书功能则主要将图书的书号和数量放入cartinf对象中,再存入vector创建的list中,将session对象置入(session.setattribute(“cartlist” ,list))。如图4-7所示是添加购物车的功能图,如图4-8所示是添加购物车的显示图。 图4-7 添加购物车功能图 图4-8 添加购物车显示图 要向购物车中添加图书,只需点击add图标,在新打开的窗口(addcart.jsp)中输入所需要的数量即可。表单传值到addcart.java的servlet,首先对输入的数量是否为自然数进行判断;然后将表单所传递的图书id(id的传入使用了input中type=“hidden” ,进行隐藏传值)和购买数量写入cartinf对象中,并加入(list.addelement(cart))list中,写入session。这里需对session中的值进行移除再赋值操作,并读取其中的bookid信息,查看是否购买过,若有购买过则删除session里的这个cartinf的信息,并重新添加。完成后跳转至添加成功(addsuccess.jsp)页面。 B)修改订单 修改订单用于修改尚为提交的订单(购物车即list的内容),在我的购物车(mycart.jsp)中进行更改和删除操作。页面引用了sitename.jsp,navigation.jsp和menu.jsp等复用的页面元素。首先判断session中的list是否为空,空则提示您的购物车为空。非空则获取session中的bookid和购书数量,并根据bookid从数据库中查询出书名,作者和单价的信息。通过for循环实现session中内容的依次显示,并计算出转换为float型的购书价格总和在页面中显示。在该jsp中建立了两个表单分别对购书数量和删除购买进行操作;并提供了付帐中心和返回继续购买的链接。其中付帐中心转至定单提交的servlet处理操作,返回则转到主页;表单则传到changeOrder.java的servlet中进行处理。 在servlet中首先判断哪种图书的数量需要修改,删除与修改为零操作相同,因此删除表单也将所传的值设为零。若获取的值为零,就移除购物车list数组中的一个对象,否则则更新该数组中的数量。若非数字则给错误信息errinf赋值返回我的购物车。如图4-9所示是修改购物车的功能图,如图4-10所示是修改购物车的显示图。 图4-9 修改我的购物车功能图 图4-10 修改我的购物车显示图 C)提交订单 提交订单负责将购物车中的图书信息写入数据库,由于订单信息和订单项信息是存放在两张表(userorder和orderlist)中,因此需要对两张表进行更新。 在付帐中心payorder.jsp中确认提交,并在跳转到该网页前判断用户是否登录。Payvorder.jsp中完成转入submitorder.java中进行提交的操作,并将购书总值隐藏传入。首先设置订单id,然后进行insert数据库操作,将信息写入userorder表中。订单项信息表中id即为订单id,user为用户,bookid和数量从session中的list获取,将这些通过插入操作写入数据库中,并将session中的list移除。如图4-11所示是提交购物车的主要功能图,如图4-12所示是提交购物车的显示图。 图4-11 提交购物车的主要功能图 图4-12 提交购物车的页面显示图 4.2.7查看历史订单 主要实现注册用户对订单的查看,并提供了订单项信息查看的链接。功能的实现主要有两个JSP页面实现userorder.jsp和uorderlist.jsp。在userorder.jsp中通过用户id查询出该所有的订单id,并从userorder中查询出订单信息依次显示。点击查看,则新打开网页并跳转到uorderlist.jsp中,根据订单号查询出与该用户所购买的图书信息和购买该书的数量,并查询userorder表中的标记flag,显示用户购买的订单是否已收到,并在发送途中。 4.2.8用户退出系统模块 用户退出系统模块功能描述:将session中userid的变量删除,并在之前,先判断购物车是否为空,非空则提示用户是否
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服