JavaWeb实习项目

您所在的位置:网站首页 web前端设计思路 JavaWeb实习项目

JavaWeb实习项目

2024-07-09 06:33| 来源: 网络整理| 查看: 265

关于这个项目

在这里插入图片描述

该项目是我们学校安排生产实习时,公司提供的项目实践内容。在进行为期四天有关MySQL、Java、Servlet、html、jsp、ET等知识的学习后,被要求完成的内容。一开始想跟着老师的进度进行设计,但是老师讲的很快,只跟到了注册、登录这一部分功能,后面只能望其项背。

后来在b站看到有up对相关知识点进行了详细的讲解,并讲解了这一项目的实现过程,还提供了项目源码,我便下载下来进行学习。很快就掌握了这一项目的代码实现。但是这份源码实现效果和老师对我们的要求还是有出入的,比如没有实现类目管理的唯一性约束、没有在注册和修改密码时进行确认密码判断、没有对邮箱、电话、单价、库存这些变量的格式进行有效性约束、没有在右上角显示用户登录情况…于是自己对代码重新修改,做出完善。将整个项目的代码和数据库内容放在文末的百度网盘链接下。

引言 概述

伴随着计算机科学技术的不断发展和创新,基于互联网的各类应用也逐渐引起人们的重视。网上蛋糕商城系统是通过互联网上传相关种类的蛋糕,实现顾客远程选购蛋糕的功能。顾客可以随时浏览店铺的新鲜蛋糕产品,这是对传统产品销售的一种发展和革新。

本文主要对网上蛋糕商城的需求分析、实现方案、系统设计及测试等进行描述,项目在使用JSP、Servlet、MySQL的开发基础上,以Eclipse作为开发工具,实现网上蛋糕商城系统的各类功能模块。

需求分析

得益于互联网的快速发展,如今的市场销售已经不再拘泥于单纯的门店、商场形式,全球范围内电子商务开始占据市场主导地位,尤其是亚洲,它作为电子商务的新星,市场份额相对较大,同时也具有很大潜力。在这样的大环境下,网上蛋糕商城在蛋糕行业的发展中不可或缺。和传统的蛋糕售卖形式相比,这种新兴的蛋糕销售方式具备许多优越价值:

一是比传统的实体销售成本有所降低;

二是销售条件不受时间和空间限制,可以节省昂贵的店面租金用以提升产品本身的质量;

三是可以利用网络实现免费广告宣传,新品、促销等信息可以利用网络在新老顾客之间迅速传播;

网上蛋糕商城的主要功能是利用网站作为销售平台,顾客以此浏览蛋糕信息,提交订单订购蛋糕,实现在线交易。

网上蛋糕商城项目

该项目主要讲解如何建设B2C的网上购物系统,满足以下需求:

统一友好的操作界面,具有良好的用户体验。商品分类详尽,可按不同类别分别查看商品信息。可通过条幅展示推荐商品。展示热销推荐和新品推荐。用户注册、验证和登录功能。通过蛋糕名称模糊搜索相关商品。通过购物车一次购买多件商品。提供简单的安全模型,用户必须登录后才可以购买商品。用户选择商品后可以在线提交订单。用户可以查看自己的订单信息。设计网站后台,用于管理网站的各项基本数据,包括订单管理、商品管理、用户管理以及商品类目。系统运行安全稳定且响应及时。 项目设计 设计思路

系统设计基于Windows10/11操作系统,在开发方面,我们使用的技术有JSP、Servlet、MySQL。数据库选择了开发灵活且容易维护的MySQL,它具有方便快捷、使用灵活的特点,实际应用较广泛;数据库的连接方式为JDBC方式,可以完成数据库的查询、添加、修改、删除等功能。另外JSP拥有“一次编写、各处运行”的特点,Servlet又可以与Web

服务器直接进行交互,使用JSP+Servlet进行网页设计和服务器交互,再加上MySQL灵活易维护在开发中的优势,因此三者是开发轻平台的最佳组合。

模块功能介绍

网上蛋糕商城主要功能如下:

前端部分

①用户注册功能:对于网上蛋糕商城,首次进入网站的用户需要先注册帐号。

②用户登录功能:用户注册成功之后,便可以在网上蛋糕商城前台网站进行登录操作。

