java超市管理系统后台_Javaweb项目:超市管理系统
(1)實現(xiàn)技術(shù):MySQL+jsp+servlet+tomcat+maven;是一個maven項目。
(2)MVC的三個部分全部自己手敲,沒怎么抽取代碼,看著可能冗余,大概這就是新手吧。
(3)功能基本實現(xiàn)了,只是前端頁面的返回是history(-1),這個在多次使用后可能會導致頁面白屏,暫時不太會處理。
(4)源碼下載鏈接:smbms源碼.zip,這里只是項目的實現(xiàn)思路
smbms項目(一)
項目搭建
實現(xiàn)登錄、登出、修改密碼、跳轉(zhuǎn)到用戶管理頁面
一、項目搭建準備工作
搭建一個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
創(chuàng)建項目包結(jié)構(gòu)
編寫實體類
ORM映射:表——類映射
編寫基礎公共類
數(shù)據(jù)庫配置文件 properties
此文件注意不要亂加 ;
數(shù)據(jù)庫公共類
編寫字符編碼過濾器
導入靜態(tài)資源
二、登錄功能實現(xiàn)
image
編寫前端頁面
設置歡迎頁面
編寫dao層登錄用戶登錄的接口
編寫dao接口的實現(xiàn)類
5.業(yè)務層接口
實現(xiàn)業(yè)務層接口
編寫Servlet
配置Servlet
測試功能是否全部實現(xiàn)
三、登錄功能優(yōu)化
(一)注銷功能
- 思路:移除Session,返回登錄頁面
1.1. servlet
1.2. 配置xml
(二)登錄攔截優(yōu)化
2.1. servlet
2.2. 配置xml
四、密碼修改
導入前端素材
寫項目,從底層往上寫
從dao層開始寫起,再寫業(yè)務層service,再寫控制層servlet,再和視圖層jsp作聯(lián)系。要思考好一個事務和數(shù)據(jù)庫的邏輯關系,分別實現(xiàn)不同層次的代碼。
UserDao接口
UserDao接口實現(xiàn)類
UserService接口
UserService實現(xiàn)
編寫Servlet
json工具包導入
配置xml
五、用戶管理實現(xiàn)
思路:
image
導入分頁的工具類
用戶列表頁面導入
(一)獲取用戶數(shù)量
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. 從前端獲取數(shù)據(jù)
3.5.3. 獲得用戶的總數(shù)(分頁:上一頁、下一頁的情況)
3.5.4. 控制首頁和尾頁,如果頁面要小于1,就顯示第一頁的東西
3.5.5. 獲取用戶列表展示
3.5.6. 返回前端
smbms項目(二)用戶管理頁面
一、根據(jù)用戶id查詢用戶信息(用戶管理的查看操作)
UserDao
UserDaoImpl
UserService
UserServiceImpl
Servlet
xml
二、根據(jù)用戶id修改用戶信息(用戶管理的修改操作)
(一)修改頁面的跳轉(zhuǎn)
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
(三)提交新用戶信息,存儲在數(shù)據(jù)庫
3.1. UserDao
3.2. UserDaoImpl
3.3. UserService
3.4. UserServiceImpl
3.5. UserServlet
問題分析:因為前端提交表單有屬性:enctype="multipart/form-data"
enctype="multipart/form-data"時文本框參數(shù)獲取問題的解決
- 使用文件的方式讀取資源,新增一個AddUserServlet的類,處理該特殊請求
- 前端頁面,跳轉(zhuǎn)到添加用戶的是通過超鏈接實現(xiàn),所以放到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項目(三)供應商管理頁面
頁面跳轉(zhuǎn)
ProviderServlet
web.xml
(一)、供應商管理頁面
1、根據(jù)供應商編碼或者供應商名稱查詢供應商總數(shù)
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
2、通過條件查詢獲得供應商列表
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
ProviderServlet
(二)、供應商查看頁面
根據(jù)供應商id查詢供應商信息,供應商管理頁面 下的 查看請求
ProviderDao--> ProviderDaoImpl--> ProviderService--> ProviderServiceImpl--> ProviderServlet--> web.xml
(三)、供應商修改頁面
1. 頁面跳轉(zhuǎn)
根據(jù)供應商id 獲取供應商信息,并返回前端,這和查看供應商信息的功能一樣,只是跳轉(zhuǎn)的頁面不一樣,只要修改Servlet就行
ProviderServlet
2. 修改供應商信息
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
ProviderServlet
web.xml
(四)、供應商添加頁面
1. 添加頁面跳轉(zhuǎn)
1.1 ProviderServlet
1.2 web.xml
2. 查詢供貨商編碼
查詢?nèi)康墓┴浬叹幋a(dao)
確定供貨商編碼是否未被使用、給前端設置數(shù)據(jù)(Servlet)
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
ProviderServlet
web.xml
3. 添加用戶
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
ProviderServlet
web.xml
(五)、刪除供應商
ProviderDao
ProviderDaoImpl
ProviderService
ProviderServiceImpl
ProviderServlet
web.xml
至此完成了供應商管理頁面的全部功能
smbms項目(四)訂單管理頁面
頁面跳轉(zhuǎn)
BillServlet
web.xml
(一)、訂單管理頁面
1、全部供應商列表
BillServlet
2、根據(jù)商品名稱、供應商id、是否付款的標識查詢獲得訂單總數(shù)
BillDao
BillDaoImpl
BillService
BillServiceImpl
3、根據(jù)商品名稱、供應商id、是否付款的標識查詢獲得供應商列表
BillDao
BillDaoImpl
BillService
BillServiceImpl
BillServlet
(二)、訂單信息查看頁面
不得不記錄一個人為bug:ProviderServlet,一開始將下面的配置語句寫成了上面那句,所以請求處理一直沒有正確的處理,即是拿到了前端數(shù)據(jù),但是沒有交由正確的程序處理,是不行的!
web.xml
BillDao
BillDaoImpl
BillService
BillServiceImpl
BillServlet
(三)、訂單信息修改頁面
1. 頁面跳轉(zhuǎn)
根據(jù)訂單id 獲取訂單信息,并返回前端,這和查看訂單信息的功能一樣,只是跳轉(zhuǎn)的頁面不一樣,只要修改Servlet就行
BillServlet
2. 獲得供貨商編碼列表,返回前端json數(shù)組
訂單信息修改頁面下的 獲得供應商 列表 異步請求,無頁面跳轉(zhuǎn)
BillServlet
3. 訂單信息修改頁面下的 修改保存提交請求
java中的BigDecimal和String的相互轉(zhuǎn)換
BillDao
BillDaoImpl
BillService
BillServiceImpl
BillServlet
web.xml
(四)、訂單信息添加頁面
1. 跳轉(zhuǎn)到添加訂單信息頁面
BillServlet
web.xml
2. 獲得供貨商編碼列表,返回前端json數(shù)組
訂單信息添加頁面下的 獲得供應商 列表 異步請求,無頁面跳轉(zhuǎn),這里和上面的一樣
3. 訂單信息提交,并保存到數(shù)據(jù)庫
BillDao
BillDaoImpl
BillService
BillServiceImpl
BillServlet
web.xml
(五)、刪除訂單信息
BillDao
BillDaoImpl
BillService
BillServiceImpl
BillServle
web.xml
至此完成了訂單管理頁面的全部功能,以下是BillServlet的doGet方法
總結(jié)
以上是生活随笔為你收集整理的java超市管理系统后台_Javaweb项目:超市管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 远程关机命令
- 下一篇: Charles抓Https