以前做的JavaEE Web项目展示

以前做的JavaEE Web项目展示,第1张

以前做的JavaEE Web项目展示

基于JSP的在线书店

  1. 功能详细描述
    1.1. 客户端模块功能描述
    1.1.1. 客户注册功能
    本系统需要实现用户注册功能,用户进入注册界面,填写注册所需信息后完成注册,注册完成后需要进行账户的激活,系统后台会向用户填写的邮箱中发送一封激活邮件,用户在邮箱中点击激活链接完成账号激活后才能进行登录。注册界面如下所示。

1.1.2. 客户登录功能
用户激活账号后,才可以登录网站,用户登录时需要输入用户名和密码进行登录,并且可以选择是否允许自动登录和是否允许记住用户名。用户登录后在网站的右上方会根据用户注册时填写的昵称显示欢迎消息。

1.1.3. 显示热门和最新图书
用户打开网站首页后(不管是否登录),可以在首页看到推送的热门图书和最新图书,具体界面如下图所示。

1.1.4. 按照分类查询图书
首页的导航栏中有图书的分类,用户点击这些分类可以查询到相应分类的图书,在此查询现实中应用到了分页的实现。界面如下图所示。

1.1.5. 查看图书详细信息
用户从分类查询页面或者点击首页的具体图书,可以查看具体图书的详细信息,在图书的详细信息页中可以看到图书的价格,是否在库,以及图书的内容简介,如果图书的库存状态显示为在库,则可以把图书加入到购物车。

1.1.6. 加入购物车
用户把图书加入到购物车后,可以点击购物车选项,查看购物车中的图书商品,购物车的实现使用了Session,能在一个会话时保存用户想要购买的图书商品信息。

1.1.7. 显示订单详情
在购物车页面,用户点击提交订单按钮,会将订单信息进行提交,此时系统会将订单信息保存到数据库,页面跳转到支付界面,此时需要用户填写收货地址、收货人、联系方式和选择支付方式,然后点击确认订单按钮,就会跳转到支付模块,进行图书商品的支付的 *** 作。

1.1.8. 查看我的订单
如果用户在提交了订单以后并未选择支付,则在下次登录时可以点击我的订单选项,查看订单,然后点击付款选项,跳转到支付界面进行支付。

1.1.9. 关于权限控制
本系统中用过滤器的方式实现了权限控制,验证用户的登录状态,确保用户只有在登录后才能进行提交订单,查看订单以及进行支付的 *** 作。
1.2. 系统管理员模块功能描述
1.2.1. 管理员登录功能
管理要想登录后台系统进行管理员的 *** 作首先需要进行登录,在后台登录界面输入管理员的用户名和密码登录后台系统。后台登录界面如下图所示。

登录后即进入管理员后台 *** 作界面,管理员共有五个功能管理模块,分别是分类管理、商品管理、订单管理、顾客用户管理和管理员用户管理,如下图所示。

1.2.2. 分类管理
在顾客用户模块能够按照图书分类查询图书,这里的图书分类是能够让管理员进行动态管理员,在管理员界面点击分类管理,就可以进行分类管理,可以对分类信息进行进行添加删除,但是要注意,只有在该分类下没有图书时才能进行删除 *** 作。 *** 作界面如图所示。

1.2.3. 图书商品管理
管理员用户能够对图书商品进行管理,主要包括添加图书信息、编辑图书信息、删除(下架)图书。 *** 作界面如下图所示。


1.2.4. 订单管理
管理员用户能够对顾客用户的订单进行 *** 作,包括查询所有订单信息,查看未付款的订单信息,查看已付款的订单信息,查看已发货的订单信息,查看已完成的订单信息,并且可以对订单进行 *** 作。
查看订单详情,可以查看某个订单中的具体订单项, *** 作界面如下图所示。

付款 *** 作,对未付款的订单点击付款按钮后改变其状态, *** 作界面如下图所示。

发货 *** 作,对已付款未发货的订单进行发货 *** 作,点击发货按钮,选择快递公司进行发货 *** 作。


完成订单 *** 作:对已发货的订单,如果顾客用户确认收货后可以进行完成订单的 *** 作,点击完成按钮进行 *** 作,, *** 作界面如下图所示。

查看已完成的订单:点击已完成的订单的选项,可以查看已经完成的订单信息, *** 作界面如下图所示。

