JSP网上书店的实现 课程设计.docx

上传人:b****5 文档编号:12576800 上传时间:2023-04-20 格式:DOCX 页数:37 大小:257.64KB
下载 相关 举报
JSP网上书店的实现 课程设计.docx_第1页
第1页 / 共37页
JSP网上书店的实现 课程设计.docx_第2页
第2页 / 共37页
JSP网上书店的实现 课程设计.docx_第3页
第3页 / 共37页
JSP网上书店的实现 课程设计.docx_第4页
第4页 / 共37页
JSP网上书店的实现 课程设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

JSP网上书店的实现 课程设计.docx

《JSP网上书店的实现 课程设计.docx》由会员分享,可在线阅读,更多相关《JSP网上书店的实现 课程设计.docx(37页珍藏版)》请在冰豆网上搜索。

JSP网上书店的实现 课程设计.docx

JSP网上书店的实现课程设计

第一章系统设计

1.1需求分析

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

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

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

A.书图查询:

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

B.购物车管理:

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

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

C.订单处理:

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

D.会员注册:

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

1.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.jsp

BookShopCartFrom

AddrConfirmAction

User

OrderHistory.jsp

BookSearchForm

ClearShopCartAction

Wrong.jsp

DeliveryForm

OrderDelAction

OrderIdForm

OrderHistoryAction

1.3功能设计

1).图书信息管理

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

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

2).购物车管理

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

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

3).会员注册

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

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

4).订单处理

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

BookMain.p

图书查询

1.4网上书店基本流程

 

 

orderHistorsp

历史订单查询

1.5系统的模块图如下图所示:

会员服务系统数据流程图

 

网上书店销售系统的E-R图如上图

1.6网上书店各页面功能

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

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

循环显示图书分类信息

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

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

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

选择搜索条件的表单元素

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

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

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

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

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

在本页面中,当单击选择书目分类时,将提交bookSearch.do?

BookCatId=<%=bookCat.GetId()%mode=1”请求,以便于获取对应图书分类的相关信息。

当选择了查询依据,并且输入了对应关键字,单击“搜索”按钮时,将提交“bookSearch.do”请求,同时提交查询条件,进行后续书目信息搜索的处理。

当在书目列表中单击查看详细信息请求时,将发出“bookDetail.do”请求,同时传递对应图书记录的编号,以获取指定图书更加详细的信息。

此外,在单击“首页”、“上页”、“下页”超链接后,需要分别提交以下语句“bookPage.DopageId=<%=bookPage.DopageId=<%=schSta.GetPageId()-1%>”,“bookPage.DopageId=<%=schSta.GetPageId()+1%>”等请求,以实现页面的跳转

2)图书详细信息bookShow.jsp页面详细功能及描述

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

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

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

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

显示图书目录

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

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

BookId=<%=book.GetId()%>”请求,进行后续放入购物车的处理。

3)图书详细信息bookShow.jsp页面详细功能及描述

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

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

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

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

显示图书目录

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

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

BookId=<%=book.GetId()%>”请求,进行后续放入购物车的处理。

4)购物车信息bookShopCart.jsp页面详细功能及描述

获取该用户购物车中信息的集合

提交更新购物车请求的表单

循环显示购物车中的每一条购物记录信息

设置购买数量的文本框

显示图书销售价格

显示图书总价

从购物车中移除购买记录信息

更新订单按钮

提交继续购书请求的超链接

提交清空购物车请求的超链接

提交结算付款请求的超链接

本页面是在用户选择购买某种图书商品后,进入的页面。

在该页面中将显示该用户购物车中现有的所有购买需求记录。

同时提供更新购物车的操作界面,例如,可以输入购买数量或者选择删除购买记录。

单击“更新订单”按钮后,将提交“updateShopCart.do”请求,进行更新购物车信息的处理。

此外,也可以单击“继续购书”按钮,提交“bookSearch.do”请求返回网上书店主页面继续购书,或者单击“清空购物车”按钮提交“clearShopCart.do”请求。

同时,如果用户确认去收银台,则可以单击“结算付款”按钮跳转到“userLogin.jsp”页面进行用户登录。

