java超市管理系统后台_Javaweb项目:超市管理系统

本文档详细介绍了使用MySQL+jsp+servlet+tomcat+maven实现的Java超市管理系统后台,涵盖项目搭建、登录功能、密码修改、用户管理、供应商管理和订单管理等功能的实现过程,包括代码编写、Servlet配置及功能测试。同时,文中提到了一些存在的问题,如前端页面返回可能导致的白屏现象及文件路径获取的bug。
摘要由CSDN通过智能技术生成

(1)实现技术:MySQL+jsp+servlet+tomcat+maven;是一个maven项目。

(2)MVC的三个部分全部自己手敲,没怎么抽取代码,看着可能冗余,大概这就是新手吧。

(3)功能基本实现了,只是前端页面的返回是history(-1),这个在多次使用后可能会导致页面白屏,暂时不太会处理。

(4)源码下载链接:smbms源码.zip,这里只是项目的实现思路

smbms项目(一)

项目搭建

实现登录、登出、修改密码、跳转到用户管理页面

一、项目搭建准备工作

搭建一个maven web项目

8276ea2b97d8

配置tomcat

8276ea2b97d8

测试项目是否可以运行

启动一下tomcat,确定是可以跑的

导入项目中需要的jar包

javax.servlet

servlet-api

2.5

javax.servlet.jsp

javax.servlet.jsp-api

2.3.3

mysql

mysql-connector-java

5.1.47

jstl

jstl

1.2

taglibs

standard

1.1.2

创建项目包结构

8276ea2b97d8

编写实体类

ORM映射:表——类映射

编写基础公共类

数据库配置文件 properties

此文件注意不要乱加 ;

数据库公共类

编写字符编码过滤器

导入静态资源

二、登录功能实现

8276ea2b97d8

image

编写前端页面

设置欢迎页面

编写dao层登录用户登录的接口

编写dao接口的实现类

5.业务层接口

实现业务层接口

编写Servlet

配置Servlet

测试功能是否全部实现

三、登录功能优化

(一)注销功能

- 思路:移除Session,返回登录页面

1.1. servlet

1.2. 配置xml

(二)登录拦截优化

2.1. servlet

2.2. 配置xml

四、密码修改

导入前端素材

写项目,从底层往上写

从dao层开始写起,再写业务层service,再写控制层servlet,再和视图层jsp作联系。要思考好一个事务和数据库的逻辑关系,分别实现不同层次的代码。

UserDao接口

UserDao接口实现类

UserService接口

UserService实现

编写Servlet

json工具包导入

配置xml

五、用户管理实现

思路:

8276ea2b97d8

image

导入分页的工具类

用户列表页面导入

(一)获取用户数量

1.1. UserDao

1.2. UserDaoImpl

1.3. Service

1.4. ServiceImpl

(二)获得用户列表

2.1. UserDao

2.2. UserDaoImpl

2.3. Service

2.4. ServiceImpl

(三)获得角色列表

为了职责分明清晰,可以把角色的操作单独放到一个包中,和pojo一一对应

3.1. RoleDao

3.2. RoleDaoImpl

3.3. RoleService

3.4. RoleServiceImpl

3.5. Servlet

3.5.1. 查询获得用户列表

3.5.2. 从前端获取数据

3.5.3. 获得用户的总数(分页:上一页、下一页的情况)

3.5.4. 控制首页和尾页,如果页面要小于1,就显示第一页的东西

3.5.5. 获取用户列表展示

3.5.6. 返回前端

smbms项目(二)用户管理页面

一、根据用户id查询用户信息(用户管理的查看操作)

UserDao

UserDaoImpl

UserService

UserServiceImpl

Servlet

xml

二、根据用户id修改用户信息(用户管理的修改操作)

(一)修改页面的跳转

1.1. servlet

1.2. xml

(二)得到角色列表

2.1. servlet

2.2. xml

(三)提交更改用户信息,表单提交

3.1. UserDao

3.2. UserDaoImpl

3.3. UserService

3.4. UserServiceImpl

3.5. Servlet

3.6. xml

三、添加用户

(一)获得用户全部角色

和上面所用的方法一样

(二)获得全部用户的userCode并判断用户想要新建用户的userCode是否能使用

2.1. UserDao

2.2. UserDaoImpl

2.3. UserService

2.4. UserServiceImpl

2.5. UserServlet