③购物车功能:购物车模块功能包括管理购物车中的商品和生成订单信息,本商城购物车功能是基于Session实现的,Session充当了一个临时信息存储平台,当其失效后,保存的购物车信息也将全部丢失。

在蛋糕商城中,已登录用户浏览商品详细信息并单击页面的“加入购物车”按钮,可以将该商品放入购物车内。

如果想删除购物车中的商品,单击购物车中某个商品后面的“删除”按钮,便可以将该商品从购物车中清除。

④商品分类查询功能:根据特点及制作材料的不同,可以将蛋糕分为不同的类型,蛋糕商城应当提供商品查询功能,以满足用户挑选需求。例如,单击导航栏中的商品分类,选择分类,可以展示该分类下的所有商品。

⑤商品搜索功能:用户在浏览商品时,可以通过导航栏选择查看不同分类的商品,但是由于蛋糕商城的商品数量众多,并不方便用户快速查找和购买意向商品,因此商城还需要提供商品搜索功能。搜索功能可以让用户根据商品名称模糊查询商品,满足用户快速搜寻意向商品的需要。

后台部分

①商品管理功能:对蛋糕信息的管理,如蛋糕的名称、蛋糕的价格、蛋糕的分类等,通过后台系统中的商品管理模块可以实现蛋糕信息在前台网站上的动态展示。商品管理模块主要实现的是添加商品信息、编辑商品信息、删除商品信息、加入推荐条幅、加入热销推荐、加入新品推荐6个功能。

②订单管理功能:网上蛋糕商城中的订单管理指的是对订单信息的管理,订单管理模块可按订单的状态查询订单,订单状态包括未付款、已付款、配送中、已完成4个状态。管理员可以在订单管理模块进行发货和删除订单等操作。

③客户管理功能:网上蛋糕商城中的客户管理指的是对客户信息的管理,如收货人、收货电话、收货地址等。客户管理模块主要功能包括添加客户、修改客户信息、删除客户和重置客户密码。

④商品类目管理功能:主要功能包括添加商品类目、修改商品类目和删除商品类目。超级管理员进入后台管理系统后,单击导航栏中的“商品类目管理”,即可进入商品类目管理模块的主页面。

模块结构图

根据系统的功能分析,可以画出各模块结构图:

①管理员模块:

(图2.3.1 管理员模块结构图)

(图1 管理员模块结构图)

②订单模块:

(图2.3.2 订单模块结构图)

(图2 订单模块结构图)

③商品模块:

在这里插入图片描述

(图3 商品模块结构图)

④用户模块:

在这里插入图片描述

(图4 用户模块结构图)

功能展示

1)前台:

①首页:

• 首页包含最上方菜单导航栏,包含商品分类、热销、新品、登录、注册选项;另外具备搜索和购物车功能,可以通过搜索关键词的方式找到想要购买的商品,加入购物车,可以在购物车内查看并结算。

在这里插入图片描述

(图5 首页)

②用户注册页面:

• 新用户注册需要输入用户名、邮箱及密码(必要信息);并填写收货人、收货人联系电话以及收货地址。

输入密码和确认密码不同会进行报错,需要重新填写。同样,注册也进行了唯一性约束,不能注册同一个用户。

在这里插入图片描述

(图6 用户注册)

③用户登录页面:

• 用户可以通过注册时的用户名/邮箱+密码进行登录。

在这里插入图片描述

(图4.1.3 用户登录)

④商品分类及热销商品展示页面:

• 菜单栏点击商品分类下拉可以查看蛋糕店所有商品的分类情况。点击某个类目会跳转至对应页面

在这里插入图片描述

(图4.1.4-1 商品分类)

• 菜单栏点击“热销”,用户可以浏览蛋糕店本季的所有热销商品,作为本次购买的参考。

在这里插入图片描述

(图4.1.4-2 热销商品展示)

⑤新品商品展示页面:

• 菜单栏点击“新品”,用户可以浏览蛋糕店近期推出的所有新品,进行加购。

在这里插入图片描述

(图4.1.5 新品商品展示)

⑥购物车页面:

• 菜单栏点击购物车,可以查看已经加购的商品,页面显示加购商品名称、单价、数量以及订单总金额,可以对单个商品的数量进行增加、减少、删除操作。确认无误之后可点击“提交订单”。商品数量为1时,点击减少会提示是否删除商品。

