Javaweb項目:超市管理系統(tǒng)

(1)實現(xiàn)技術(shù):MySQL+jsp+servlet+tomcat+maven踢涌;是一個maven項目。
(2)MVC的三個部分全部自己手敲,沒怎么抽取代碼偿凭,看著可能冗余,大概這就是新手吧煤蹭。
(3)功能基本實現(xiàn)了笔喉,只是前端頁面的返回是history(-1)取视,這個在多次使用后可能會導(dǎo)致頁面白屏,暫時不太會處理常挚。
(4)源碼下載鏈接:smbms源碼.zip
(5)在這篇文章中作谭,只是項目的實現(xiàn)思路

分篇閱讀:
smbms項目(一):項目開始階段
smbms項目(二):用戶管理頁面
smbms項目(三):供應(yīng)商管理頁面
smbms項目(四):訂單管理頁面
smbms項目(五):項目小總結(jié)

smbms項目(一)

項目搭建
實現(xiàn)登錄、登出奄毡、修改密碼折欠、跳轉(zhuǎn)到用戶管理頁面

一、項目搭建準備工作

  1. 搭建一個maven web項目


  2. 配置tomcat


  3. 測試項目是否可以運行

  • 啟動一下tomcat吼过,確定是可以跑的
  1. 導(dǎo)入項目中需要的jar包
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.3</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    <!--JSTL表達式依賴-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!--Standard標簽庫-->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

  </dependencies>
  1. 創(chuàng)建項目包結(jié)構(gòu)


  2. 編寫實體類
  • ORM映射:表——類映射
  1. 編寫基礎(chǔ)公共類
  • 數(shù)據(jù)庫配置文件 properties
    此文件注意不要亂加 锐秦;
  • 數(shù)據(jù)庫公共類
  • 編寫字符編碼過濾器
  1. 導(dǎo)入靜態(tài)資源

二、登錄功能實現(xiàn)

image
    1. 編寫前端頁面
    1. 設(shè)置歡迎頁面
    1. 編寫dao層登錄用戶登錄的接口
    1. 編寫dao接口的實現(xiàn)類
  • 5.業(yè)務(wù)層接口
    1. 實現(xiàn)業(yè)務(wù)層接口
    1. 編寫Servlet
    1. 配置Servlet
    1. 測試功能是否全部實現(xiàn)

三盗忱、登錄功能優(yōu)化

(一)注銷功能

- 思路:移除Session酱床,返回登錄頁面
  • 1.1. servlet
  • 1.2. 配置xml

(二)登錄攔截優(yōu)化

  • 2.1. servlet
  • 2.2. 配置xml

四、密碼修改

    1. 導(dǎo)入前端素材
    1. 寫項目趟佃,從底層往上寫
  • 從dao層開始寫起扇谣,再寫業(yè)務(wù)層service,再寫控制層servlet闲昭,再和視圖層jsp作聯(lián)系罐寨。要思考好一個事務(wù)和數(shù)據(jù)庫的邏輯關(guān)系,分別實現(xiàn)不同層次的代碼序矩。
    1. UserDao接口
    1. UserDao接口實現(xiàn)類
    1. UserService接口
    1. UserService實現(xiàn)
    1. 編寫Servlet
  • json工具包導(dǎo)入
    1. 配置xml

五鸯绿、用戶管理實現(xiàn)

  • 思路:
    image
  • 導(dǎo)入分頁的工具類
  • 用戶列表頁面導(dǎo)入

(一)獲取用戶數(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

(三)獲得角色列表

為了職責(zé)分明清晰,可以把角色的操作單獨放到一個包中簸淀,和pojo一一對應(yīng)

  • 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查詢用戶信息(用戶管理的查看操作)

    1. UserDao
    1. UserDaoImpl
    1. UserService
    1. UserServiceImpl
    1. Servlet
    1. 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項目(三)供應(yīng)商管理頁面

  • 頁面跳轉(zhuǎn)
  • ProviderServlet
  • web.xml

(一)、供應(yīng)商管理頁面

1台囱、根據(jù)供應(yīng)商編碼或者供應(yīng)商名稱查詢供應(yīng)商總數(shù)

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl

2淡溯、通過條件查詢獲得供應(yīng)商列表

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl
  • ProviderServlet

(二)、供應(yīng)商查看頁面

根據(jù)供應(yīng)商id查詢供應(yīng)商信息簿训,供應(yīng)商管理頁面 下的 查看請求

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

(三)咱娶、供應(yīng)商修改頁面

1. 頁面跳轉(zhuǎn)

根據(jù)供應(yīng)商id 獲取供應(yīng)商信息,并返回前端强品,這和查看供應(yīng)商信息的功能一樣膘侮,只是跳轉(zhuǎn)的頁面不一樣,只要修改Servlet就行

  • ProviderServlet

2. 修改供應(yīng)商信息

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl
  • ProviderServlet
  • web.xml

(四)的榛、供應(yīng)商添加頁面

1. 添加頁面跳轉(zhuǎn)

  • 1.1 ProviderServlet
  • 1.2 web.xml

2. 查詢供貨商編碼

查詢?nèi)康墓┴浬叹幋a(dao)
確定供貨商編碼是否未被使用琼了、給前端設(shè)置數(shù)據(jù)(Servlet)

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl
  • ProviderServlet
  • web.xml

3. 添加用戶

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl
  • ProviderServlet
  • web.xml

(五)、刪除供應(yīng)商

  • ProviderDao
  • ProviderDaoImpl
  • ProviderService
  • ProviderServiceImpl
  • ProviderServlet
  • web.xml

