java毕业设计——基于JSP+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)——网上书店

基于JSP+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于JSP+sqlserver的网上书店系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. JAVA语言是目前Internet上大型的WEB应用程序开发时使用得最热门的编程语言,本文描述了JAVA和JSP技术的特点以及在互联网上的使用情况,介绍这两种技术的重要编程方法和两者之关的联系,同时也会应用相关的Struts框架,并完成一个基于这种技术的网上书店系统。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:8172个字18页
包含内容:全套源码+配整论文
开题报告、论文答辩、课题报告等ppt模板推荐下载方式:
在这里插入图片描述


3、关键词

JAVA, Struts, Servlet, JSP, 网络编程, 电子商务, 网上书店

4、毕设简介

提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。

第一章 JAVA的网络功能与编程

1-1 JAVA语言简介
Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。

1-2 JAVA语言在网络上的应用
Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。

1-3 JSP的基础——Servlet 技术
Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。

第二章 Struts概述

2-1 Struts的由来和发展

Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。

Struts 架构一经推出,即受到 Java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具,在目前 Java Web 程序员的招聘要求中,几乎都提出了对 Struts 的要求,精通 Struts 架构已经成为 Java Web 程序员必备的技能。

2-1-1 MVC简介

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
1、模型(Model)
  模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.

2、视图(View)
  视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。

3、控制器(controller)
  控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
在这里插入图片描述

省略

2-2 Struts优缺点
省略

3-3 Struts的工作流程
下图是Struts的工作流程,所有的请求都提交给ActionServlet来处理。
在这里插入图片描述

ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来处理,

ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有的配置信息

省略

第三章 网上书店详细设计
3-1 需求分析
网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。
根据网上书店的基本需求,本系统需要完成的具体任务如下:
A. 书图查询: 当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。
B. 购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。
C. 订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。
D. 会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。

3-2 总体设计

系统组成
下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。
在这里插入图片描述

3-3 功能设计

1.图书信息管理
该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。
2.购物车管理
用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。
3.会员注册
实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。
4.订单处理
根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。

3-4 数据库设计与实现
3-4-1 数据库的需求分析

依据网上书店的处理需求,对就数据表的设计及功能如下。
A. 图书基本信息表:存放网上书店所销售图书的基本信息。
B. 图书分类基本信息表:存放网上书店所提供图书分类的信息。
C. 客户基本信息表:存放书店客户的基本信息。
D. 订单信息表:存放与客户相关的订单的基本信息。
E. 订单条目详细信息表:存放订单中详细条目的基本信息。

3-4-2 创建数据表的脚本
代码如下:

____________________________________________________________________________
//图书分类基本信息表
DROP TABLE bookcat CASCADE CONSTRAINTS;
CREATE TABLE bookcat(	
	id		NUMBER      	PRIMARY KEY,
	catname		VARCHAR2 (40) 	NOT NULL
);

//图书基本信息表
DROP TABLE book CASCADE CONSTRAINTS;
CREATE TABLE book(	
	id		NUMBER      	PRIMARY KEY,
	catid		NUMBER      	NOT NULL
			REFERENCES bookcat(id) ON DELETE CASCADE,
	name		VARCHAR2 (50) 	NOT NULL,
	price		NUMBER       	NOT NULL,
	saleprice	NUMBER        	NOT NULL,
	descript	VARCHAR2 (500)  NOT NULL,
	author		VARCHAR2 (50)   NOT NULL,
	contents	VARCHAR2 (2000) NULL,
	image		VARCHAR2 (50)  	NULL
);

//客户基本信息表
DROP TABLE storeuser CASCADE CONSTRAINTS;
CREATE TABLE storeuser(	
	username	VARCHAR2 (20) 	PRIMARY KEY,
	password	VARCHAR2 (20) 	NOT NULL,
	name		VARCHAR2 (20) 	NOT NULL,
	tel		VARCHAR2 (20)  	NOT NULL,
	address		VARCHAR2 (100)  NOT NULL,
	email		VARCHAR2 (50)   NULL
);