2.6. xml

(三)提交新用户信息,存储在数据库

3.1. UserDao

3.2. UserDaoImpl

3.3. UserService

3.4. UserServiceImpl

3.5. UserServlet

问题分析:因为前端提交表单有属性:enctype="multipart/form-data"

enctype="multipart/form-data"时文本框参数获取问题的解决

- 使用文件的方式读取资源,新增一个AddUserServlet的类,处理该特殊请求

- 前端页面,跳转到添加用户的是通过超链接实现,所以放到doGet方法中,表单提交(post)处理就使用post方法

- 路径问题:this.getServletContext().getRealPath("/")获得null,查找一番没解决,便写死了项目在硬盘上的地址(没有解决的bug)

3.6. xml

3.7. bug:文件的路径获取失败:

request.getSession().getServletContext().getRealPath("/statics/images");

this.getServletContext().getRealPath("/") + "/statics/tmp";

四、删除用户

4.1. UserDao

4.2. UserDaoImpl

4.3. UserService

4.4. UserServiceImpl

4.5. UserServlet

4.6. xml

smbms项目(三)供应商管理页面

页面跳转

ProviderServlet

web.xml

(一)、供应商管理页面

1、根据供应商编码或者供应商名称查询供应商总数

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

2、通过条件查询获得供应商列表

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

ProviderServlet

(二)、供应商查看页面

根据供应商id查询供应商信息,供应商管理页面 下的 查看请求

ProviderDao--> ProviderDaoImpl--> ProviderService--> ProviderServiceImpl--> ProviderServlet--> web.xml

(三)、供应商修改页面

1. 页面跳转

根据供应商id 获取供应商信息,并返回前端,这和查看供应商信息的功能一样,只是跳转的页面不一样,只要修改Servlet就行

ProviderServlet

2. 修改供应商信息

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

ProviderServlet

web.xml

(四)、供应商添加页面

1. 添加页面跳转

1.1 ProviderServlet

1.2 web.xml

2. 查询供货商编码

查询全部的供货商编码(dao)

确定供货商编码是否未被使用、给前端设置数据(Servlet)

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

ProviderServlet

web.xml

3. 添加用户

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

ProviderServlet

web.xml

(五)、删除供应商

ProviderDao

ProviderDaoImpl

ProviderService

ProviderServiceImpl

ProviderServlet

web.xml

至此完成了供应商管理页面的全部功能

smbms项目(四)订单管理页面

页面跳转

BillServlet

web.xml

(一)、订单管理页面

1、全部供应商列表

BillServlet

2、根据商品名称、供应商id、是否付款的标识查询获得订单总数

BillDao

BillDaoImpl

BillService

BillServiceImpl

3、根据商品名称、供应商id、是否付款的标识查询获得供应商列表

BillDao

BillDaoImpl

BillService

BillServiceImpl

BillServlet

(二)、订单信息查看页面

不得不记录一个人为bug:ProviderServlet,一开始将下面的配置语句写成了上面那句,所以请求处理一直没有正确的处理,即是拿到了前端数据,但是没有交由正确的程序处理,是不行的!

web.xml

BillDao

BillDaoImpl

BillService

BillServiceImpl

BillServlet

(三)、订单信息修改页面

1. 页面跳转

根据订单id 获取订单信息,并返回前端,这和查看订单信息的功能一样,只是跳转的页面不一样,只要修改Servlet就行

BillServlet

2. 获得供货商编码列表,返回前端json数组

订单信息修改页面下的 获得供应商 列表 异步请求,无页面跳转

BillServlet

3. 订单信息修改页面下的 修改保存提交请求

java中的BigDecimal和String的相互转换

BillDao

BillDaoImpl

BillService

BillServiceImpl

BillServlet

web.xml

(四)、订单信息添加页面

1. 跳转到添加订单信息页面

BillServlet

web.xml

2. 获得供货商编码列表,返回前端json数组

订单信息添加页面下的 获得供应商 列表 异步请求,无页面跳转,这里和上面的一样

3. 订单信息提交,并保存到数据库

BillDao

BillDaoImpl

BillService

BillServiceImpl

BillServlet

web.xml

(五)、删除订单信息

BillDao

BillDaoImpl

BillService

BillServiceImpl

BillServle

web.xml

至此完成了订单管理页面的全部功能,以下是BillServlet的doGet方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值