JSP+Access 网上购物系统 第4页
图3.2应用服务器之上采用MVC开发的逻辑示意图
Control
服务控制
View
显示方式
Model
业务逻辑模型
输入请求
输出
Html
其他 图3.3 MVC业务流程示意图
通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:
Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。
View(视图)层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。
Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。
通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。
四 系统的功能和流程分析
4.1网站的功能分析
经过前期的深入调查和研究,总结出该平台需要完成的一些具体功能,分析如下:
用户管理 能够完成用户基本信息录入的注册和用户基本信息的修改。
管理员管理 能够完成管理员对网站的商品信息管理(商品添加、商品审查)、会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)的功能。
搜索功能 能过电子商品的名称进行搜索。
查询功能 能够通过查看购物车对所选商品进行确定、挑选。
4.2 平台功能模块的设计分析
在平台功能的分析基础上,得到本平台的功能模块图如下:
网上购物平台
index.jsp
。
商品修改
用户管理
管理进入
新闻管理
用户注册
商品管理
商品添加
会员管理
广告链接
新闻修改
新闻添加
广告设置
链接管理
商品名称
用户修改
会员删除
商品搜索
网站布局
图4.1 平台购物模块图
4.3 系统流程分析
4.3.1前台购物流程
浏览商品
选择商品
订购商品
去购物车
去收银台
提交订单
未注册用户
已登录注册用户
未登录注册用户
注册
登录
图4.2 前台购物流程图
注册入口
必选项为空
用户名有效?
2次输入密码是否一致?
密码长度符合要求?
E-mai地址有效效?
其他信息有效
注册成功
4.3.2注册功能流程
图4.3 注册功能流程图
注册的具体实现为:
点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E_mail,地址,电话,真实,姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。
4.3.3商品搜索流程
开始搜索
输入条件
搜索结果
查看商品
购物车
下订单
续搜索
是
否 图4.4 商品搜索流程图
商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。
4.3.4用户登录流程
用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。
首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的性别、E-MAIL、电话号码等。
登录入口
取得用户名和密码
将UserID存入session中
查询用户是否存在
核对密码是否正确
登录成功
是
是
否
否
4.5用户登陆流程图
商品管理
查询商品
修改删除
满意否
返回
添加商品
是
否
4.3.5商品管理流程
图4.6商品管理流程图
在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。
4.3.6购物车流程
购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。
1.列出商品的列表,使用户能够自由选择所需要的商品。
2.当用户在点击“添加到购物车”的链接时,执行如下功能:
购物车
查看商品
满意吗
下订单
调整商品
是
否
检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。
图4.7购物车流程图
五 系统功能的具体实现
5.1系统数据库表的基本设计
在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。
数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。
从实际出发,经过仔细地设计,得到各表的设计如表5.1——5.9所示。
表5-1 商品信息表hw
字段
字段名
类型
宽度
小数位
索引
可否为空
Hw_id
商品编号
自动编号
是
否
Hw_name
商品名称
文本型
50
否
Hw_cash
商品价格
数值型
18
2
Hw_content
商品信息
备注型
255
Hw_pic
商品图片
文本型
255
Hw_buys
商品数量
数值型
18
Hw_date
商品日期
日期型
[说明]对于商品信息表,因为经验不足,我将其关键字段hw_id商品编号采用的是Access数据库中的自动编号,虽然也确定了商品信息的唯一性,但不具备直观的特点,在实际应用中最好是将其设置一个命名规则,管理人员在添加商品的时候能够自动产生一个有一定规则和一定意义的命名规则,方便管理人员对其进行管理和文护,例如对于手机类商品可将其编号设置为mobile+型号+添加日期,这样更容易对商品进行管理。Hw_pic字段代表图片,但在这里存放的只是它的路径所以应该使用文本类型。
表5-2 会员信息表member
字段
字段名
类型
宽度
小数位
索引
可否为空
User_id
会员编号
自动编号
是
User_name
会员帐号
文本型
50
否
User_pass
会员密码
文本型
50
否
User_adds
会员地址
文本型
255
User_mail
会员E_Mail
文本型
50
User_tel
会员电话
文本型
50
User_regtime
注册时间
日期型
User_postcode
邮政编码
文本型
50
User_namec
会员姓名
文本型
50
[说明]对于会员信息表,会员编号也要有一定的命名规则,另外会员帐号的命名规则也有一定要求,如必须以字母开头,不能有特殊字符,长度大于4个字符小于16个字符等等,还有一个需要注意的是用户密码,由于Access数据库本身不提供特殊字段的加密,用户注册以后注册密码是以明码形式存放在数据库中,这对系统来说是极不安全的,因此需要我们用一些特殊工具来对其进行加密。
表5-3购物车表basket
字段
字段名
类型
宽度
小数位
索引
可否为空
Basket_id
购物车编号
自动编号
是
否
Hw_id
商品编号
自动编号
是
否
User_name
会员帐号
文本型
50
否
Basket_count
商品数量
数值型
18
Basket_date
购物时间
日期型
Basket_check
是否结帐
是/否
Hw_name
商品名称
文本型
50
Hw_cash
商品价格
数值型
18
2
Sub_number
订单编号
文本型
50
是
[说明]购物车表则是系统中与其他几个表关系最多的一个表了,它包含了商品表,会员表中的几个重要字段,是我们进行最后购物统计的主要依据,我们在确定购买一样商品的时候,系统将数据写入购物车表,在用户确定去结帐之前basket_check值为否,确定之后值变为是,一个用户可能对应多个basket记录,但在统计的时候,仅对basket_check为真的记录进行统计,这样就可以避免造成统计错误。
表5-4管理员表admin
字段
字段名
类型
宽度
小数位
索引
可否为空
Admin_id
管理员编号
自动编号
是
Admin_name
管理员帐号
文本型
50
Admin_pass
管理员密码
文本型
50
[说明]该表和会员表一样存在字段的命名规则的要求,出于安全考虑对于管理员帐号发放应该谨慎,管理人员数量一定要控制,越少越安全,在实际应用中,我们还要对整个数据库进行加密,以防止系统重要数据泄漏。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页