//订单信息表
DROP TABLE orders CASCADE CONSTRAINTS;
CREATE TABLE orders(	
	id		NUMBER      	PRIMARY KEY,
	username	VARCHAR2 (20)   NOT NULL
			REFERENCES storeuser(username) ON DELETE CASCADE,
	time		DATE 	    	NOT NULL,
	delivery	VARCHAR2 (20)   NOT NULL,
	payment		VARCHAR2 (20)   NOT NULL 
);

//订单条目详细信息表
DROP TABLE orderdetail CASCADE CONSTRAINTS;
CREATE TABLE orderdetail(	
	orderid		NUMBER      NOT NULL
			REFERENCES orders(id) ON DELETE CASCADE,
	bookid		NUMBER      NOT NULL
			REFERENCES book(id) ON DELETE CASCADE,
	count		NUMBER      NOT NULL,
	price		NUMBER      NOT NULL
);
_____________________________________________________________________ 

3-5 网上书店基本流程

网上书店在运行过程中页面的基本流程如下图:

在这里插入图片描述

3-6 网上书店各页面功能

3-6-1 网上书店首页bookMain.jsp详细功能及描述

 获取图书分类信息以及图书基本信息集合
 循环显示图书分类信息
 提交显示指定分类图书信息的请求,同时传递对应图书分类编号
 提交书目搜索请求及搜索条件的表单
 提交搜索关键字的表单元素
 选择搜索条件的表单元素
 显示图书记录总数、当前页面编号以及总页数
 循环显示对应图书书目信息
 显示图书名称、价格、销售价格、作者信息
 提交显示图书详细信息请求的超链接
 提交分页显示请求的超链接,同时提交指定页面编号

在本页面中,当单击选择书目分类时,将提交“bookSearch.do?bookCatId=<%=bookCat.getId()%mode=1”请求,以便于获取对应图书分类的相关信息。当选择了查询依据,并且输入了对应关键字,单击“搜索”按钮时,将提交“bookSearch.do”请求,同时提交查询条件,进行后续书目信息搜索的处理。当在书目列表中单击查看详细信息请求时,将发出“bookDetail.do”请求,同时传递对应图书记录的编号,以获取指定图书更加详细的信息。此外,在单击“首页”、“上页”、“下页”超链接后,将分别提交“bookPage.dopageId=<%=0%>”、“bookPage.dopageId=<%=schSta.getPageId()-1%>”、“bookPage.dopageId=<%= schSta.getPageId()+1%>”等请求,以实现页面的跳转

3-6-2 显示图书详细信息bookShow.jsp页面详细功能及描述

 依据图书记录编号获取待显示详细信息的图书类型的对象
 分别显示该图书对象的详细信息
 显示图书封面图片、名称、详细介绍、价格、销售价格
 单击“购买”按钮后,将提交放入购物车的请求
 显示图书目录

本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即“bookDeatial.do”请求后,跳转到的页面。在该页面中将获取到的指定图书详细信息显示出来,同时如果用户单击“购买”按钮,将提交“bookBuy.do?bookId=<%=book.getId()%>”请求,进行后续放入购物车的处理。

3-6-3显示购物车信息bookShopCart.jsp页面详细功能及描述

 获取该用户购物车中信息的集合
 提交更新购物车请求的表单
 循环显示购物车中的每一条购物记录信息
 设置购买数量的文本框
 显示图书销售价格
 显示图书总价
 从购物车中移除购买记录信息
 更新订单按钮
 提交继续购书请求的超链接
 提交清空购物车请求的超链接
 提交结算付款请求的超链接

