(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx

上传人:聆听****声音 文档编号:850499 上传时间:2023-04-29 格式:DOCX 页数:28 大小:200.79KB
下载 相关 举报
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第1页
第1页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第2页
第2页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第3页
第3页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第4页
第4页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第5页
第5页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第6页
第6页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第7页
第7页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第8页
第8页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第9页
第9页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第10页
第10页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第11页
第11页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第12页
第12页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第13页
第13页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第14页
第14页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第15页
第15页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第16页
第16页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第17页
第17页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第18页
第18页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第19页
第19页 / 共28页
(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx

《(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx》由会员分享,可在线阅读,更多相关《(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx(28页珍藏版)》请在冰点文库上搜索。

(完整版)基于JAVA的网上书店系统毕业论文Word格式.docx

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

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

3-8控制处理层总结

参考文献

摘要

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

【关键字】JAVA,Struts,Servlet,JSP,网络编程,电子商务,网上书店

Abstract

AtpresentJAVAisthe Internet,Itintroducedtherelationshipbetweenthemandtheimportantprogrammingmethodofthedoubletechnology,AndalsoshowtheStrutstechnology,Andworkoutanonlinebookstoresystembaseonthiskindoftechnology.

Keywords:

JAVA,Struts,Servlet,JSP,webprogram,internet,bookshop

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

Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。

自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。

在早期,Java比较多的用在浏览器上,插入到网页中(即是JavaApplet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着JavaServlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(JavaServerPage)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。

Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。

例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。

在编程处理上,一般先生成一个URL类型的对象,然后用Java中相应的方法(method)获取该对象所代表的资源。

1-3JSP的基础——Servlet技术

JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。

Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。

许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。

得益于Java的跨平台的特性,Servlet也是平台无关

的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。

由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。

但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。

这就是为什么SUN还要推出JavaServerPages的原因。

第二章Struts概述

Struts框架工具是Apache基金会Jakarta项目中推出的一个子项目。

Struts在英文中是支架、支撑的意思,这也体现出Struts在开发Web应用程序过程所起到的重要作用,Struts为Web应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时Struts框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。

采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥JSPServlet优点、并具有强可扩展性的Web应用。

总之,Struts的出现使得Web应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。

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

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。

1、模型(Model)

模型是应用程序的主体部分。

模型表示业务数据,或者业务逻辑.

2、视图(View)

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

3、控制器(controller)

控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性

早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。

很多VB,Delphi等RAD程序都有这种问题。

甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象

管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。

主要原因:

一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。

CGI程序以字符串输出的形式动态地生成HTML内容。

后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。

这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。

二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。

直到基于J2EE的JSPModel2问世时才得以改观。

它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能

JSPModel1 与JSPModel2

SUN在JSP出现早期制定了两种规范,称为Model1和Model2。

虽然

Model2 在一定程度上实现了MVC,但是它的应用用并不尽如人意

JSPModel1

JSPModel2

model2容易使系统出现多个Controller,并且对页面导航的处理比较复杂有些人觉得model2仍不够好,于是CraigR.McClanahan2000年5月提

交了一个WEBframework给JavaCommunity.这就是后来的Struts.

2001年7月,Struts1.0,正式发布。

该项目也成为了ApacheJakarta的子项目之一

Struts质上就是在Model2的基础上实现的一个MVC架构。

它只有一个中

心控制器,他采用XML定制转向的URL。

采用Action来处理逻辑

2-2Struts优缺点优点:

Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。

使开发者能更深入的了解其内部实现机制。

除此之外,Struts的优点主要集中体现在两个方面:

Taglib和页面导航。

Taglib是Struts

的标记库,灵活动用,能大大提高开发效率。

另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。

通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。

尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

缺点:

Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。

虽然它现在还有不少缺点,但它是一种非常优秀的J2EEMVC实现方式。

3-3Struts的工作流程

下图是Struts的工作流程,所有的请求都提交给ActionServlet来处理。

ActionServlet是一个FrontController,它是一个标准的Servlet,它将request

转发给RequestProcessor来处理,

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

RequestProcessor根据提交过来的url,如*.do,从ActionMapping中得到相应的ActionForn和Action。

然后将request的参数对应到ActionForm中,进行form验证。

如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionFoward。

ActionFoward是对mapping中一个foward的包装,对应于一个urlActionForm使用了ViewHelper模式,是对HTML中form的一个封装。

其中

包含有validate方法,用于验证form数据的有效性。

ActionForm是一个符合

JavaBean规范的类,所有的属性都应满足get和set对应。

对于一些复杂的系统,还可以采用DynaActionForm来构造动态的Form,即通过预制参数来生成Form。

这样可以更灵活的扩展程序。

ActionErrors是对错误信息的包装,一旦在执行action或者form.validate中出现异常,即可产生一个ActionError并最终加入到ActionErrors。

在Form验证的过程中,如果有Error发生,则会将页面重新导向至输入页,并提示错误。

Action是用于执行业务逻辑的RequsestHandler。

每个Action都只建立一个instance。

Action不是线程安全的,所以不应该在Action中访问特定资源。

一般来说,应改使用BusinessDelegate模式来对Businesstier进行访问以解除耦合。

Struts提供了多种Action供选择使用。

普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。

如insert,update等。

LookupDispatchAction 可以根据提交表单按钮的名称来执行函数。

第三章网上书店详细设计

网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。

一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。

根据网上书店的基本需求,本系统需要完成的具体任务如下:

A.书图查询:

当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。

B.购物车管理:

当客户选择购买某图书产品时,应该能够将对应图书信息,如:

价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。

C.订单处理:

对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。

D.会员注册:

为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。

3-2总体设计系统组成

用户表示层(视图)

控制处理层(控制器)

业务逻辑

层(模型)

下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。

bookMain.jsp

ActionForm

Action

DB

BookShow.jsp

LoginForm

FirstAction

Constants

BookShopCart.jsp

UserForm

BookDetailAction

Book

OrderAddress.jsp

BookIdForm

BookSearchAction

BookCat

OrderConfirm.jsp

BookCatIdForm

LoginAction

Order

UserLogin.jsp

PageIdForm

BookBuyAction

ShopCart

UserRegister.jspOrderHistory.jspWrong.jsp

BookShopCartFromBookSearchFormDeliveryFormOrderIdForm

AddrConfirmActionClearShopCartActionOrderDelActionOrderHistoryActionPageCtrlActionRegistAction

UpdateShopCartAction

User

1.图书信息管理

该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。

此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。

2.购物车管理

用于维护每一个进入网上书店的客户对应的购物车。

即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。

3.会员注册

实现网上书店客户信息的注册、及身份验证。

由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。

4.订单处理

根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。

依据网上书店的处理需求,对就数据表的设计及功能如下。

A.图书基本信息表:

存放网上书店所销售图书的基本信息。

B.图书分类基本信息表:

存放网上书店所提供图书分类的信息。

C.客户基本信息表:

存放书店客户的基本信息。

D.订单信息表:

存放与客户相关的订单的基本信息。

E.订单条目详细信息表:

存放订单中详细条目的基本信息。

代码如下:

图书分类基本信息表

DROPTABLEbookcatCASCADECONSTRAINTS;

CREATETABLEbookcat(

id NUMBER PRIMARYKEY,catname VARCHAR2(40) NOTNULL

);

图书基本信息表

DROPTABLEbookCASCADECONSTRAINTS;

CREATETABLEbook(

id NUMBER PRIMARYKEY,catid NUMBER NOTNULL

REFERENCESbookcat(id)ONDELETECASCADE,name VARCHAR2(50) NOTNULL,

price NUMBER NOTNULL,

saleprice NUMBER NOTNULL,descript VARCHAR2(500)NOTNULL,author VARCHAR2(50) NOTNULL,contents VARCHAR2(2000)NULL,image VARCHAR2(50) NULL

客户基本信息表

DROPTABLEstoreuserCASCADECONSTRAINTS;

CREATETABLEstoreuser(

username VARCHAR2(20) PRIMARYKEY,password VARCHAR2(20) NOTNULL,name VARCHAR2(20) NOTNULL,

tel VARCHAR2(20) NOTNULL,address VARCHAR2(100)NOTNULL,email VARCHAR2(50) NULL

订单信息表

DROPTABLEordersCASCADECONSTRAINTS;

CREATETABLEorders(

id NUMBER PRIMARYKEY,username VARCHAR2(20) NOTNULL

REFERENCESstoreuser(username)ONDELETECASCADE,time DATE NOTNULL,

delivery VARCHAR2(20) NOTNULL,payment VARCHAR2(20) NOTNULL

订单条目详细信息表

DROPTABLEorderdetailCASCADECONSTRAINTS;

CREATETABLEorderdetail(

orderid NUMBER NOTNULL

REFERENCESorders(id)ONDELETECASCADE,

bookid NUMBER NOTNULL

REFERENCESbook(id)ONDELETECASCADE,

count NUMBER NOTNULL,price NUMBER NOTNULL

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

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

l获取图书分类信息以及图书基本信息集合

l循环显示图书分类信息

l提交显示指定分类图书信息的请求,同时传递对应图书分类编号

l提交书目搜索请求及搜索条件的表单

l提交搜索关键字的表单元素

l选择搜索条件的表单元素

l显示图书记录总数、当前页面编号以及总页数

l循环显示对应图书书目信息

l显示图书名称、价格、销售价格、作者信息

l提交显示图书详细信息请求的超链接

l提交分页显示请求的超链接,同时提交指定页面编号

在本页面中,当单击选择书目分类时,将提交“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页面详细功能及描述

l依据图书记录编号获取待显示详细信息的图书类型的对象

l分别显示该图书对象的详细信息

l显示图书封面图片、名称、详细介绍、价格、销售价格

l单击“购买”按钮后,将提交放入购物车的请求

l显示图书目录

本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即“bookDeatial.do”请求后,跳转到的页面。

在该页面中将获取到的指定图书详细信息显示出来,同时如果用户单击“购买”按钮,将提交“bookBuy.do?

bookId=<

%=book.getId()%>

”请求,进行后续放入购物车的处理。

3-6-3显示购物车信息bookShop

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2