jsp实战项目,网上书店系统
- 格式:pdf
- 大小:1.35 MB
- 文档页数:32
概要设计说明书项目名称在线购物系统(网上书店)项目开发单位信息与软件工程系目录1引言........................................................................................................................................... - 1 - 1.2背景............................................................................................................................. - 1 - 1.3定义............................................................................................................................. - 1 - 1.4参考资料..................................................................................................................... - 2 - 2总体设计 2.1需求规定 ...................................................................................................... - 2 -2.2运行环境........................................................................................................................ - 2 -2.3基本设计概念和处理流程............................................................................................ - 2 -登录功能:.................................................................................................................. - 3 -用户注册: ..................................................................................................................... - 4 -书籍查询:.................................................................................................................. - 5 -书籍详细显示:.......................................................................................................... - 6 -购物车:...................................................................................................................... - 7 -添加书籍:.................................................................................................................. - 8 -删除书籍: ..................................................................................................................... - 9 -修改书籍:................................................................................................................ - 10 -添加书籍:................................................................................................................ - 11 -购物车:....................................................................................................................... - 11 - 2.4结构........................................................................................................................... - 12 -2.5功能需求与程序的关系.............................................................................................. - 12 -2.6人工处理过程.............................................................................................................. - 13 - 3接口设计................................................................................................................................. - 13 -3.2外部接口...................................................................................................................... - 14 - 4系统论据结构设计................................................................................................................. - 15 - 用户表User .............................................................................................................. - 16 -书籍详细表Product .................................................................................................. - 16 -书籍分类表Classify .................................................................................................. - 17 -出版社分类表Supplier ............................................................................................. - 17 -顾客订单表Order ..................................................................................................... - 17 -4. 2物理结构设计要点..................................................................................................... - 17 -4.3数据结构与程序的关系.............................................................................................. - 17 - 5系统出错处理设计................................................................................................................. - 20 -5. 1出错信息..................................................................................................................... - 20 -5.2补救措施................................................................................................................... - 20 -5. 3系统维护设计............................................................................................................. - 20 -1引言1. 1编写目的1)编写本说明书的目的在于:(1)将系统划分成物理元素,即程序、文件、数据库、文档等。
第三篇基于JSP+Struts2+Hibernate技术架构的开发本篇的目的⏹掌握Struts技术⏹掌握Hibernate技术⏹掌握事务处理技术⏹掌握购物车原理⏹理解泛型的使用⏹熟练使用JSP+Struts2+Hibernate技术架构第五章实训案例:网络书城系统·157·第五章实训案例:网络书城系统本章将基于JSP+Struts+Hibernate技术设计与实现网络书城系统。
5.1 系统分析随着网络的广泛普及,网络支付手段的逐步完善,越来越多的人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。
传统书店的购书观念正在被网上方便快捷的购书方式所冲击。
网络书城就是借助于互联网,搭建读者和图书销售企业之间的桥梁,实现图书的快速查询和购买,既方便读者,也方便图书销售企业管理、宣传、推广和销售图书。
5.1.1 需求描述网络书城的主要功能就是让用户能够足不出户就可以购买到自已想要的书籍,所以网络书城系统主要提供如下功能:●用户能够使用本网站完成图书的浏览、查询和购买。
●普通用户只能浏览图书信息。
浏览分为三种方式:按类别浏览、按条件浏览、查询图书。
●普通用户通过注册成为注册用户,注册后的用户可以登录,密码忘记后可以找回密码,登录后可以修改注册资料。
●注册用户登录后可以进行在线图书购买,购买的图书存放在购物车中;可以对购物车中的商品数量进行修改、删除;调整好购物车中内容后,可进行结算,以将购买的图书保存到订单中。
●注册用户登录后可以浏览自己的订单,查看订单细目,对于没有得到商家处理的订单可以取消。
●管理员可分页浏览用户,可查看用户详细信息,可删除用户。
●管理员可管理图书分类、管理图书,添加图书时能够上传图书的图片。
●管理员可分页浏览订单、查看订单状态,处理订单,删除订单。
5.1.2 用例分析用例图(Use-case Diagram)显示外部参与者与系统的交互,能够更直观地描述系统的功能。
完整的简单jsp网上书店详细实例计算机web编程jsp毕业论文、考试复习资料必备其中包括的详细需求、业务分析、数据库、源代码我们使用JSP和Java Bean来构建一个网上书店。
介绍的例子可以分成两大部分,第一部分是普通程序,用于客户在网上选购图书,第二部分是管理程序,用于在服务器端处理客户的定单。
客户端程序由以下几个部分构成:default.jsp:会员登录界面(首页);checklogon.jsp:检测登录代码和密码是否一致,根据由JavaBean返回的结果显示不同的信息。
BuyerBean:会员的合法性检验所用的Bean;booklist.jsp:给登录会员显示当前书店中可供选择的图书;addcart.jsp:将所选的图书加入购物车;shoppingcart.jsp:查看购物车的内容;本例的数据库采用Access(.MDB数据库),对数据库的访问采用便于理解的JDBC-ODBC方式,在使用本例前先在本地数据库建立一个ODBC数据源:bookstore。
设置步骤如下:(1)在开始->设置->控制面版(Win98、NT4.0)中选取“数据源(ODBC)”;在Win 2000 Professional和Server中分别位于“开始->设置->控制面版->管理工具”和“开始->程序->管理工具”下。
(2)启动“数据源(ODBC)”配置程序,界面如图15-1所示。
图15-1 ODBC数据源管理界面(3)在图15-1中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),则出现如图15-2所示数据源驱动程序选择界面:图15-2 数据源驱动程序选择界面(4)在图15-2中选择“Microsoft Access Driver (*.mdb)”单击“完成”加载Access数据库的驱动,则出现如图15-3所示数据库ODBC安装界面:图15-3 数据库ODBC安装界面(5)在图15-3中单击“选择(S)…”按钮,启动一个类似资源管理器的界面来选择数据库,如图15-4所示,在图15-4所示的界面中选择bookstore.mdb。
基于JSP购物网站的设计和实现指导老师:班级:组员:基于JSP的网上购物系统的设计与实现——小萌购物网摘要在当今这种信息化、网络化时代,网上购物作为一种全新的理念影响着人们的生活,网上购物系统的诞生就是由此而来。
本次设计的内容是设计并且实现一个基于JSP 技术的网上购物系统,主要使用了Struts+Spring+Hibernate等多种框架的结合使用,用MyEclipse作为开发工具,以MySQL作为数据库,Tomcat作为应用服务器。
应用Macromedia公司的Dreamweaver作为界面美化工具,使用Java语言开发,页面采取JSP动态页面开发技术。
该系统界面简单、操作方便,容易维护。
系统分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,个人资料管理等功能。
后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,新闻信息管理等功能。
建立后的网站系统是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站.关键字:网上购物饰品JSP MySQL目录1 引言 (4)1.1 网上购物的发展与现状 (4)1.2 系统实现的目标 (5)1.3 系统的开发意义 (5)2 可行性分析 (6)2.1 技术可行性 (6)2.2 经济可行性 (6)2.3 操作可行性 (7)2.4 硬件、软件可行性 (7)3 需求分析 (7)3.1 消费需求分析 (7)3。
2 效益需求分析 (8)3。
3 功能需求分析 (9)4 概要设计 (13)4.1 系统功能模块设计 (13)4.2 数据库设计 (16)5 详细设计 (18)5.1 系统功能实现的主要架构 (18)5。
2 系统各功能模块的实现 06. 系统测试 06。
1 系统测试的目的 06.2 系统测试的方法 06。
3 系统测试的环境 06.4 本系统测试 07总结 0参考文献 01.引言1。
1 网上购物的发展与现状随着网络、通信和信息技术的突破性进展,Internet在全球爆炸性增长并迅速普及。
目录1.引言 (2)1.1开发目的 (2)1.2背景 (2)1.3参考资料 (2)2.程序系统的结构 (3)2.1总体结构 (3)2.2图书管理模块 (4)2.3购物车模块 (4)2.4查询浏览模块 (4)2.5数据库模块 (5)2.6用户管理模块 (5)3.设计说明 (6)3.1 程序描述 (6)3.2功能 (6)3.3性能需求 (10)3.4输入项、输出项 (12)3.5流程逻辑 (13)3.6接口 (16)3.7存储分配 (19)3.8注释设计 (19)3.9限制条件 (19)1.引言1.1开发目的开发一套网上购书系统,可以让顾客通过浏览器浏览网站售书目录,从而挑选自己满意的图书,并下订单购买。
而网站后台人员需要维护网站会员信息、书籍信息以及订单信息。
本系统的目的就是要开发一套既方便客户网上购书,又方便网站维护人员维护网站WEB服务系统。
1.2背景随着全球经济一体化的逐步发展和深入,网上书店已成为传统书店必不可少的经营策略之一。
目前,网上书店在国际互联网上可以实现的商务已经多样化,可以完成从最基本的信息展示、信息发布功能到在线交易、在线客户服务、在线网站管理功能等,可以说,传统书店所具备的功能几乎都可以在互联网上进行电子化的高效动作。
虽然传统书店规模有所不同,随着网上交易的开展,都将有力地改变企业的发展空间,会对企业的竞争力产生不可忽视的影响。
开发一个本系统可以解决企业人事管理遇到的耗费大量资金和人力,管理内容繁复,而且容易丢失的问题。
该项目由我们开发小组共同经过认真的商讨而最终提出,该系统的最终用户将是所有经营书籍买卖而到目前还未实现信息化的个人或团体。
该系统的开发工作将委托给相关的软件开发小组来完成。
系统的运行环境将是Windows 7,使用的数据库是Mysql5.5。
1.3参考资料[1] 张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2003[2] JSP编程技巧/清宏计算机工作室编著. 北京:机械工业出版社,2010.1[3] 精通JBuilder 3环境下的JA V A编程/锐思创作室. 北京:人民邮电出版社[4] 深入JA V A Servlet网络编程. 清华大学出版社[5] Struts开发入门与项目实践. 北京:人民邮电出版社, 2010.8[6] 李晓山.新软件工程导论(第五版)[M].北京:清华大学出版社,2003[7] 孙鑫. Java Web开发详解-XML+XSLT+Servlet+JSP深入剖析与实例应用. 电子工业出版社, 20062.程序系统的结构2.1总体结构开始网站首页匿名用户注册用户浏览分类查找书籍网上注册登录后经权限判定普通用户系统管理员查看订单网上购书查找书籍管理用户管理交易添加新书修改书籍分类书籍分类2.2图书管理模块2.3购物车模块2.4查询浏览模块图书管理模块图书录入图书删除图书修改购物车模块计算价格添加商品移除商品更新数量清空购物车查询浏览模块按作者查询按出版日期查询按出版社查询按类别查询按年龄查询2.5数据库模块2.6用户管理模块数据库模块进货表发货表书籍表会员表用户注册登录3.设计说明3.1 程序描述(1)图书信息管理该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。
网上书店系统设计与实现随着互联网的普及和信息技术的不断发展,人们对于书籍的需求也在不断增加。
因此,开发一款网上书店系统已经成为一个重要的任务。
本文将介绍网上书店系统的设计与实现。
我们需要对系统的需求进行分析。
系统的基本功能应该包括书籍分类、书籍搜索、购物车、在线支付等。
系统还应该具有用户注册和登录功能,以便用户可以个性化地定制自己的阅读喜好和购买历史记录。
数据库设计在数据库设计中,我们需要定义书籍、用户、订单等对象,并定义这些对象之间的关联关系。
书籍对象可以包括书号、书名、作者、出版社、价格等信息;用户对象可以包括用户名、密码、邮箱、等信息;订单对象可以包括订单号、用户信息、书籍信息、购买数量等信息。
在系统架构设计中,我们需要考虑系统的可扩展性和可维护性。
可以采用分层设计的思想,将系统分为表示层、业务逻辑层和数据访问层。
表示层负责用户交互,业务逻辑层负责处理业务逻辑,数据访问层负责访问数据库。
登录注册模块登录注册模块是系统的入口,用户可以通过该模块进行注册和登录。
在注册时,用户需要填写用户名、密码、邮箱等基本信息;在登录时,用户需要输入用户名和密码。
书籍分类模块负责对书籍进行分类,可以根据不同的分类方式进行分类,例如可以根据出版社、书籍语种、书籍题材等方式进行分类。
书籍搜索模块允许用户输入关键词搜索书籍。
系统可以根据关键词匹配书籍名称、作者、出版社等信息,并返回匹配结果。
购物车模块允许用户将感兴趣的书籍加入购物车中。
用户可以随时查看购物车中的书籍信息,并可以修改购买数量或者删除书籍。
当用户确定购买时,可以将购物车中的书籍提交为订单。
在线支付模块允许用户选择支付方式并进行支付。
可以支持多种支付方式,例如支付宝、支付等。
用户管理模块允许用户个性化地定制自己的阅读喜好和购买历史记录。
用户可以查看自己的订单信息、收货等,并可以进行编辑和删除等操作。
在完成系统实现后,我们需要对系统进行测试和发布。
测试阶段应该尽可能全面和细致,以便发现并纠正系统存在的问题和漏洞。
一、需求说明1.任务概述1.1目标当今社会,随着计算机的应用和Internet的普及, Internet网络给人类社会带来了巨大变化,网络在我们的生活中几乎无处不在。
因此,建立网上电子书店的销售管理系统是时代的潮流。
由于JSP可以在85%以上的服务器上运行,而且JSP技术的应用程序比ASP的应用程序易于维护和管理。
所以,通过采用JSP技术设计开发在线书店系统符合时代的潮流、具有积极的进步意义。
本人基于这样的实际需求,结合教学需要设计开发了基于JSP的网上书店销售管理系统。
网上书店系统可以实现人们远程逛逛书店和购买图书的愿望。
本系统主的功能是实现网上购书。
基本功能包括用户注册、会员登录、图书查询、新书介绍、网上购书以及后台管理等。
1.2用户特点用户须具备一定的计算机知识、网络知识。
懂得如何操作电脑,了解Java 2EE,会配置SQL server数据库,会添加数据源。
1.3定义JSP技术:JSP(Java Server Pages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。
它以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。
在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP 技术。
本章就对JSP及其相关技术进行简单的介绍。
JavaServer PagesTM (jsp(SUN企业级应用的首选))技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。
jsp(SUN 企业级应用的首选)技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。
SQL server:SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
第1篇一、实验目的本次实验旨在通过设计与实现一个网络书城系统,掌握以下技能:1. 理解电子商务网站的基本架构和功能模块。
2. 掌握使用Java编程语言进行Web开发。
3. 熟悉SSM(Spring、SpringMVC、MyBatis)框架在Web开发中的应用。
4. 学习使用MySQL数据库进行数据存储和管理。
5. 提高团队协作能力和项目管理能力。
二、实验环境1. 开发工具:IntelliJ IDEA/Eclipse2. 服务器:Tomcat 9.03. 数据库:MySQL 5.74. 版本控制:Git三、系统需求分析网络书城系统主要面向广大读者,提供图书浏览、购买、评论、搜索等功能。
系统分为前台和后台两个部分。
前台功能模块:1. 首页:展示最新图书、热销图书、新品推荐等信息。
2. 商品分类:按图书类别展示图书信息。
3. 图书详情:展示图书详细信息,包括封面、简介、价格、评论等。
4. 购物车:用户可以将图书添加到购物车,进行结算。
5. 订单管理:用户可以查看订单状态、取消订单、申请退款等。
6. 个人中心:用户可以查看个人信息、修改密码、查看历史订单等。
7. 搜索:用户可以通过关键词搜索图书。
后台功能模块:1. 管理员登录:管理员登录系统进行管理。
2. 商品管理:管理员可以添加、修改、删除图书信息。
3. 订单管理:管理员可以查看、处理订单,包括发货、取消、退款等。
4. 用户管理:管理员可以查看、修改、删除用户信息。
5. 评论管理:管理员可以查看、删除用户评论。
四、系统设计1. 技术选型:采用SSM框架进行开发,数据库使用MySQL。
2. 系统架构:采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java编程语言。
3. 数据库设计:根据系统需求,设计图书、用户、订单、评论等数据表。
4. 功能模块设计:根据需求分析,将系统划分为多个功能模块,如首页模块、商品模块、购物车模块等。
基于JSP的图书管理系统设计与实现随着互联网技术的不断发展,基于Web的应用程序越来越普及,而JSP(JavaServer Pages)技术是其中最常用的一种。
本文将介绍如何使用JSP技术设计和实现一个图书管理系统。
一、系统需求分析图书管理系统需要满足以下需求:1、用户可以查看图书列表、搜索图书、添加图书、编辑图书和删除图书。
2、管理员可以查看用户列表、添加用户、编辑用户和删除用户。
3、系统需要提供用户登录和权限管理功能。
二、系统设计1、数据库设计本系统采用MySQL数据库。
数据库中包含以下表:1、book:存储图书信息,包括book_id、title、author、publisher、price、isbn等字段。
2、user:存储用户信息,包括user_id、username、password、role 等字段。
3、login_log:存储用户登录日志,包括user_id、login_time等字段。
2、系统架构设计本系统采用MVC模式进行设计,分为模型层、视图层和控制层。
模型层负责处理数据和业务逻辑,视图层负责展示页面,控制层负责控制流程。
3、系统功能模块设计本系统分为以下几个模块:1、用户模块:包括用户注册、登录、找回密码等功能。
2、图书模块:包括查看图书列表、搜索图书、添加图书、编辑图书和删除图书等功能。
3、权限模块:包括权限控制和角色管理等功能。
4、日志模块:包括查看登录日志等功能。
三、系统实现1、用户模块实现用户模块主要包括用户注册、登录和找回密码等功能。
在JSP页面中,可以使用HTML表单来接收用户输入的信息,然后通过JSP代码将信息提交给Servlet进行处理。
在Servlet中,可以使用Java代码对用户输入的信息进行验证,并将验证结果返回给JSP页面进行展示。
2、图书模块实现图书模块主要包括查看图书列表、搜索图书、添加图书、编辑图书和删除图书等功能。
在JSP页面中,可以使用HTML表格来展示图书列表,使用HTML表单来接收用户的搜索信息,使用JSP代码将信息提交给Servlet进行处理。
《软件工程》课程设计小组报告题目网上书店学院名称信息学院专业班级计算机09--3 组长姓名学号王继重 ************ 组员姓名学号王磊 ************金帅 200901051510 指导教师孙红梅完成起止日期:2011-11-01至2011-12-24目录一、课程设计概述 (3)①目的 (3)②任务 (3)③开发环境 (4)④主要方法与技术 (5)⑤参考资料 (5)二、可行性研究报告 (5)三、项目开发计划 (6)(一)、任务分配: (6)(二)、进度计划 (6)(三)、网站运行及配置 (7)(四)、网站设计的内容规划 (7)一、确定网站主题 (7)二、搜集材料 (7)三、规划网站 (7)四、选择合适的制作工具 (8)五、制作网页 (8)六、上传测试 (8)四、软件需求说明 (8)(一)、功能分析 (8)①用户的功能设计 (9)②管理员的功能设计 (9)(二)概念设计: (9)(三)、操作分析: (12)1,普通用户的操作 (12)2,会员访问操作 (13)3,管理员操作 (13)五、概要设计说明 (14)一、总体图: (14)二、数据库设计图 (15)三、数据库内部表格 (17)六、详细设计说明 (20)一、王继重部分(java bean组件的编写) (20)二、王磊部分(jsp文件的编写) (21)三、金帅部分(数据库的实现) (36)七、测试计划 (45)八、测试分析报告 (56)九、操作手册 (57)十、项目开发总结 (60)十一、关键代码 (61)一、课程设计概述①目的通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.进一步加强和提高软件工程文档的编写能力;3.培养协作能力和团队精神。
jsp课程设计 网上购物系统一、课程目标知识目标:1. 学生能理解JSP技术的基本原理,掌握其基本语法和常用标签。
2. 学生能运用所学知识构建一个简单的网上购物系统,理解系统的功能模块和数据流转过程。
3. 学生了解数据库连接和SQL语句在购物系统中的应用,能够实现商品信息的管理和查询。
技能目标:1. 学生能够独立进行JSP网页设计,编写出结构清晰、功能完整的代码。
2. 学生能够运用前端技术(如HTML、CSS)与JSP后端技术相结合,实现友好的用户交互界面。
3. 学生通过团队协作,学会项目分工、进度控制以及版本管理,具备基本的软件开发能力。
情感态度价值观目标:1. 学生通过实际项目开发,培养解决实际问题的兴趣和自信心,增强学习信息技术的主观能动性。
2. 学生在团队协作中学会沟通、分享、尊重他人意见,培养合作精神和集体荣誉感。
3. 学生在设计和实现购物系统的过程中,能够关注用户体验,树立良好的社会责任感和诚信意识。
课程性质分析:本课程为信息技术相关专业的实践课程,侧重于学生动手能力和综合运用知识能力的培养。
学生特点分析:学生处于高年级阶段,已具备一定的编程基础和数据库知识,有能力完成一个简单的网上购物系统。
教学要求:1. 教学内容需紧密结合课本,确保学生掌握JSP技术的基本知识。
2. 教学过程中注重培养学生的实际操作能力和团队协作能力。
3. 教学评估以学生实际完成的项目质量和课堂表现为依据,确保学生达到预期学习成果。
二、教学内容1. JSP基本概念与原理:介绍JSP技术背景、工作原理,对比其他Web开发技术,使学生理解JSP的优势和应用场景。
- 课本章节:第1章 JSP技术概述2. JSP基本语法与标签:讲解JSP页面的基本构成元素,如脚本、指令、声明、表达式、标准标签等。
- 课本章节:第2章 JSP语法与标签3. 数据库连接与操作:学习JDBC技术,实现数据库连接和SQL语句执行,为网上购物系统提供数据支持。
基于JSP的校园二手图书交易系统的设计与实现-开题报告山西大学本科毕业论文(设计)开题报告姓名学号所在专业论文(设计)题目基于JSP的校园二手图书交易系统的设计与实现1.选题的目的和意义:1.1选题的目的现如今,在大学校园内很多同学为了能够使自己的大学生活更加充实精彩,在学习之余通常会考取一些证件来提升自我,然而这些相关图书资料在校园图书馆的存量有限,不能同时满足多数人的学习需求。
基于这一现象,我认为构建一个学生间图书资料交易系统,将能为校园学生带来很大的便利。
在互联网飞速发展普及的今天,电子商务在世界各地以惊人的速度发展着,校园学生也是拥护和使用电子商务所占比例较大的一块人群,而院校又是书籍使用消耗量极为巨大的地方。
尤其是很多考试类的参考书,可能看完后就不在需要,很容易形成闲置资源,因此可以在图书资料交易系统出售或交换。
这样既能把自己不需要的书籍或其他物品卖给其他需要的人,而自己也能在交易系统上找到适合自己的书籍等物品。
1.2选题的意义对于校园学生来说,校园学生间图书资料交易系统可以为他们在学习生活上带来很大的方便。
因此利用校园电子商务这个新型的电子商务模式,通过构建一个校园学生间图书资料交易平台,不仅可以满足高校学生对于书籍的巨大需求,还可以减少大学院校学生在书籍上的花费开支,并且提高了书籍的循环使用次数.体现了可持续发展的要求,减少了不必要的资源浪费。
本系统主要的目标就是最大限度地实现二手图书资源的循环利用,缩小一买一卖中间的差价,帮助师生节省费用。
1.3总结随着计算机网络的飞速发展和广泛普及,数字化的网络生活已逐步深入大众,网络传播速度快、范围广等优点逐渐体现出其优势。
越来越多的人逐渐习惯于网上购物,享受送货上门等的便捷购物方式,学生也逐渐成为网上购物的主力军。
网上图书销售是目前最普遍,也是最流行的一种形式,可使每一位顾客足不出户就能够通过网络来轻松购买自己喜爱的书籍。
本系统是基于现在高校的实际需求而开发的一类校园二手图书交易电子商务系统,以达到方便校内各校区用户的网上商品交易和学习需求的目的。
实验报告一、实验题目编程实现“网上书店系统”二、题目分析1、需求分析要开发一个系统,首先要了解该系统到底想做什么,需要实现怎样的功能,这就是需求分析。
网上书店从大的需求方面看,就是要实现通过互联网能够进行书籍的购买及相关的管理等功能,大致需要提供下面的一系列功能:*浏览书籍(模糊查询)*选择需要购买的书籍*可以继续选择别的书籍,并且可以购买该书籍*选择了需要购买的书籍后,进行购买书籍操作*保存选中的图书和数量UML图:2、数据分析图书信息数据库购物车本次会话有效1、页面转移关系再次查询2、对象模型(1)界面对象(View)*查询页Search.jsp*图书目录页Directory.jsp*购物车页Cart.jsp*定单页Order.jsp(2)控制器(Control)*CtrlServlet 负责响应输入命令*包括:模糊查询key、查看购物车cart、结算order 、继续选书continue、再次查询search(3)业务模型*图书信息:BookBean 实体类的会话Bean*购物车信息:CartBean 会话Bean(1)图书信息(数据库表、查询结果)*书号ISBN char[24] 主键*书名Title char[64]*作者Author char[32]*出版社Press char[32]*价格Price double(2)购物车信息*书号ISBN char[24]*数量Number integer(3)共享数据*查询结果和选中的图书信息*作为session参数4、动态模型5、EJB接口设计(1)BookBean 管理图书信息(封装数据库)*find( string key )*根据关键字从数据库中查找出图书信息记录(数组)条件:书名、作者、出版社名中包含关键字get( string isbn )*根据书号,找出图书信息记录(2)CartBean 管理购物车信息(本次会话有效)*add( string isbn ) 添加记录*gest( ) 获得记录数组*set( string isbn, integer num ) 设置购买数量5、控制器(1)CtrlServlet 的输入*来自查询页page=“search”&key=关键字*来自图书目录页page=“directory”&submit=“cart”&choose=书号数组page=“directoty”&submit=“search”*来自购物车页page=“cart”&submit=“order”page=“cart”&submit=“continue”page=“cart”&submit=“search”(2)算法概要*模糊查询search按照key 从BookBean 查询图书,转交图书目录页*查看购物车将选定图书存入CartBean,转交购物车页*结算计算CartBean中的图书总价,从BookBean获得图书信息,连同地址,转交定单页*继续选书返回图书目录页*再次查询转向查询页*异常处理直接生成错误信息页面四、实现技术1、采用MVC 模式(1)JSP 实现页面视图View(2)Servlet 实现控制Control(3)EJB 实现业务模型Model2、交互关系(1)JSP 表单动作(form)⎝ CtrlServlet(2)Servlet 转发⎝ JSP 页面3、数据传输(1)Servlet 调用EJB 对象获得数据(2)Servlet 通过session 参数传递给JSP 页面五、实验源代码1、BooksOnline-ejb(1)Books①Books.java:import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;dQueries;import dQuery;import javax.persistence.Table;@Entity@Table(name = "BOOKS")@NamedQueries({@NamedQuery(name = "Books.findByIsbn", query = "SELECT b FROM Booksb WHERE b.isbn = :isbn"), @NamedQuery(name = "Books.findByTitle", query = "SELECTb FROM Books b WHERE b.title = :title"), @NamedQuery(name = "Books.findByAuthor",query = "SELECT b FROM Books b WHERE b.author = :author"), @NamedQuery(name = "Books.findByPress", query = "SELECT b FROM Books b WHERE b.press = :press"), @NamedQuery(name = "Books.findByPrice", query = "SELECT b FROM Books b WHERE b.price = :price")})public class Books implements Serializable {private static final long serialVersionUID = 1L;@Id@Column(name = "ISBN", nullable = false)private String isbn;@Column(name = "TITLE")private String title;@Column(name = "AUTHOR")private String author;@Column(name = "PRESS")private String press;@Column(name = "PRICE")private Double price;public Books() {}public Books(String isbn) {this.isbn = isbn;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getTitle() {return title;}public void setTitle(String title) { this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic int hashCode() {int hash = 0;hash += (isbn != null ? isbn.hashCode() : 0);return hash;}@Overridepublic boolean equals(Object object) {// TODO: Warning - this method won't work in the case the id fields are not setif (!(object instanceof Books)) {return false;}Books other = (Books) object;if ((this.isbn == null && other.isbn != null) || (this.isbn != null && !this.isbn.equals(other.isbn))) {return false;}return true;}@Overridepublic String toString() {return "Books.Books[isbn=" + isbn + "]";}}②BooksFacade.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;@Statelesspublic class BooksFacade implements BooksFacadeRemote {@PersistenceContextprivate EntityManager em;public void create(Books books) {em.persist(books);}public void edit(Books books) {em.merge(books);}public void remove(Books books) {em.remove(em.merge(books));}public Books find(Object id) {return em.find(Books.class, id);}public List<Books> findAll() {return em.createQuery("select object(o) from Books as o").getResultList(); }public ArrayList<Books> search(String key) {List<Books> all = this.findAll();if(all.isEmpty()) {return null;}ArrayList<Books> result = new ArrayList<Books>();for(Books current : all) {if(current.getTitle().toLowerCase().contains(key)||current.getAuthor().toLowerC ase().contains(key)||current.getPress().toLowerCase().contains(key)) {result.add(current);}}return result;}}③BooksFacadeRemote.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Remote;@Remotepublic interface BooksFacadeRemote {void create(Books books);(2)Cart①Cart.javaimport java.io.Serializable;public class Cart implements Serializable {private String isbn;private String title;private double price;private int number;public Cart(String isbn,String title,double price,int number) { this.isbn = isbn;this.title = title;this.price = price;this.number = number;}public String getIsbn() {return this.isbn;}public String getTitle() {return this.title;}public double getPrice() {return this.price;}public int getNumber() {return this.number;}public void setIsbn(String isbn) {this.isbn = isbn;}public void setTitle(String title) {this.title = title;}public void setPrice(double price) {this.price = price;}public void setNumber(int number) {this.number = number;}}②CartBean.javaimport javax.ejb.Stateful;import java.util.ArrayList;@Statefulpublic class CartBean implements CartRemote {private ArrayList<Cart> record;private boolean initialed = false;public void add(String isbn,String title,double price){ record.add(new Cart(isbn,title,price,1));}public void set(String isbn,int number){for(Cart current : record) {if(current.getIsbn().equals(isbn)) {current.setNumber(number);}}}public boolean exist(String isbn) {for(Cart current : record) {if(current.getIsbn().equals(isbn)) {return true;}}return false;}public ArrayList<Cart> get(){ArrayList<Cart> result = new ArrayList<Cart>();for(Cart current : record){ result.add(newCart(current.getIsbn(),current.getTitle(),current.getPrice() ,current.getNumber()));}return result;}public boolean initialed() {return this.initialed;}public void create(){record = new ArrayList<Cart>();initialed = true;}}void edit(Books books);void remove(Books books);Books find(Object id);List<Books> findAll();ArrayList<Books> search(String key);}③CartRemote.javaimport javax.ejb.Remote;import java.util.ArrayList;@Remotepublic interface CartRemote {public void add(String isbn,String name,double price);public void set(String isbn,int number);public boolean exist(String isbn);public ArrayList<Cart> get();public boolean initialed();public void create();}2、BooksOnline-warControlServlet.javaimport Books.BooksFacadeRemote;import Cart.CartRemote;import java.util.Enumeration;import java.io.IOException;import java.io.PrintWriter;import javax.ejb.EJB;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ControlServlet extends HttpServlet {@EJBprivate CartRemote cartBean;@EJBprivate BooksFacadeRemote booksFacade;/*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.* @param request servlet request* @param response servlet response*/protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {if(request.getParameter("page").equals("search")) {request.getSession().setAttribute("directory",booksFacade.search(request.getParameter("key").toLowerCase()));response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("cart")) {if(!cartBean.initialed()) {cartBean.create();}Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")) {if(!cartBean.exist(request.getParameter(name))) {cartBean.add(request.getParameter(name),booksFacade.find(request.getParameter (name)).getTitle(),booksFacade.find(request.getParameter(name)).getPrice()); }}}request.getSession().setAttribute("cart",cartBean.get());response.sendRedirect("Cart.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("search")) {response.sendRedirect("Search.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("order")) {double sum = 0;Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")&&!name.equals("address")) {cartBean.set(name,Integer.parseInt(request.getParameter(name)));sum +=booksFacade.find(name).getPrice()*Integer.parseInt(request.getParameter(name) );}}request.getSession().setAttribute("cart",cartBean.get());request.getSession().setAttribute("fee",sum);request.getSession().setAttribute("address",request.getParameter("address")); response.sendRedirect("Order.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("continue")) {response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("search")) {response.sendRedirect("Search.jsp");}} finally {out.close();}}// <editor-fold defaultstate="collapsed" desc="HttpServlet 方法。