SSH框架網上商城項目第30戰之項目總結(附源碼下載地址)。本站提示廣大學習愛好者:(SSH框架網上商城項目第30戰之項目總結(附源碼下載地址))文章只能為提供參考,不一定能成為您想要的結果。以下是SSH框架網上商城項目第30戰之項目總結(附源碼下載地址)正文
0. 寫在後面
友誼提醒:下載地址鄙人面哦。
項目根本完成了,加上這個總結,與這個項目相干的博客也寫了30篇了,集腋成裘,寫博客的進程是固化思緒的一個進程,對本身很有效,同時也能贊助他人。趁便說個題外話,在進修的進程中確定會碰到許多異常湧現,我們要做的起首是定位這個異常,普通異常的前面都邑跟一個或多個Caused by:xxx,這些都是惹起異常的緣由,普通我們找最上面的一個Caused by,那邊常常才是成績的本源。假如本身處理不了,可以去谷歌、百度搜刮(搜刮的時刻別一年夜堆異常往上一貼,留意搜症結的部門!),普通我們碰到的成績,99.9%後人都碰到過,根本都能處理,我碰到不克不及處理的成績根本都是這麼干的,本身處理的多了,就有感到了~最初願望年夜家在浏覽我的博客時會有所收成!
空話就不說了,上面總結一下這個網上商城的項目,我不會見面俱到,重要分為幾個模塊來總結,包含 用到了哪些技巧等等,詳細的細節我會在文章中附上疾速鏈接,年夜家可以檢查詳細的某篇文章。
回想一下這個項目,總共可以分為這些重要的模塊:
---項目情況的搭建
---搭建後台治理體系
---搭建前台顯示頁面
---購物車相干功效
---在線付出功效
---郵件和短信的發送功效
---域名的請求和項目標安排
---表單驗證和報表的顯示
上面針對每一個模塊,做一下詳細的剖析。
1. 項目情況的搭建
這是每一個工程都少不了的環節,並且也會湧現許多雜亂無章的成績,剛開端學SSH的時刻,老是苦於搭建情況,由於不太闇練,然則闇練了就行了,重要是要“有節拍的”去搭建,也就是說搭建一個情況工程得一步步來,一點點的搭,許多人下去就把jar包啪叽一下全導出來了,然後甚麼設置裝備擺設文件啊啪叽一下全寫好或許從其他處所粘貼來,然後一運轉,掛了……然後各類去找成績,何必呢?如許的話就算搭建10次也不克不及輕車熟路。飯要一口口的吃,路要一步一步的走。
SSH的情況搭建,我小我遵守的流程是:
Spring –> Hibernate –> Spring整合Hibernate –> Struts2 –> Spring整合Struts2
每步做完寫個測試類測試一下,這很主要,由於一步步往下走的話,失足了也曉得錯在哪一步,去哪找成績,最主要的是,這類流程闇練了,下次再搭情況的時刻就輕而易舉了。關於SSH情況搭建的具體信息請看上面的文章:
整合Struts2、Hibernate4.3和Spring4.2
根本增刪查改、Service和Action的抽取和應用注解調換xml
2. 搭建後台治理體系
後台治理體系我用的是EasyUI搭建的,說真的,EasyUI我也是一知半解,前真個器械我懂得的都不深,然則懂一點,詳細用的時刻也是各類去查的,也沒體系的學過,所以沒有一個優越的常識系統,然則也不影響去玩。法式猿都愛好說玩一個技巧啥的,聽起來似乎挺嵬峨上的,漸漸的我也遭到一些影響,也愛好這麼說了,不外我關於前端就真的在玩了……
jQuery EasyUI是一組基於jQuery的UI插件聚集體,而jQuery EasyUI的目的就是贊助web開辟者更輕松的打造出功效豐碩而且雅觀的UI界面。開辟者不須要編寫龐雜的javascript,也不須要對css款式有深刻的懂得,開辟者須要懂得的只要一些簡略的html標簽。
EasyUI的要求都是Ajax要求,不會有新的頁面出來,全都都在tab選項卡中或許彈出一個窗口之類的。後台治理體系重要分為三部門:商品的種別治理、商品的治理和發賣治理。發賣治理放在最初再說。
2.1 商品種別的治理
該部門重要觸及到了EasyUI情況和後台框架的搭建、數據庫的級聯查詢和分頁、DataGrid數據顯示、Struts2整合json和商品種別的添加、刪除、更新和搜刮。這也是遵守了該部門的一個完成的次序。
DataGrid以表格的情勢展現數據,開辟人員不須要具有特定的常識便可以操作它,它有個很好的贊助文檔,比擬具體,在本項目中我也引見了創立DataGrid的幾種方法,而且也簡略引見了一下DataGrid的部門屬性,算是入門吧,我也是入門,多多開辟能力控制這個技巧。
種別的添加、刪除、更新和搜刮功效,重要都是應用EasyUI自帶的驗證功效,添加商品種別的時,驗證輸出框的輸出能否准確,能否必填等;刪除時能否先選中的某一行或某幾行;更新的時刻每次只能更新一行等,一切這些都是Ajax要求。
關於這部門內容的具體信息,我曾經歸類了,請參考這些文章:
應用EasyUI搭建後台頁面框架
EasyUI菜單的完成
數據庫的級聯查詢和分頁
基於DataGrid的數據顯示功效
Struts2和Json的整合
DataGrid完成查詢和刪除功效
DataGrid完成添加和更新功效
上面是我本身碰到的成績:
Struts2和Json整合中的懶加載異常成績
Hibernate4履行save()或update()有效
2.2 商品的治理
商品的治理也有添加刪除等操作,跟種別治理事理上是一樣的,有個處所就是商品的添加,須要上傳商品的照片,這裡觸及到了Struts2完成文件上傳的功效,我們須要在辦事器端建一個文件夾專門用來存儲上傳文件的,然後寫一個model來吸收文件,關於文件上傳,要專門寫一個對象類,項目中開辟就是如許的,個性的代碼必定要抽取,哪怕只要一句代碼也要抽取!這是習氣,也是必需要做的。詳細細節參上面列出的這些的文章:
商品類根本模塊的搭建
查詢和刪除商品功效的完成
添加和更新商品功效的完成
Struts2完成文件上傳功效
3. 搭建前台顯示頁面
固然,前台的頁面不是我設計的,這一塊內容我總結的是跟前台顯示相干的一些後台技巧,好比:監聽器獲得首頁數據、准時器同步首頁數據、Hibernate二級緩存處置熱點商品的緩存等。
之前在進修serlvet的時刻,首頁顯示數據我是這麼干的,用一個frame,左邊顯示數據,那末index.jsp中左邊的部門我跳轉到一個servlet,然後servlet中去數據庫中掏出一切商品,放到request域中帶曩昔新的jsp頁面顯示。這固然能完成,然則很笨。在這裡我用了監聽器來干這件事,起首本身界說一個監聽器,在項目啟動的時刻把數據庫中一切商品信息給掏出來,放到application域中,然後首頁中直接用EL表達式從application域中去取便可。
還有個成績,當我在治理體系中添加一個新的商品時,我必需要重啟一下tomcat能力將新的商品加到application域中,由於第一次掏出來後就一向在application域中了,就定逝世了,前面新添加的就不在application域外面,為懂得決這個成績,我應用了准時器來同步首頁數據。因而改寫了之前寫好的監聽器,在監聽器中設置一個准時器,獲得數據庫中商品的數據的代碼放到准時器義務中,第一次開啟立馬履行,然後每6個小時履行一次(時光可以本身隨意設定),也就是說每6個小時從新獲得一下數據庫中的商品,存到application域中。普通網站也是這麼干的,像CSDN的小我博客主頁也是,天天更新一次排名,年夜概是早晨10點閣下吧,詳細時光我忘了。誰人時刻刷新就會看到數據的更新,如許也減小了辦事器的壓力。
該部門詳細的技巧細節,拜見上面這幾篇文章:
應用監聽器獲得顯示在首頁的數據
監聽器若何獲得Spring的設置裝備擺設文件
線程、准時器准時同步首頁數據
Hibernate二級緩存處置首頁的熱點顯示
4. 購物車相干功效
購物車的部門重要觸及到的技巧有:後台的處置購物車和購物項的邏輯、過濾器斷定上岸、定單的級聯入庫和頁面緩存的成績。
購物車的話重要是後台的一些完成邏輯了,購物車裡須要有購物項,啥意思呢?我們在天貓上買器械都曉得,可以把分歧的商品都放到購物車裡,然後購物車裡有許多商品,每一個商品的數目又可以有多個,每一個商品及其相干信息就是一個購物項,所以添加購物車的時刻,我們起首要完成一個購物項,再將此購物項添加到購物車裡。
當用戶想要結算的時刻,我們得起首斷定用戶有無上岸,這用到了過濾器技巧,專門過濾某一類的url,在過濾器中斷定以後session中有無user對象,假如有解釋上岸過了,直接放行就行,假如沒有則跳轉到上岸頁面讓用戶上岸,上岸完成後跳轉到用戶本來想去的頁面。也就相當於門衛一樣~看年夜門的~
方才也提到了,定單信息包括 購物車和購物項,那末我們在定單入庫的時刻,就要斟酌到它們的級聯成績,我們可以經由過程在二者的POJO中設置響應的注解屬性便可,然則有個條件,像這類有外鍵聯系關系的,在入庫之前都要將對應的POJO中的外鍵部門的字段賦好值,好比定單要將定單項加出來,定單項中的定單屬性也得賦好值,然後才可以交給Hibernate,Hibernate依據設置裝備擺設好的注解(或許xml文件)將它們一路級聯入庫。
頁面緩存的成績指的是,當用戶確認了定單後,假如點撤退退卻,又會回到定單確認頁面,方才的定單確認頁面又出來了,並且session還在,信息照樣方才的信息,這顯著不是我們想要的成果。我們須要在前台和後台同時停止處置才行。
該部門詳細技巧細節,請拜見上面的幾篇文章:
購物車根本功效的完成
過濾器完成上岸功效的斷定
定單信息的級聯入庫和頁面緩存成績
5. 在線付出功效
這一部門重要引見了一些關於易寶付出接口的器械,其其實線付出功效針對分歧的第三方都是紛歧樣的,重要是要懂得在線付出功效開辟的一個流程,詳細技巧細節得依附詳細的第三方所供給的材料了。然則普通的流程都是:挪用第三方的接口 –> 第三方挪用銀行接口 –> 完成付出 –> 第三方回跳到我們指定的頁面。
這部門中,還觸及到了一個主要的技巧,就是struts2若何處置多個model要求。普通struts2完成了ModeDriven<model>後便可以在Action中應用該model,然則如今假如有兩個Model咋整呢?在struts2中還有別的一個叫parametersAware接口,只需完成了這個接口,而且界說一個存儲參數的Map,便可以吸收request要求中的一切參數,我們可以依據分歧的參數來斷定應用哪一個model,這類辦法可以很好的處理struts2處置多個model要求成績。
關於該部門的技巧細節,請參考以下博文:
在線付出平台的引見
易寶付出流程的一個demo
獲得銀行圖標和付出頁面的顯示
完成在線付出功效的邏輯
struts2中若何處置多個model要求
6. 郵件和短信的發送功效
郵件的發送和短信的發送這一部門絕對來講比擬簡略,都是一些固定的API,會用就行,記不住查查便可,我也記不住。郵件發送功效要導入mail.jar包,然後依據流程發送郵件便可,短信功效起首得去請求一下短信發送功效,請求好了後,第三方就會給我們供給一些API接口,我們只需參考他的便可以開辟短信發送功效了,跟付出功效有點相似,都是借助於第三方平台。
這部門也沒啥技巧難點,重要是流程吧,相干的文章以下:
應用java email給用戶發郵件
完成定單付出勝利後的短信發送功效
7. 域名空間的請求和項目標安排宣布
這一塊重要引見了若何請求一個收費的域名空間(收費15天罷了啦~不外關於進修來講,enough~),固然不是全體收費的,然則我們重要是要弄清晰這個流程,本身走一遍也好,其實不必定要上傳完全的工程,一個jsp頁面或許html靜態頁面都行。
項目標安排和宣布重要有兩種方法:一種是應用FTP上傳,不外這個比擬慢,並且有能夠會喪失數據,小我的經歷是一點一點的發;還有一種方法就是請求域名空間那邊會供給一個安排的情況,我們只需將工程導出為war包,然後把war包安排上去便可。
在項目安排之前有許多細節須要留意,好比要修正一些途徑啊,要修正一些數據啊等等,這些細節在我的博客裡都有具體的解釋。該部門就一篇文章,以下:
域名空間的請求和項目標安排宣布
8. 表單驗證和報表的顯示
前面彌補了一些器械,就是Ajax靜態更新購物車中商品的數目、表單的驗證和報表的顯示。
Ajax靜態更新購物車中商品的數目就是純潔的Ajax技巧,我進修了一下罷了,表單的驗證重要是上岸表單,這個項目裡我沒做上岸了,然則上岸表單我做了一個,驗證功效也做好了,重要用到的是jQuery的Validate驗證插件,這個插件照樣很壯大的,可以直接將上岸表單加到項目中,設置一下響應的跳轉便可。 報表的顯示重要用的是JsChart,這款對象很好用,可以生成呼應的js代碼,我們要做的就是前台發送Ajax要求給後台,依據現實需求從後台掏出數據,傳到前台用JsChart圖表顯示出來便可。
該部門的博文,我列出來放鄙人面:
應用Ajax技巧部分更新商品數目和總價
jQuery-Validate驗證插件的應用步調詳解
應用JsChart技巧在後台顯示商品發賣報表
網上商城這個項目今朝就寫這麼多了,CSDN下載頻道中的源碼和我的博客裡是同步的,年夜家假如有須要可以下載我在CSDN裡上傳的源碼(收費的~我的一切資本均收費)。前期假如要持續完美,我會放到我的github中,也迎接年夜家Follow我的github(固然普通般啦~)Star我上傳的工程~上面是詳細的下載地址:
下載地址(與博客內容同步)
GitHub下載地址(前期假如有更新會放在這)
原文地址:http://blog.csdn.net/eson_15/article/details/51479994#download
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。