至此完成了供應(yīng)商管理頁面的全部功能

smbms項目(四)訂單管理頁面

  • 頁面跳轉(zhuǎn)
  • BillServlet
  • web.xml

(一)夫晌、訂單管理頁面

1表伦、全部供應(yīng)商列表

  • BillServlet

2、根據(jù)商品名稱慷丽、供應(yīng)商id、是否付款的標識查詢獲得訂單總數(shù)

  • BillDao
  • BillDaoImpl
  • BillService
  • BillServiceImpl

3鳄哭、根據(jù)商品名稱要糊、供應(yīng)商id、是否付款的標識查詢獲得供應(yīng)商列表

關(guān)于get方式提交中文亂碼問題的解決方式

  • BillDao
  • BillDaoImpl
  • BillService
  • BillServiceImpl
  • BillServlet

(二)妆丘、訂單信息查看頁面

不得不記錄一個人為bug:<servlet-name>ProviderServlet</servlet-name>锄俄,一開始將下面的配置語句寫成了上面那句,所以請求處理一直沒有正確的處理勺拣,即是拿到了前端數(shù)據(jù)奶赠,但是沒有交由正確的程序處理,是不行的药有!

  • web.xml
  • BillDao
  • BillDaoImpl
  • BillService
  • BillServiceImpl
  • BillServlet

(三)毅戈、訂單信息修改頁面

1. 頁面跳轉(zhuǎn)

根據(jù)訂單id 獲取訂單信息,并返回前端愤惰,這和查看訂單信息的功能一樣苇经,只是跳轉(zhuǎn)的頁面不一樣,只要修改Servlet就行

  • BillServlet

2. 獲得供貨商編碼列表宦言,返回前端json數(shù)組

訂單信息修改頁面下的 獲得供應(yīng)商 列表 異步請求扇单,無頁面跳轉(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ù)組

訂單信息添加頁面下的 獲得供應(yīng)商 列表 異步請求蜘澜,無頁面跳轉(zhuǎn)施流,這里和上面的一樣

3. 訂單信息提交,并保存到數(shù)據(jù)庫

  • BillDao
  • BillDaoImpl
  • BillService
  • BillServiceImpl
  • BillServlet
  • web.xml

(五)鄙信、刪除訂單信息

  • BillDao
  • BillDaoImpl
  • BillService
  • BillServiceImpl
  • BillServle
  • web.xml

至此完成了訂單管理頁面的全部功能瞪醋,以下是BillServlet的doGet方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扮碧,隨后出現(xiàn)的幾起案子趟章,更是在濱河造成了極大的恐慌,老刑警劉巖慎王,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚓土,死亡現(xiàn)場離奇詭異,居然都是意外死亡赖淤,警方通過查閱死者的電腦和手機蜀漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咱旱,“玉大人确丢,你說我怎么就攤上這事⊥孪蓿” “怎么了鲜侥?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诸典。 經(jīng)常有香客問我描函,道長,這世上最難降的妖魔是什么狐粱? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任舀寓,我火速辦了婚禮,結(jié)果婚禮上肌蜻,老公的妹妹穿的比我還像新娘互墓。我一直安慰自己,他們只是感情好蒋搜,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布篡撵。 她就那樣靜靜地躺著,像睡著了一般豆挽。 火紅的嫁衣襯著肌膚如雪酸休。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天祷杈,我揣著相機與錄音斑司,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛宿刮,可吹牛的內(nèi)容都是我干的互站。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼僵缺,長吁一口氣:“原來是場噩夢啊……” “哼胡桃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磕潮,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤翠胰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后自脯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體之景,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年膏潮,在試婚紗的時候發(fā)現(xiàn)自己被綠了锻狗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡焕参,死狀恐怖轻纪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叠纷,我是刑警寧澤刻帚,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站涩嚣,受9級特大地震影響崇众,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缓艳,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望看峻。 院中可真熱鬧阶淘,春花似錦、人聲如沸互妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冯勉。三九已至澈蚌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灼狰,已是汗流浹背宛瞄。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留交胚,地道東北人份汗。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓盈电,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杯活。 傳聞我的和親對象是個殘疾皇子匆帚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 供應(yīng)商管理頁面--->頁面跳轉(zhuǎn) ProviderServlet web.xml (一)、供應(yīng)商管理頁面 1旁钧、根據(jù)供...
    知向誰邊閱讀 574評論 0 1
  • 前言 前面我們做的小項目都是一個表的吸重,業(yè)務(wù)代碼也相對簡單。現(xiàn)在我們來做一個權(quán)限管理系統(tǒng)歪今,體驗一下多表的業(yè)務(wù)邏輯嚎幸,順...
    Java3y閱讀 886評論 8 10
  • 訂單管理頁面---->頁面跳轉(zhuǎn) BillServlet web.xml (一)、訂單管理頁面 1彤委、全部供應(yīng)商列表 ...
    知向誰邊閱讀 588評論 0 0
  • 1.數(shù)據(jù)庫設(shè)計 1.1系統(tǒng)用戶表 1.2客戶信息表 1.3數(shù)據(jù)字典表 2.系統(tǒng)環(huán)境搭建 2.1準備需要的JAR包 ...
    Z_PS閱讀 5,103評論 1 3
  • 今天感恩節(jié)哎鞭铆,感謝一直在我身邊的親朋好友。感恩相遇焦影!感恩不離不棄车遂。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,564評論 0 11