东软Javaee实训报告.docx
《东软Javaee实训报告.docx》由会员分享,可在线阅读,更多相关《东软Javaee实训报告.docx(21页珍藏版)》请在冰点文库上搜索。
东软Javaee实训报告
计算机科学与工程学院
专业方向实训报告
开课时间:
_14-15-2______
专业年级:
__网络工程xx级___
班级:
网络xxx
姓名:
xxxx
完成日期:
xxxx年xx月xx日
一、问题描述
本项目是一个针对IT类书籍的在线图书商城,包含各类IT类分前台(客户购买)和后台(管理员管理)两大部分。
客户可以分类浏览书籍,也可查找相关书籍,客户若想购买商品,须先登录系统。
管理员须登录才可进行先关操作,登陆后可进行图书的分类管理、图书管理及订单管理等操作。
本项目以MyEclipse作为为开发工具,采用Oracle数据库,Tomcat服务器,PL/SQLDeveloper作为Oracle客户端,用MVC模式、JDBC连接数据库完成逻辑层事物。
用HTML,CSS,Js,jQuery等技术写为静态页面。
代码间耦合性低,可扩展性强。
二、需求规格说明
本系统主要功能:
(1)前台(客户购买)部分:
1用户管理:
注册会员、登录、激活、退出、修改密码;
2分类显示:
显示所有1级和2级分类;
3图书显示:
按分类查询图书、通过关键字搜索图书、高级搜索图书、查看某本图书的详细等;
4购物车管理:
向购物车中添加图书、修改购物车中图书数量、删除购物车中图书、我的购物车;
5订单管理:
通过购物车中图书生成订单、查看我的订单、查看某个订单的详细、订单支付、确认收货、取消未付款订单。
(2)后台(管理员管理)部分:
1管理员:
管理员登录;
2分类管理:
查看所有分类、添加1级分类、添加2级分类、修改1级分类、修改2级分类、删除1级分类、删除2级分类;
3图书管理:
按分类搜索图书、高级搜索图书、添加新图书、查看图书详细信息、编辑图书、删除图书;
4订单管理:
按状态搜索订单、查看订单详细信息、取消订单;
三、设计说明
1、概要设计
本项目采用MVC模式,原理如下图:
用户界面层业务处理层数据存储层
用户/管理员提交请求向数据库提出请求
反馈结果返回数据
功能模块:
2、数据库设计
网上书城的全局E-R模型:
根据设计规划的主要实体有:
用户、图书分类、图书、购物车、订单、管理员。
各个实体具体的描述属性图如下(因属性过多,这里不再一一给出)。
1)用户实体
2)图书分类实体
3)图书实体
4)购物车实体
购物车其实是购物项的集合!
即多个购物项构成了购物车。
5)订单实体
订单其实是订单项的集合。
6)订单项实体
数据库表的设计:
(1)t_user
字段名称
数据类型
主键
是否为空
说明
uid
char(32)
Y
N
主键
loginname
varchar(50)
N
N
登录名
loginpass
varchar(50)
N
N
登录密码
email
varchar(50)
N
N
邮箱地址
status
boolean
N
N
是否激活
activationCode
char(64)
N
N
激活码(唯一)
(2)t_category
字段名称
数据类型
主键
是否为空
说明
cid
char(32)
Y
N
主键
cname
varchar(50)
N
N
分类名称
pid
char(32)
N
Y
父分类ID
desc
varchar(100)
N
Y
分类描述
orderBy
int
N
Y
序号,用来排序
(3)t_book
字段名称
数据类型
主键
是否为空
说明
Bid
char(32)
Y
N
主键
bname
varchar(200)
N
N
书图名称
author
varchar(50)
N
Y
作者
price
decimal(8,2)
N
Y
定价
currPrice
decimal(8,2)
N
Y
当前价
discount
decimal(3,1)
N
Y
折扣
press
varchar(100)
N
Y
出版社
publishtime
char(10)
N
Y
出版时间
edition
int
N
Y
版次
pageNum
int
N
Y
页数
wordNum
int
N
Y
字数
printtime
char(10)
N
Y
印刷时间
booksize
int
N
Y
开本
paper
varchar(50)
N
Y
纸质
cid
char(32)
N
Y
所属分类ID
image_w
varchar(100)
N
Y
大图路径
image_b
varchar(100)
N
Y
小图路径
orderBy
int
N
Y
序号,用来排序
(4)t_cartitem
字段名称
数据类型
主键
是否为空
说明
cartItemId
char(32)
Y
N
主键
quantity
int
Y
N
数量
bid
char(32)
Y
N
图书ID
uid
char(32)
Y
N
用户ID
orderyBy
int
Y
N
序号,用来排序
(5)t_order
字段名称
数据类型
主键
是否为空
说明
oid
char(32)
Y
N
主键
ordertime
char(19)
Y
N
下单时间
total
decimal(10,2)
Y
N
合计金额
status
int
Y
N
订单状态
address
varchar(1000)
Y
N
收货地址
uid
char(32)
Y
N
用户ID
(6)t_orderitem
字段名称
数据类型
主键
是否为空
说明
orderItemId
char(32)
Y
N
主键
quantity
int
Y
N
数量
subtotal
decimal(8,2)
Y
N
小计
bid
char(32)
Y
N
图书ID
bname
varchar(200)
Y
N
图书名称
currPrice
decimal(8,2)
Y
N
图书当前价
image_b
varchar(100)
Y
N
图书小图路径
oid
char(32)
Y
N
所属订单ID
(7)t_admin
字段名称
数据类型
主键
是否为空
说明
adminId
char(32)
Y
N
主键
adminname
varchar(50)
Y
N
管理员名称
adminpwd
varchar(50)
Y
N
管理员密码
四系统实现
(1)系统主界面:
主界面左边是一些图书列表(选项连接),左上方是登录注册按钮,中间上方是搜索栏及高级搜索连接,用户可根据需要查看图书信息或登录后购买图书。
(2)模块一:
用户模块
1、用户注册
注册用户是构成网站主体的一个重要组成部分,网站设置注册用户的目的之一在于方便网站信息的管理
2、用户登录:
在首页点击“登录”链接就可以来到登录页面,用户名不为空,长度在2到15位之间;密码不为空,长度在2到15位之间;验证码不能为空。
登录表单校验使用的JQuery完成,其中用户名是否存在,以及验证码是否正确需要使用JQuery的ajax()向服务器发送异步请求。
用户登录成功后,会回到首页。
这时在首页会显示当前用户的名称,以及“我的购物车”、“我的订单”、“修改密码”、“退出”链接。
也就是说,这几个功能只能登录用户才能使用,而游客是无法使用的。
3、修改当前用户密码
表单验证:
原密码不为空,新密码不为空,确认密码不为空且与新密码一致。
表单校验使用JQuery完成。
其中原密码和验证码是否正确,需要异步访问服务器,这里使用的是JQuery的ajax()完成的。
4、退出,点击左上角退出即可。
(3)模块二:
图书模块
1、图书列表:
主页左边有分类列表,客户可以根据列表查看图书列表,也可以通过搜索栏查看相应图书。
搜索所得图书信息列表
根据左边列表所得图书
4、图书详情
点击某图书,即可得到相应的详细信息,用户可在此将图书加入购物车。
5、高级搜索:
填入部分图书信息,点击搜索,即可得到相应信息。
获得该信息类的图书信息
(3)模块三:
购物车模块:
点击购物车,会出现相应信息。
选择结算即可
(4)模块四:
管理员
1、管理员登录,输入信息与数据库一致,就进入管理员系统首页,否则回到当前登录页面
2、管理员首页:
3、分类管理:
管理员可点击相应连接,可添加、修改、删除分类;
/
4、比如添加二级分类,其他操作界面不再一一列举;
5、图书管理,点击添加图书或高级搜索,可以添加图书信息和修改某些图书的信息;
6、添加新图书操作界面,其他操作类似,这里不再一一展示了。
算法实现
部分相关Service方法
返回值
方法名
功能
参数说明
True/false
ajaxValidateLoginname()
用户登录功能
Username,password
True/false
ajaxValidateEmail()
验证邮箱是否注册
Email
空
UserSelectall()
查看用户资料
Usename
True/false
updateUser()
修改用户资料
Usenaid
相关DAO
方法名
功能
Loginname()
从数据库中得到数据与页面的用户名及密码进行对比验证
Email()
完成对用户名密码邮箱等信息的验证并将信息插入到数据库中
UserSelectall()
查询并调取数据库中的客户资料
相关Servlet
方法名
功能
doPost()
登录功能注册验证功能
doGet()
查看用户资料(将从数据库中提取的信息传给页面)
五.总结体会
通过开发javaweb项目,我较全面的掌握了JAVA的基本知识和编程技巧,并在开发过程中我的JAVA开发能力得到了进一步的提高。
如:
更进一步的深入了解MVC设计模式,软件三层框架;SQL语言的使用。
在开发过程中我学到了一些经验:
系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。
我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,做好数据库设计工作,写出相关的开发文档等。
然后再开始编写程序代码,这样做到每写一步代码心底有数,有条不絮。
当然也有些还需待继续深入地方如:
控件的应用等。
此外,我还觉得,我个人在这次设计中走了很多弯路。
主要是因为平时很少接触软件开发工作,在应用方面缺乏经验,以后还需要更多的努力。
对我来说,这次设计的本身所产生的影响,还远远没有结束,我从本次毕业设计中学到了许多课本上没有的知识。
通过自己的学习和努力;通过老师的指导和教育,使我不仅仅在知识水平和解决实际问题的能力上有了很大的提高。
还从思想的深处体会到,要把自己的所学变成现实时所将面对的种种难题。
最后感谢东软的全威老师。