本页面是在用户选择购买某种图书商品后,进入的页面。在该页面中将显示该用户购物车中现有的所有购买需求记录。同时提供更新购物车的操作界面,例如,可以输入购买数量或者选择删除购买记录。单击“更新订单”按钮后,将提交“updateShopCart.do”请求,进行更新购物车信息的处理。此外,也可以单击“继续购书”按钮,提交“bookSearch.do”请求返回网上书店主页面继续购书,或者单击“清空购物车”按钮提交“clearShopCart.do”请求。同时,如果用户确认去收银台,则可以单击“结算付款”按钮跳转到“userLogin.jsp”页面进行用户登录。

3-6-4网上书店客户登录userLogin.jsp页面详细功能及描述

 提交用户登录请求,同时提交登录用户信息的表单
 提交登录用户用户名及密码的表单元素
 登录按钮
 提交新用户注册请求的超链接

本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提交“login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到“userRegister.jsp”页面进行用户注册。

3-6-5 网上书店客户注册userRegister.jsp页面详细功能及描述

 提交新用户注册请求,同时提交新用户注册信息的表单
 提交注册用户姓名、地址、电子邮件地址、电话、用户名、密码以及确认密码的表单元素
 注册按钮

在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册”按钮后,将提交“regist.do”请求,同时提交新用户的相关注册信息,以便于进行后续新用户注册的处理。

3-6-6 选择送货方式及付款方式orderAddress.jsp页面详细功能及描述

 获取客户信息
 提交选择送货方式及付款方式的表单
 显示客户信息、姓名、地址、电话、送货方式、付款方式

本页面是在用户登录通过后,跳转到的页面,在该页面中首先获取对应用户的客户资料,同时提供送货方式以及付款方式的选择,在用户单击“确认”按钮后,将提交“addrConfirm.do”请求,生成生续完整的订单信息。

3-6-7 确认订单信息orderConfirm.jsp页面详细功能及描述

 获取购物车信息集合
 获取订单信息、客户信息
 显示客户姓名、地址、电话
 显示购物车中的信息
 显示所购图书书名、数量、总价
 显示整张订单总价
 显示订单信息中的送货方式信息
 显示付款方式信息
 显示订单编号
 提交继续购书的请求
 提交查看该用户所有订单的请求

本页面中将全面显示该客户本次购物生成的详细订单信息,同时如果单击“继续购书”按钮将提交“bookSearch.do”请求返回网上书店主页面,如果单击“查看订单”按钮将提交“orderHistory.do”,跳转到“orderHistory.jsp”页面。

3-6-8 显示客户所有订单信息orderHistory.jsp页面详细功能及描述

 获取该用户所有历史订单信息
 显示订单信息信息列表
 显示订单编号、时间、总价
 提交取消订单请求的超链接
 提交返回购书请求的超链接

本页面将显示与当前用户相关的所有订单信息。同时用户可以单击“取消此单”超链接提交“delOrder.do?orderId=<%=order.getId()%>”请求删除该订单信息,此外也可以单击“返回购书”按钮提交“bookSearch.do”请求跳转到网上书店主页面。

3-7 业务逻辑层各bean功能

在本系统的业务逻辑层中分别完成了对图书信息、图书分类信息、购物车信息、订单信息以及客户信息等类型对象的保存和处理。所有文件包含在WEB-INF\classes目录中

3-7-1 封装了数据库相关操作的bean(DB.java)
采用了Struts架构下提供的数据库连接池建立与数据库的连接,在该bean中通过构造方法建立与数据库的连接,并提供了相应的方法完成数据库中的查询、更新等操作,同时也提供了关闭数据库连接的方法,以便于及时释放资源。

3-7-2 封装了图书住处处理的bean(Book.java)
除声明了与图书基本数据相关的基本属性和方法之外,还提供了图书信息的查询显示处理相关的几个方法。其中在调用查询满足条件的图书信息方法时,需要提供查询的依据,例如,分类、按作者还是按书名,对应关键字等。