5)网上书店客户登录userLogin.jsp页面详细功能及描述

提交用户登录请求,同时提交登录用户信息的表单

提交登录用户用户名及密码的表单元素

登录按钮

提交新用户注册请求的超链接

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

第二章网页设计

2.1建立数据源

使用JSP和PowerBuilder来构建一个网上书店销售系统,可以分成两大部分,第一部分是普通程序,用于客户在网上选购图书,第二部分是管理程序,用于在服务器端处理客户的定单。

客户端程序由以下几个部分构成:

default.jsp:

会员登录界面(首页);

checklogon.jsp:

检测登录代码和密码是否一致,根据由JSP返回的结果显示不同的信息。

BuyerBean:

会员的合法性检验所用的Bean;

booklist.jsp:

给登录会员显示当前书店中可供选择的图书;

addcart.jsp:

将所选的图书加入购物车;

shoppingcart.jsp:

查看购物车的内容;

首先要在本地数据库上建立一个ODBC数据源:

bookstore。

步骤如下:

1)在开始->设置->控制面版中选取“数据源(ODBC)”;在Win2000Professional和Server中分别位于“开始->设置->控制面版->管理工具”和“开始->程序->管理工具”下。

(2)启动“数据源(ODBC)”配置程序,界面如图所示。

(3)在图中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),出现所示数据源驱动程序选择界面:

2.2会员登陆

做一个网上书店,在顾客开始购书之前,必须要记录用户的一些信息以便用户在不同的分类、不同的页面购书时,最后能够去收款台统一结帐,而且网上书店同时有许多人在选购图书,也要求对不同的顾客进行区分,可以在购书之前进行注册成为会员,以后只用会员代码和密码即可登录。

为了便于说明现在的电子商务网站,由JSP做页面表现,由JavaBean做应用逻辑的结构,会员登录程序分成两大部分:

一、JavaBean用于对数据库的操作,验证用户名和密码是否正确;二、JSP页面部分,用于供用户会员代码和密码以及显示验证结果。

2.2.1会员登陆javabean

会员信息表如图

其中memberID是主键,用于区分不同的会员,新会员注册时只能使用没有被使用的用户代码。

在验证时我们只要使用验证用户的memberID和其pwd是否一致即可判断该用户是否合法,如果合法则其登录次数加1。

验证部分的JavaBean的代码

BuyerBean.Java

importJava.sql.*;

