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

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

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

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

smbms项目(一)

项目搭建

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

一、项目搭建准备工作

搭建一个maven web项目

配置tomcat

测试项目是否可以运行

启动一下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

创建项目包结构

编写实体类

ORM映射:表——类映射

编写基础公共类

数据库配置文件 properties

此文件注意不要乱加 ;

数据库公共类

编写字符编码过滤器

导入静态资源

二、登录功能实现

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

五、用户管理实现

思路:

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方法

java超市管理系统后台_Javaweb项目:超市管理系统相关推荐

  1. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整开源于 Github)...

    Github: https://github.com/iccb1013/Jade.Net 我们只消耗了8/人天的时间,完成了全部工作,基于我们 Jade.Net 的开源后台代码,任何小规模的后台管理系 ...

  2. 用户管理系统_学期项目智能管理系统用户操作指南

    "学在IVT"喊您回家,邀您加入!微信公众号"学在IVT"实时更新发布重要信息,将为您提供更新鲜.更及时.更准确的资讯服务!IVT学子是一家,信息传递靠大家!& ...

  3. java订单表字段_javaweb企业订单管理系统

    今天将为大家分析一个基于javaweb的企业订单管理系统, 物流管理的最大特点是以客户为中心,围绕客户构建各种业务流程支持的形式,物流管理系统支持多形式客户的数据共享以提高工作效率,监控整个物品流通的 ...

  4. java初级内容结课项目——图书管理系统

    在前面的十三课中,笔者已经介绍了有关java的各种语法及其细节.若要融会贯通,则还需大量的练习,而非单纯的依赖于笔记中的内容.毕竟"纸上得来终觉浅,绝知此事要躬行".在java语法 ...

  5. java web mysql视图_Javaweb项目-下拉列表显示后台数据库的数据

    下面将演示前端下拉列表显示后台数据库中class表的说有班级的名称 环境: Tomcat-8.5.40 mysql-8.0.13 eclipse-4.9.0 springmvc框架 一.从mysql中 ...

  6. 微信小程序毕业设计论文求职招聘|兼职管理系统+后台管理项目源代码

  7. java 制作报表案例_javaweb项目报表案例

    [实例简介] javaweb项目报表案例.采用JFreeChart插件,包含其使用详细教程. [实例截图] [核心代码] javaweb项目报表案例 └── 报表 ├── 案例 │   ├── jfr ...

  8. java 获得站点地址_JavaWeb项目里面的路径获取方法总结

    仅为资源搬运,个人还未充分理解... request.getRealPath不推荐使用request.getRealPath("") 这个方法已经不推荐使用了,那代替它的是什么方法 ...

  9. java在线测评系统_JavaWeb项目:在线评测系统

    此项目为本人的Java大作业. 一.项目概况 1.1设计内容 一个在线评测系统,分用户和管理员两种身份.用户能够通过注册登录,参加比赛,最后实时得到比赛结果,并保存历史比赛结果:管理员除此之外还能录入 ...

最新文章

  1. mybatis的实际应用
  2. 表中记录查询排序(设置排序规则)
  3. CentOS学习笔记 - 7. jekins安装
  4. windows 应用开机自启动方法总结
  5. 计算机是管理信息系统的必要条件吗,管理信息系统复习题(有答案)..doc
  6. ArcGIS实验教程——实验七:矢量数据空间校正(Spatial Adjustment)
  7. mapbox矢量切片标准_Cesium 加载矢量切片(MapBox Vector Tile)
  8. 力扣--48旋转图像(中等)
  9. 量子计算机拓扑超导新状态,陈根:特殊超导体,有助于量子计算机运行
  10. Yii2 Lesson - 03 Forms in Yii
  11. blog群发王(价值1980元)源代码提供
  12. dbeaver包含jdk11下载
  13. [转载] 360分布式存储系统Bada的设计和应用
  14. 搭建网站基本步骤(搭建一个网站的步骤)
  15. 值得品读的感悟人生的经典句子 - 格言网(转载)
  16. 中国农业机械融资租赁市场预测与投资战略报告(2021版)
  17. 海康、大华等网络摄像头RTSP_Onvif网页无插件直播流媒体服务器EasyNVR鉴权出现跨域问题的解决方法
  18. 用python画猪_用python画小猪佩奇(非原创)
  19. 广州租房提取住房公积金攻略
  20. 【重写】简析stm32启动过程

热门文章

  1. php laravel开发的个人博客源码分享,支持适配移动端附截图
  2. java给一整行字体设置颜色_怎样设置字体颜色?java swing
  3. javascript功能插件大集合
  4. 管理经济分析03:生产要素价格的决定
  5. 数据要素市场需要基于区块链3.0新技术来形成新基建
  6. windows下如何down git上的代码
  7. 33-38-Elasticsearch-部分相关概念-01
  8. 直至现在,还是有很多人分不清登录与登陆
  9. Java人员岗位职责是什么 职业道路该怎么选择
  10. BOI2007 Mokia 摩基亚