3-7-3 封装了图书分类信息处理的bean(BookCat.java)
除了声明了与图书分类数据相关的基本属性和方法之外,还提供了与图书分类信息查询及显示处理相关的几个方法。

3-7-4 封装了图书查询及显示条件的bean(SearchStatus.java)
主要封装了设置图书搜索查询条件相关的属性和方法,该程序中的方法将在搜索图书信息的程序中被调用。

3-7-5 封装了购物车信息处理的bean(ShopCart.java)
为了能够简化类的定义,考虑到购物车中所需要处理的图书基本信息与图书类型对象中封装的信息相同,只是需要再补充上购买数量即可,因此在定义该类时继承了图书信息类。

3-7-6 封装了订单住处处理的bean(Order. java)
除声明了与订单中所需要处理的数据相关的基本属性和方法之外,还提供了与订单查询、插入及删除处理相关的几个方法。此外,也提供了计算该订单所涉及总金额的方法。

3-7-7 封装了客记信息处理的bean(User.java)
除声明了与用户数据相关的基本属性和方法之外,还提供了与确认用户身份、获取用户相关信息、插入新用户信息处理相关的几个方法。

3-7-8 常量文件(Constants.java)

3-8 控制处理层

下表是网上书店系统中的Action映射表。该映射决定了 Action与其他Web组件之间的关联关系。作为前后台之间桥梁,本表中指明了每个Action的入口(即调用Action的组件)及出口(即请求转发的目标组件),以及传递Action的ActionForm。
在这里插入图片描述

1.BookSearchAction.java
该程序负责处理查询显示满足条件图书书目信息时提交的“bookSearch.do”请求

2.PageCtrlAction.java
该程序负责处理分页显示图书书目信息时进行页面跳转时提交的“bookPage.do”请求。

3.BookDetailAction.Java
该程序负责处理显示指定图书编号的对应图书详细信息时提交的“bookDetail.do”请求。

4.BookBuyAction.java
该程序负责处理购买图书时提交的“bookBuy.do”请求。

5.UpdateShopCartAction.java
该程序负责处理修改购物数量,或者删除购物记录时提交的“updateShopCart.do”请求。

6.ClearShopCartAction.java
该程序负责处理从购物车页面提交的清空购物车时的“clearShopCart.do”请求。

7.LoginAction.java
该程序负责处理从用户登录页面提交的“login.do”请求。

8.RegistAction.java
该程序负责处理从新用户注册页面提交的“regist.do”请求。

9.AddrConfirmAction.java
该程序负责处理从订单处理页面提交的选择送货方式及付款方式的“addrConfirm.do”请求。
10.OrderHistoryAction.java
该程序负责处理从确认订单页面提交查看所有订单信息的“orderHistory.do”请求。

11.OrderDelAction.java
该程序负责处理从订单信息显示页面选择“取消订单”时提交“delOrder.do”请求。

总结
本文讲述了Java/JSP/Struts在WEB应用的一些基本知识,并通过网上书店的程序对JSP的运用进行了深化,从本文中可看出JSP与Struts框架结合的模式,在电子商务上应用十分灵活,不过要真正掌握好它们却并不是一件容易的事情,在实际应用的WEB开发中,还有很多关于安全方面的问题需要考虑。在这里要感谢上海浦东软件园的培训部的XX老师,他在我论文及设计的定题以及修改上给予了我很多的支持,对我论文的完成帮助很大。

参考资料:
(1)JSP编程技巧/清宏计算机工作室编著. 北京:机械工业出版社,2001.1
(2)精通JBuilder 3环境下的JAVA编程/锐思创作室编著. 北京:人民邮电出版社., 2001.1
(3)深入JAVA Servlet 网络编程. 清华大学出版社
(4)Struts开发入门与项目实践. 北京:人民邮电出版社, 2005.8


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于JSP+sqlserver的网上书店系统设计与实现(源码+文档)_jsp_BS架构_网上书店.zip
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值