publicclassBuyerBean{

privateStringmemberID=null;

privateStringmemberName=null;

privateStringpwd=null;

privateintlogontimes=-1;

privatestaticStringstrDBDriver=“sun.jdbc.odbc.JdbcOdbcDriver”

privatestaticStringstrDBUrl=“jdbc:

odbc:

bookstore”;

privateConnectionconn=null;

privateResultSetrs=null;

publicBuyerBean(){

try{

Class.ForName(strDBDriver);

}

catch(Java.lang.ClassNotFoundExceptione){

System.err.println(“BuyerBean():

”+e.getMessage());

}

}

publicintgetLogontimes(){

StringstrSql=null;

try{

conn=DriverManager.GetConnection(strDBUrl);

Statementstmt=conn.Createstatement();

StrSql=“SelectlogonTimes,membernamefrombuyerInfowherememberID=‘”+memberID+“’andpwd=’”+pwd+“’”;rs=stmt.executeQuery(strSql);

while(rs.next()){

logontimes=rs.GetInt(“logonTimes”);

memberName=rs.getString(“membername”);

}

rs.close();

if(logontimes!

=-1)strSql=“UpdatebuyerInfoset

logonTimes=logonTimes+1wherememberID=‘”+memberID+“’”;

smt.ExecuteUpdate(strSql);

}

stmt.close();

conn.close();

测试Bean中的各个方法是否能够正常工作

publicstaticvoidmain(Stringargs[]){

BuyerBeanbuyer=newBuyerBean();

buyer.SetMemberID(“abcd”);

buyer.SetPwd(“1234”);

System.out.Println(buyer.GetLogontimes());

System.Out.Println(buyer.GetMemberName());

}

}

在BuyerBean中用了packagep050705054;在发布到WEBSERVER时,可以用JAR把编译后的BuyerBean.class打包成JAR文件在服务器的环境变量classpath中给予指定,或者在服务器classpath环境变量指定的目录下建一个p0*******4文件夹,把BuyerBean.class放到p0*******4目录下。

2.2.2会员登陆htm和jsp

主页如图所示:

会员登陆页面如图:

登陆部分的javabeen代码

Checklogon.jsp

localhost//8080p05070504/>

useBeanclass=”cuug.BuyerBean”id=”buyer”scope=”page”>

useBean>

</p><p>CUUGONLINEBOOKSTORE–MEMBERLOGIN</p><p>

CUUG网上书店

<%StringmemberID=request.getParameter(“memberID”);

Stringpwd=request.getParameter(“pwd”);

buyer.setMemberID(memberID);

buyer.setPwd(pwd);

%>

<%intlogonTimes=buyer.getLogontimes();

if(logonTimes>0){

session.putValue("memberID",memberID);

%>

<%=buyer.getMemberName()%>欢迎你第

<%=logonTimes+1%>次来到CUUG网上书店

进入书店

<%

}

else{

%>

对不起,<%=memberID%>你的用户名和密码不一致

重新登录

<%

}

%>

2.3选择书籍

2.3.1选书javabeen

会员登录之后,合法的用户将可以看到本书店中可供选择的图书,并且将他感兴趣的书放入“购物车”,在去“收银台”结帐之前,该用户可以放弃购买其购物车中的任何一本书。

在此处我们用BookBean来获取图书的信息,在Booklist.jsp中显示这些书。

在会员选书部分,仍用JavaBean来操作数据库,用jsp来做页面表现。

图书信息表如图

其中,bookISBN是主键,区分不同的图书。

JavaBean要根据不同的图书的bookISBN来获得其相应的书名、作者、出版社、价格、简介等信息。

同时JavaBean还要有列出书店中所有图书的信息的功能。

选书部分的javabeen代码

/BuyerBeanJava

packagep0*******4;

importJava.sql.*;

publicclassBookBean{

privateStringbookISBN=null;

privateStringbookName=null;

privateStringbookAuthor=null;

privateStringpublisher=null;

privateStringintroduce=null;

privateStringprice=null;

privatestaticStringstrDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";

privatestaticStringstrDBUrl="jdbc:

odbc:

bookstore";

privateConnectionconn=null;

privateResultSetrs=null;

publicBookBean(){

try{

Class.forName(strDBDriver);

}

catch(Java.Lang.ClassNotFoundExceptione){

System.err.println("BookBean():

"+e.getMessage());

}

}

publicResultSetgetBookList(){

StringstrSql=null;

try{

conn=DriverManager.GetConnection(strDBUrl);

Statementstmt=conn.createStatement();

StrSql="SelectbookISBN,bookName,bookAuthor,publisher,pricefrombookInfo";

rs=stmt.ExecuteQuery(strSql);

}

catch(SQLExceptione){

System.err.println("BookBean.GetBookList():

"+e.getMessage());

}

returnrs;

conn=DriverManager.getConnection(strDBUrl);

Statementstmt=conn.createStatement();

StrSql="Select*frombookInfowherebookISBN='"+ISBN+"'";

rs=stmt.executeQuery(strSql);

while(rs.next()){

bookName=rs.getString("bookName");

bookAuthor=rs.getString("bookAuthor");

publisher=rs.GetString("publisher");

introduce=rs.getString("introduce");

price=rs.getString("price");

}

}

catch(SQLExceptione){

System.err.Println("BookBean.GetBookList():

"+e.getMessage());

}

}

publicvoidsetBookISBN(StringISBN){

this.bookISBN=ISBN;

getBookInfo(bookISBN);

}

publicstaticvoidmain(Stringargs[]){

BookBeanbook=newBookBean();

book.SetBookISBN("7-5053-5316-4");

System.out.println(book.getBookName());

System.out.println(book.getBookAuthor());

System.out.println(book.GetPublisher());

System.out.Println(book.GetIntroduce());

System.out.println(book.GetPrice());

try{

ResultSettmpRS=book.GetBookList();

while(tmpRS.next()){

System.out.Println(tmpRS

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1