在这里插入图片描述

(图4.1.6 购物车页面)

⑦提交订单页面:

• 购物车页面点击“提交订单”之后进入订单页面,再次确认收获信息之后选择支付方式,核对支付总金额,点击“确认订单”即可。

在这里插入图片描述

(图4.1.7 提交订单页面)

2)后台:

①订单管理页面:

后台管理员可以查看全部订单状态及详细信息,包括未付款、已付款、配送中、已完成四种订单。

在这里插入图片描述

(图4.2.1 订单管理页面)

②客户管理页面:

后台管理员可以查看全部已注册客户的详细信息,可以对已有客户进行密码重置、信息修改、删除等操作,还可以完成新客户的添加。这里也对管理员行为进行约束,管理员不能查看到用户密码

在这里插入图片描述

(图4.2.2 客户管理页面)

③商品管理页面:

后台管理员可以对全部商品进行管理除了基本的删除、修改之外,还可以将商品加入或移除条幅/热销/新品推荐。

在这里插入图片描述

(图4.2.3 商品管理页面)

④商品类目管理:

后台管理员可以对商品分类系列进行删改操作。这里对类目增加、修改也进行了唯一性约束,不能添加相同类目。在与数据库连接的过程中,如果对应类目下有产品,是不能进行删除类目操作

在这里插入图片描述

(图4.2.4 商品类目管理页面)

项目描述

项目文件如下,可以直接下载,期限永久。

链接:https://pan.baidu.com/s/1eYRg7V7KiPp-XBAljSy8qw?pwd=lwdg 提取码:lwdg –来自百度网盘超级会员V3的分享

使用方法

下载好文件并解压,然后在MySQL可视化管理器中新建一个数据库,命名为cakeshop,运行项目文件夹下数据库备份里面的.sql文件,刷新数据库列表,就可以看到cakeshop下面已经添加好对应的数据表。

然后打开eclipse,导入项目,右键项目名->Build Path,把Jre和服务器都配置成自己电脑上的版本。

然后打开src里面的.xml文件,把里面的URL、用户名和密码更改为自己的,就可以运行了。

有什么疑问可以直接在评论区提出,我看到就会回复。

代码详解

最后附上自己写的一些注释,便于理解项目代码。这里只写了servlet里面的内容,有关webcontent里面的jsp文件可以自行结合网页展示的内容去理解。

管理员功能 管理员对商品处理 AdminGoodsAddServlet 管理员添加商品

映射到URL路径/admin/goods_add上

AdminGoodsDeleteServlet 管理员删除商品

映射到URL路径/admin/goods_delete上

AdminGoodsEditServlet 管理员编辑商品

映射到URL路径/admin/goods_edit上

用于处理管理员编辑商品的请求。它解析请求中的文件上传项和表单字段,并根据需要将文件存储到指定路径。然后,更新商品信息并将请求转发到商品列表页。

AdminGoodsEditshowServelt 显示管理员编辑商品的页面

映射到URL路径/admin/goods_editshow上

用于显示管理员编辑商品的页面。它根据商品ID获取商品信息,并将商品对象存储到请求属性中,然后将请求转发到编辑商品页面,以便管理员进行编辑操作。

AdminGoodsListServlet 管理员查看商品列表的页面

映射到URL路径/admin/goods_list上

用于显示管理员商品列表的页面。它根据请求参数获取推荐类型和页码信息,并调用商品服务的方法获取相应的商品列表数据。然后,将商品列表数据和推荐类型存储到请求属性中,最后将请求转发到商品列表页面,以便管理员查看商品列表。

AdminGoodsRecommendServlet 管理员对商品进行推荐或取消推荐

映射到URL路径/admin/goods_recommend上

用于处理管理员对商品进行推荐或取消推荐的操作。它根据请求参数获取商品ID、操作方法和推荐目标类型,并调用商品服务的方法进行相应的操作。然后,将请求转发到商品列表页面,以便管理员查看更新后的商品列表。

管理员对订单处理 AdminOrderDeleteServlet 管理员删除订单

映射到URL路径/admin/order_delete上

用于处理管理员删除订单的操作。它根据请求参数获取订单ID,并调用订单服务的方法进行删除操作。然后,将请求转发到订单列表页面,以便管理员查看更新后的订单列表。