1.2.5. 顾客用户管理
管理员用户可以对顾客用户的账号进行管理,包括编辑用户信息,删除用户, *** 作界面如下图所示。

1.2.6. 管理员用户管理
管理员用户可以对管理员用户的账号进行管理,包括编辑用户信息,删除用户, *** 作界面如下图所示。

  1. 开发环境
    *** 作系统:windows10 pro
    集成开发环境:eclipse
    服务器:Tomcat v8.5
    数据库:MySQL 8.0;Redis 2.6.12
  2. 主要的设计类图
    本项目采用了MVC的设计模式,即,模型(Model)、视图(View)和控制器(Controller);而在项目的架构方面,采用了标准的三层架构的组织方式,即,表现层(UI)、业务层(BLL)和数据访问层(DAO)。
    2.1. 模型层(数据访问层)
    模型层,也就是和数据库相关的那些,包括项目中的dao、domain两个包和c3p0-config.xml数据库连接池配置文件及其所属的代码,对应着三层架构中的数据访问层。该层类图如下所示。
    2.1.1. dao包下的类的类图

2.1.2. domain包下的类的类图

2.2. 视图层(表现层)
视图层,也就是前台的页面或者说是客户端展现给用户看的东西,在项目中表现为在jsp页面中负责接收返回信息,视图展示,对应着三层架构中的表现层。
2.3. 控制器层(应用层)
控制器层,也就是servlet以及service等具体的业务逻辑,在项目中表现为web包下servlet包中的类和service包下的类,对应着三层架构中的
2.3.1. servlet包下的类

2.3.2. service包下的类

2.4. 其他包下的类
2.4.1. utils包下的类
utils包下主要是一些工具类,能够简化开发的业务逻辑的代码,提高开发效率。

2.4.2. filter包下的类
filter包下的类主要为过滤器类,目的是过滤请求,实现请求的拦截或者放行,添加新的功能,以便更好的为业务逻辑的实现进行服务。通过编写过滤器类,可以实现用户的登录验证,权限控制,以及解决客户端向服务器传递数据的乱码问题。

2.4.3. base包下的类
base包下只有一个类,即baseServlet类,这个类是一个通用的Servlet,继承自HttpServlet,目的是为了减少Servlert的数量,正常情况下,对一张表中的数据进行增删改查每一个 *** 作都需要建立一个servlet,但有了这个通用的servlet,就可以让其他的servlet继承这个类,只用编写不同的方法,原理是从客户端向服务端发起请求,每次都要传递额外的键值对的数据method=””,服务端获取到method对应的内容之后,通过判断不同的内容调用不同的功能。

  1. 数据持久层类图
    数据持久层类图,指的是与项目中的实体类对应的,数据库中表的设计的类图,具体类图如下图所示。

由图中可以看出,数据库中共有六张表分别是admin表,存储管理员用户信息,user表,存储顾客用户信息,orders表,存储订单信息,orderitem表,存储订单项的信息,product表,存储具体的图书商品的信息,category表,存储图书涉及的分类的信息。
此外,在设计数据库时,表与表之间是存在约束关系的,比如,orders表中的外键uid参考的是user表的主键uid,同时它是user表的主键;orderitem表中的外键oid参考的是order表的主键oid;
4. 主要的业务逻辑处理流程图
4.1. 顾客用户业务逻辑流程图

4.2. 管理员用户业务逻辑流程图

  1. 事务属性设定方法及其设定依据说明
    事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列 *** 作,要么完全地执行,要么完全地不执行。事务的四个特性(ACID),分别是原子性、一致性、隔离性和持久性。
    在本项目中的提交订单中使用了事务,用户点击提交订单,将购物车中的数据以订单/订单项形式保存下来,清空购物车,所以保存订单和保存订单项的 *** 作yao同时进行,要么同时成功,要么同时失败。

保存订单:
为订单表中插入一行数据,描述本次交易,这行数据部分数据是通过程序赋予,部分数据来自购物车的,部分数据来自session中的用户。
保存订单项:
向订单项表中插入数据,描述当前订单的详细的购买信息,部分数据来自于购物车,部分数据需要通过程序赋予。
提交订单时,订单以及订单项必须同时成功,因此需要用到事务来实现。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5609432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存