web课程设计报告Word文件下载.docx

上传人:b****1 文档编号:3412977 上传时间:2023-05-01 格式:DOCX 页数:19 大小:633.59KB
下载 相关 举报
web课程设计报告Word文件下载.docx_第1页
第1页 / 共19页
web课程设计报告Word文件下载.docx_第2页
第2页 / 共19页
web课程设计报告Word文件下载.docx_第3页
第3页 / 共19页
web课程设计报告Word文件下载.docx_第4页
第4页 / 共19页
web课程设计报告Word文件下载.docx_第5页
第5页 / 共19页
web课程设计报告Word文件下载.docx_第6页
第6页 / 共19页
web课程设计报告Word文件下载.docx_第7页
第7页 / 共19页
web课程设计报告Word文件下载.docx_第8页
第8页 / 共19页
web课程设计报告Word文件下载.docx_第9页
第9页 / 共19页
web课程设计报告Word文件下载.docx_第10页
第10页 / 共19页
web课程设计报告Word文件下载.docx_第11页
第11页 / 共19页
web课程设计报告Word文件下载.docx_第12页
第12页 / 共19页
web课程设计报告Word文件下载.docx_第13页
第13页 / 共19页
web课程设计报告Word文件下载.docx_第14页
第14页 / 共19页
web课程设计报告Word文件下载.docx_第15页
第15页 / 共19页
web课程设计报告Word文件下载.docx_第16页
第16页 / 共19页
web课程设计报告Word文件下载.docx_第17页
第17页 / 共19页
web课程设计报告Word文件下载.docx_第18页
第18页 / 共19页
web课程设计报告Word文件下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

web课程设计报告Word文件下载.docx

《web课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《web课程设计报告Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。

web课程设计报告Word文件下载.docx

卡片管理

3、用户留言管理

如下图所示:

留言管理

附:

鲜花网店系统的数据流图(DFD,非UML),如下图所示:

浏览鲜花购物车订单

鲜花信息表订单信息表

三、课题系统设计

1、系统架构设计(MVC)

系统采用MVC(Model-View-Controller)架构。

MVC应用程序由模型、视图、控制器这三个部分组成。

Event(事件)导致控制器改变模型或视图,或者同时改变两者。

只要控制器改变了模型的数据或者属性,所有依赖的视图都会自动更新。

类似的,只要控制器改变了视图,视图会从潜在的模型中获取数据来刷新自己。

MVC把一个应用的输入、处理、输出流程按照模型、视图、控制器的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

视图代表用户交互界面,对于网络应用来说,可以概括为HTML界面,但有可能为XML和APPLET,一个应用可能有很多不同的视图。

模型:

就是业务流程/状态的处理以及业务规则的制定,是MVC最主要的核心。

控制器可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户请求。

更新更新

获得数据获得数据

改变

改变改变

2、用户界面提前预览

在WindowsXP下用IE浏览器测试。

2.1系统前台

2.1.1前台预览

左侧是会员登陆界面和鲜花导购信息,用户可以按照用途、材料和节日等分类导航找到所需的鲜花;

右侧是各种商品的详细信息,显示了最新的鲜花商品。

录入商品类别和商品信息及上传图片后,以yaodi登陆,如下图所示:

前台主页(welcome.jsp)

2.1.2用户充值

充值功能是采用充值卡形式,充值卡在有效期内只能使用一次,不允许被次充值。

此功能的实现是在数据库的卡片表内设置了一个“是否有效”字段,每当用户进行充值,用户的账户余额改变的同时,数据库中此卡片信息中“是否有效”字段也被从“有效”改成“无效”。

这种同时操作数据库,是采用了事务(原子性操作)。

用户充值

2.1.3购物车

选择鲜花商品--->

订购--->

放入购物车--->

查看购物车,确定后就能填写订单了,购物车界面如下图所示:

购物车

2.2系统后台

后台包括:

用户信息管理、鲜花信息管理、订单管理、留言管理、充值卡管理五大模块。

具体又分为普通用户管理和管理员信息管理,鲜花的增删改查,订单的处理,生成充值卡,删除无效的充值卡,回复留言等功能。

2.2.1后台预览

管理员从左边导航进行花店的各项管理工作(部分功能待完善),包括:

用户信息管理、鲜花信息管理、订单管理、留言管理、充值卡管理。

以yingying登陆,如下图所示:

后台主页

2、页面迁移图

4、数据库设计

(1)用户信息表

字段名称

数据类型

长度

允许为空

是否为主键

含义

user_id

int

10

用户ID

username

varchar

40

用户名

truename

真实姓名

password

密码

address

200

地址

telephone

电话

postalcode

邮编

userrole

11

权限

zhuce_time

date

注册时间

advancePayment

float

(8,2)

账户余额

(2)鲜花信息表

id

鲜花ID

flowerName

20

鲜花名称

cailiao

材料

yongtu

用途

xingshi

形式

jieri

适合节日

briefInfo

100

简介

ifPreference

是否优惠

price

(5,2)

价格

preferencePrice

优惠价格

pictureSRC

图片路径

storeCount

库存量

createDate

创建日期

(3)卡片信息表

卡片ID

cardNumber

50

卡片账号

生成日期

deadline

截止日期

金额

sfyx

2

是否有效

(4)订单信息表

订单ID

orderNumber

订单号

receivePersonName

接收人姓名

receiveAddress

接收人地址

receivePostalcode

接收地邮编

receiveTel

接收人电话

bz

备注

ifConfirm

是否确认

confirmDate

确认时间

status

5

状态

totalPrice

总价格

(5)订单详细内容表

ID

flowerid

鲜花ID

discount

数量

oneprice

单价

(6)留言信息表

liuyanTime

留言时间

content

500

留言内容

huifu

回复内容