AdminOrderListServlet 管理员查看订单列表

映射到URL路径/admin/order_list上

用于处理管理员查看订单列表的操作。它根据请求参数获取订单状态和页码,调用订单服务的方法获取相应页码的订单列表,并将订单状态和订单页对象设置为请求属性,然后将请求转发到订单列表页面,以便管理员查看订单列表。

AdminOrderStatusServlet 管理员更新订单状态的操作

映射到URL路径/admin/order_status上

用于处理管理员更新订单状态的操作。它根据请求参数获取订单ID和新状态,调用订单服务的方法更新订单状态,然后将响应重定向到订单列表页面,以便管理员查看更新后的订单列表。

管理员对商品类型处理 AdminTypeAddServlet 管理员添加商品类型

映射到URL路径/admin/type_add上

用于处理管理员添加商品类型的操作。它根据请求参数获取商品类型的名称,调用商品类型服务的方法添加新的商品类型,然后将请求转发到商品类型列表页面,以便管理员查看更新后的商品类型列表。

AdminTypeDeleteServlet 管理员删除商品类型

映射到URL路径/admin/type_delete上

用于处理管理员删除商品类型的操作。它根据请求参数获取商品类型的ID,调用商品类型服务的方法删除对应的商品类型,并根据删除操作的结果设置相应的提示消息,然后将请求转发到商品类型列表页面,以便管理员查看更新后的商品类型列表,并显示相应的提示消息。

AdminTypeEditServlet 管理员编辑商品类型

映射到URL路径/admin/type_edit上

用于处理管理员编辑商品类型的操作。它根据请求参数获取编辑后的商品类型信息,调用商品类型服务的方法更新对应的商品类型,然后将请求转发到商品类型列表页面,以便管理员查看更新后的商品类型列表。

AdminTypeListServlet 管理员查看商品类型列表

映射到URL路径/admin/type_list上

用于处理管理员查看商品类型列表的操作。它调用商品类型服务的方法获取商品类型列表,将列表存储为请求属性,然后将请求转发到商品类型列表页面,以便管理员查看商品类型列表。

管理员对用户处理 AdminUserAddServle 管理员添加用户的操作

映射到URL路径/admin/user_add上

用于处理管理员添加用户的操作,他根据请求参数获取用户类型的名称,调用用户类型服务的方法来注册用户。如果用户添加成功,即用户名和邮箱没有重复,将请求转发到用户列表页面,以便管理员查看添加用户后的用户列表。

AdminUserDeleteServlet 管理员删除用户

映射到URL路径/admin/user_delete上

用于处理管理员删除用户的操作。它从HTTP请求中获取要删除的用户的ID,调用用户服务的方法来删除用户,根据删除结果进行相应的操作,并将请求转发到适当的页面以提供反馈。如果用户下有相关订单,则不允许删除用户,并显示相应的错误消息。

AdminUserEditServlet 管理员编辑用户

映射到URL路径/admin/user_edit上

用于处理管理员编辑用户的操作。它从HTTP请求中获取要编辑的用户的信息,将信息复制到User对象中,调用用户服务的方法来更新用户的地址信息,并将请求转发到适当的页面以提供反馈。

AdminUserEditshowServlet 显示管理员编辑用户页面

映射到URL路径/admin/user_editshow上

用于处理管理员显示编辑用户页面的操作。它根据用户ID查询用户信息,并将用户对象设置为请求属性,然后将请求转发到适当的页面以显示用户编辑页面。

AdminUserListServlet 管理员查看用户列表

映射到URL路径/admin/user_list上

用于处理管理员显示用户列表的操作。它根据请求中的页码获取用户分页数据,并将分页数据设置为请求属性,然后将请求转发到适当的页面以显示用户列表。

AdminUserListServlet 管理员重置用户密码

映射到URL路径/admin/user_reset上

用于处理管理员重置用户密码的操作。它从请求中获取用户的新密码,并使用UserService对象将用户密码重置为新密码,然后将请求转发到适当的页面以显示更新后的用户列表。

商品功能 GoodsBuyServlet 商品购买

映射到URL路径/goods_buy上

用于处理购买商品的操作。它从请求中获取商品ID,并使用GoodsService对象获取商品对象。如果商品的库存充足,则将商品添加到订单中,并向响应输出"ok";如果商品库存不足,则向响应输出"fail"。