四、核心代码

1.生成卡片的servlet:

CreateCardServlet.java中的doPost()方法:

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("

UTF-8"

);

Stringprice1=request.getParameter("

price"

intshuliang=Integer.parseInt(request.getParameter("

shuliang"

));

Card[]cardlist=newCard[shuliang];

for(inti=0;

i<

shuliang;

i++){

Cardcard=newCard();

StringcardNumber="

"

;

Stringpassword="

StringcreateDate="

Stringdeadline="

intsfyx;

floatprice;

longfirst=(long)(Math.random()*Math.pow(10,5));

longtimeMillis=System.currentTimeMillis();

Datetoday=newDate(timeMillis);

longlast=(long)(Math.random()*1000);

cardNumber=Long.toString(first)+Long.toString(timeMillis)+Long.toString(last);

longpassword1=(long)(Math.random()*Math.pow(10,9));

password=Long.toString(password1);

createDate=today.toString();

intdeadlineyear=today.getYear()+1903;

intdeadlinemonth=today.getMonth()+1;

intdeadlineday=today.getDate();

deadline=Integer.toString(deadlineyear)+"

-"

+Integer.toString(deadlinemonth)+"

+Integer.toString(deadlineday);

sfyx=1;

price=Float.parseFloat(price1);

card.setCardNumber(cardNumber);

card.setPassword(password);

card.setCreateDate(createDate);

card.setDeadline(deadline);

card.setPrice(price);

card.setSfyx(sfyx);

cardlist[i]=card;

}

CardDAOdao=newCardDAO();

booleanflag=dao.insertCard(cardlist);

if(flag==true)

{

request.setAttribute("

cardinfo"

cardlist);

request.getRequestDispatcher("

common/successpage/insertCard.jsp"

).forward(request,response);

}else{

request.getRequestDispatcher("

common/errorpage/insert.jsp"

}

2.删除选择的所有用户的函数deleteUser(String)

publicbooleandeleteUser(Stringuserstr){

booleanresult=false;

Connectionconn=null;

PreparedStatementpsmt=null;

ResultSetrs=null;

String[]username=userstr.split("

'

try{

conn=DBConnection.getConnection();

conn.setAutoCommit(false);

Stringsql="

deletefromuserwhereusername=?

"

psmt=conn.prepareStatement(sql);

for(inti=0;

i<

username.length;

i++){

psmt.setString(1,username[i]);

psmt.addBatch();

}

int[]flag=psmt.executeBatch();

for(intj=0;

j<

flag.length;

j++){

if(flag[j]==0){

result=false;

break;

}

result=true;

}catch(SQLExceptione){

try{

conn.rollback();

}catch(SQLExceptione1){

e1.printStackTrace();

e.printStackTrace();

}finally{

conn.setAutoCommit(true);

}catch(SQLExceptione){

e.printStackTrace();

DBConnection.close(rs,psmt,conn);

}

returnresult;

3.根据不同的条件查询鲜花信息的函数selectFlowersByTJ

publicList<

Flower>

selectFlowersByTJ(Flowerflower){

List<

list=newArrayList<

();

Connectionconn=null;

PreparedStatementpsmt=null;

ResultSetrs=null;

try{

conn=DBConnection.getConnection();

StringBuffersql=newStringBuffer();

sql.append("

select*fromflowerwhere1=1"

if(flower.getFlowerName()!

=null&

&

!

flower.getFlowerName().trim().equals("

)){

sql.append("

andflowerName='

+flower.getFlowerName()+"

if(flower.getXingshi()!

flower.getXingshi().trim().equals("

andxingshi='

+flower.getXingshi()+"

if(flower.getCreateDate()!

flower.getCreateDate().trim().equals("

andcreateDate='

+flower.getCreateDate()+"

if(flower.getCailiao()!

flower.getCailiao().trim().equals("

andcailiao='

+flower.getCailiao()+"

if(flower.getYongtu()!

flower.getYongtu().trim().equals("

andyongtu='

+flower.getYongtu()+"

if(flower.getJieri()!

flower.getJieri().trim().equals("

andjieri='

+flower.getJieri()+"

sql.append("

orderbyid;

psmt=conn.prepareStatement(sql.toString());

rs=psmt.executeQuery();

while(rs.next()){

Flowerflower1=newFlower();

FlowerDAOdao=newFlowerDAO();

flower1=dao.selectFlowerByID(rs.getInt("

id"

list.add(flower1);

}catch(SQLExceptione){

e.printStackTrace();

returnlist;

}

五、经验总结

通过自己近一个月的动手操作,已基本实现了一个鲜花网店的各项功能,应该说收获了很多很实际的经验,融合了JavaWeb课本上的知识,对以后的学习和工作都挺有帮助。

而且体会到,任何网店的体系和功能都是差不多的,无论是做书店、水果店还是本报告中的鲜花店。

由于本人水平有限,WEB中的许多安全与效率的问题,并没有考虑到。

希望在以后的学习中,可以弥补这方面的缺陷。

其次,需要改进的地方,一个是UML,在报告里只用Word画了3个用例图,复杂的时序图没有画,今后需要进一步学习RetionalRose来辅助建模;

再就是MVC架构,只是画了解释性的示意图,没有真正用来开发程序,所以还是得继续体会学习MVC,特别是Struts这个框架,为以后的团队开发做好准备。

数据库的设计也还不够熟练,这里借用了MySQL的UI管理工具。

感谢老师的悉心教导,感谢自己终于把课程做出来了。

6、原创性声明

本web应用参考了“中国鲜花礼品网”,鲜花图片都是来源于此。

数据库的设计部分参考于网络资源,前台界面和后台界面系作者原创。

特此声明。

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

当前位置:首页 > 农林牧渔 > 林学

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

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