GoodsDetailServlet 商品详情

映射到URL路径/goods_detail上

用于处理获取商品详情的操作。它从请求中获取商品ID,并使用GoodsService对象获取商品对象。然后,将商品对象存储在请求属性中,最后将请求转发到展示商品详情的JSP页面。

GoodsListServlet 商品列表

映射到URL路径/goods_list上

用于处理获取商品列表的请求,并将商品列表和相关信息传递到前端页面进行显示。它根据请求参数中的商品类型ID和页码来获取对应的商品列表信息,并将结果存储在请求属性中,以便在前端页面中使用。

GoodsRecommentListServlet 商品推荐列表

映射到URL路径/goodsrecommend_list上

用于处理获取推荐商品列表的请求,并将推荐商品列表和相关信息传递到前端页面进行显示。它根据请求参数中的商品类型和页码来获取对应的推荐商品列表信息,并将结果存储在请求属性中,以便在前端页面中使用。

GoodsSearchServlet 商品搜索

用于处理商品搜索功能的请求。它从请求参数中获取用户输入的搜索关键字,并调用商品服务的方法进行搜索,并将搜索结果存储在请求属性中,以便在前端页面中显示。

GoodsLessenServlet 减少购物车中商品数量

映射到URL路径/goods_lessen上

用于处理减少购物车中商品数量的操作。它从会话中获取购物车对象,解析请求参数中的商品ID,并调用购物车对象的方法来减少商品数量。最后,向响应中写入"ok"字符串,表示操作成功。

订单功能 OrderConfirmServlet 订单确认和支付

映射到URL路径/order_confirm上

用于处理订单确认和支付的请求。它从会话中获取订单对象,并将请求参数的值复制到订单对象中,设置订单的日期时间、状态和用户信息,并将订单保存到数据库中。最后,它将支付成功的消息存储在请求属性中,并将请求转发到前端页面以显示订单支付成功的消息。

OrderListServlet 订单列表

映射到URL路径/order_list上

用于获取用户的订单列表,并将其存储在请求属性中,然后将请求转发到前端页面以展示订单列表。在前端页面上,可以使用EL表达式${orderList}来访问和展示订单列表的数据。

OrderSubmitServlet 订单提交

映射到URL路径/order_submit上

用于处理订单提交页面的逻辑。如果用户已登录,将显示订单提交页面;如果用户未登录,将显示登录页面,并提示用户登录后再提交订单。

用户功能 IndexServlet 主页

映射到URL路径/index上

用于处理主页的逻辑。当用户访问"/index"路径时,该Servlet将调用GoodsService中的方法获取主页所需的数据,并将数据设置为请求的属性,然后将请求转发到相应的JSP页面,以便在页面中显示主页内容。

UserChangeAddressServlet 用户修改收件地址

映射到URL路径/user_changeaddress上

用于处理用户修改收件地址的逻辑。它从表单中获取新的收件地址,更新到用户对象中,并将更新后的地址保存到数据库中。最后,将用户重定向到用户中心页面,并显示更新成功的消息。

UserChangePwd 用户修改密码

映射到URL路径/user_changepwd上

用于处理用户修改密码的逻辑。它从表单中获取当前密码和新密码,验证当前密码是否正确,然后更新用户对象的密码,并将更新后的密码保存到数据库中。最后,将用户重定向到用户中心页面,并显示修改密码成功或失败的消息。

UserLoginServlet 用户登录

映射到URL路径/user_login上

用于处理用户登录的逻辑。它从表单中获取用户名或邮箱和密码,通过调用UserService的login方法进行登录验证,如果登录成功,将用户对象存储到会话中,并将用户重定向到用户中心页面。如果登录失败,将错误消息显示在登录页面上。

UserLogoutServlet 用户登出

映射到URL路径/user_logout上

用于处理用户登出的逻辑。当用户访问"/user_logout"路径时,该Servlet将从会话中移除用户对象,并将用户重定向到应用程序的根目录,实现用户的登出操作。

UserRegisterServlet 用户注册

映射到URL路径/user_register上

用于处理用户注册的逻辑。当用户提交注册表单并访问"/user_register"路径时,该Servlet将从请求中获取用户填写的注册信息,调用UserService的register方法进行注册,并根据注册结果将用户重定向到相应的页面。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3