SCM項目手把手開發(fā)文檔_第1頁
SCM項目手把手開發(fā)文檔_第2頁
SCM項目手把手開發(fā)文檔_第3頁
SCM項目手把手開發(fā)文檔_第4頁
SCM項目手把手開發(fā)文檔_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SCM項目目手把手開開發(fā)文檔作者:劉長長炯日期:20008-99-16版本:1.0TOC o 1-5 h z u HYPERLINK l _Toc209658883 1SCMM項目手把把手開發(fā)文文檔 PAGEREF _Toc209658883 h 1 HYPERLINK l _Toc209658884 1編寫目目的 PAGEREF _Toc209658884 h 3 HYPERLINK l _Toc209658885 2搭建基基本開發(fā)環(huán)環(huán)境 PAGEREF _Toc209658885 h 3 HYPERLINK l _Toc209658886 2.1安安裝JDKK和MyEcclipsse 5.

2、5/6.0/6.5 PAGEREF _Toc209658886 h 3 HYPERLINK l _Toc209658887 2.2下下載和安裝裝Tomccat PAGEREF _Toc209658887 h 3 HYPERLINK l _Toc209658888 2.3安安裝MySSQL 55.0/66.0 數(shù)數(shù)據(jù)庫 PAGEREF _Toc209658888 h 4 HYPERLINK l _Toc209658889 2.4安安裝MySSQL客戶戶端管理軟軟件Navvicatt Litte(可選選) PAGEREF _Toc209658889 h 4 HYPERLINK l _Toc2096

3、58890 2.5安安裝和配置置郵件服務(wù)務(wù)器 (可選) PAGEREF _Toc209658890 h 5 HYPERLINK l _Tocc20966588991 2.6創(chuàng)建數(shù)據(jù)據(jù)庫和表 PAGEREF _Toc209658891 h 6 HYPERLINK l _Toc209658892 2.6.11創(chuàng)建數(shù)據(jù)據(jù)庫 PAGEREF _Toc209658892 h 6 HYPERLINK l _Toc209658893 2.6.22創(chuàng)建數(shù)據(jù)據(jù)庫表 PAGEREF _Toc209658893 h 6 HYPERLINK l _Toc209658894 2.7準準備必要的的類庫文件件 PAGERE

4、F _Toc209658894 h 6 HYPERLINK l _Toc209658895 3開發(fā)項項目 PAGEREF _Toc209658895 h 7 HYPERLINK l _Toc209658896 3.1創(chuàng)創(chuàng)建mysscm2 Web項項目 PAGEREF _Toc209658896 h 7 HYPERLINK l _Toc209658897 3.2加加入必要的的JAR類庫庫 PAGEREF _Toc209658897 h 8 HYPERLINK l _Toc209658898 3.3導導入JSPP頁面文件件 PAGEREF _Toc209658898 h 9 HYPERLINK l

5、 _Toc209658899 3.4修修改webb.xmll加入Strruts 2過濾器器 PAGEREF _Toc209658899 h 9 HYPERLINK l _Toc209658900 3.5設(shè)設(shè)置Hibbernaate全局局配置文件件 PAGEREF _Toc209658900 h 10 HYPERLINK l _Toc209658901 3.6創(chuàng)創(chuàng)建項目包包結(jié)構(gòu) PAGEREF _Toc209658901 h 11 HYPERLINK l _Toc209658902 3.7開開發(fā)通用工工具類 PAGEREF _Toc209658902 h 12 HYPERLINK l _Toc2

6、09658903 3.7.11utill.MD55Beann PAGEREF _Toc209658903 h 12 HYPERLINK l _Toc209658904 3.7.22utill.maiil.MaailSeenderr PAGEREF _Toc209658904 h 12 HYPERLINK l _Toc209658905 3.7.33filtters.TomccatFoormFiilterr PAGEREF _Toc209658905 h 13 HYPERLINK l _Toc209658906 3.8開開發(fā)實體類類和HBMM文件 PAGEREF _Toc209658906 h

7、13 HYPERLINK l _Toc209658907 3.9開開發(fā)DAOO層 PAGEREF _Toc209658907 h 15 HYPERLINK l _Toc209658908 3.9.11HibeernatteSesssionnFacttory PAGEREF _Toc209658908 h 15 HYPERLINK l _Toc209658909 3.9.22BaseDDAO PAGEREF _Toc209658909 h 16 HYPERLINK l _Toc209658910 3.9.33OpennSesssionIInVieewFillter PAGEREF _Toc209

8、658910 h 16 HYPERLINK l _Toc209658911 3.10開發(fā)用戶戶模塊 PAGEREF _Toc209658911 h 17 HYPERLINK l _Toc209658912 3.10.1BaseeActiionSuupporrt(可選選) PAGEREF _Toc209658912 h 17 HYPERLINK l _Toc209658913 3.10.2UserrActiion類摘摘要設(shè)計 PAGEREF _Toc209658913 h 19 HYPERLINK l _Toc209658914 3.10.3Struuts 22通配符方方式配置 PAGEREF

9、_Toc209658914 h 20 HYPERLINK l _Toc20965589155 3.100.4用戶列表表功能 PAGEREF _Toc209658915 h 20 HYPERLINK l _Toc209658916 3.10.5刪除 PAGEREF _Toc209658916 h 21 HYPERLINK l _Toc209658917 3.10.6表單AJAAX驗證功功能 PAGEREF _Toc209658917 h 21 HYPERLINK l _Toc209658918 3.10.7注冊 PAGEREF _Toc209658918 h 21 HYPERLINK l _To

10、c209658919 3.10.8激活 PAGEREF _Toc209658919 h 23 HYPERLINK l _Toc209658920 3.10.9用戶登錄錄 PAGEREF _Toc209658920 h 23 HYPERLINK l _Toc209658921 3.10.10用戶注銷銷 PAGEREF _Toc209658921 h 23 HYPERLINK l _Toc209658922 3.10.11修改用戶戶自己資料料 PAGEREF _Toc209658922 h 24 HYPERLINK l _Toc209658923 3.10.12取回密碼碼 PAGEREF _Toc

11、209658923 h 24 HYPERLINK l _Toc209658924 3.10.13修改個人人密碼 PAGEREF _Toc209658924 h 25 HYPERLINK l _Toc209658925 3.10.14根據(jù)ID查看用用戶信息 PAGEREF _Toc209658925 h 25 HYPERLINK l _Toc209658926 3.11開發(fā)安全全過濾器模模塊 PAGEREF _Toc209658926 h 25 HYPERLINK l _Toc209658927 3.12開發(fā)后臺臺管理模塊塊(此模塊建建議作為練練習) PAGEREF _Toc209658927

12、h 26 HYPERLINK l _Toc209658928 3.12.1前臺設(shè)計計 PAGEREF _Toc209658928 h 26 HYPERLINK l _Toc209658929 3.12.2用戶管理理概要設(shè)計計 PAGEREF _Toc209658929 h 27 HYPERLINK l _Toc209658930 用戶搜索索 PAGEREF _Toc209658930 h 27 HYPERLINK l _Toc209658931 添加新用用戶 PAGEREF _Toc209658931 h 28 HYPERLINK l _Toc209658932

13、 瀏覽所有有用戶 PAGEREF _Toc209658932 h 28 HYPERLINK l _Toc209658933 刪除用戶戶 PAGEREF _Toc209658933 h 28 HYPERLINK l _Toc209658934 3.13站點全局局配置及加加載 PAGEREF _Toc209658934 h 28 HYPERLINK l _Toc209658935 加載 PAGEREF _Toc209658935 h 28 HYPERLINK l _Toc209658936 修改 PAGEREF _Toc2096589

14、36 h 28 HYPERLINK l _Toc2096588937 3.144安全中心心 PAGEREF _Toc209658937 h 30 HYPERLINK l _Toc209658938 3.14.1頁面設(shè)計計 PAGEREF _Toc209658938 h 30 HYPERLINK l _Toc209658939 3.14.2添加新角角色 PAGEREF _Toc209658939 h 30 HYPERLINK l _Toc209658940 3.14.3瀏覽所有有角色 PAGEREF _Toc209658940 h 30 HYPERLINK l _Toc209658941 3.1

15、4.4添加資源源訪問許可可 PAGEREF _Toc209658941 h 30 HYPERLINK l _Toc209658942 3.14.5瀏覽所有有資源訪問問許可 PAGEREF _Toc209658942 h 30 HYPERLINK l _Toc209658943 4供應(yīng)商商和商品模模塊 PAGEREF _Toc209658943 h 30 HYPERLINK l _Toc209658944 4.1商商店首頁面面 PAGEREF _Toc209658944 h 30 HYPERLINK l _Toc209658945 4.2供供應(yīng)商模塊塊 PAGEREF _Toc209658945

16、 h 32 HYPERLINK l _Toc209658946 4.2.11類設(shè)計 PAGEREF _Toc209658946 h 32 HYPERLINK l _Toc209658947 4.2.22注冊供應(yīng)應(yīng)商用戶 PAGEREF _Toc209658947 h 32 HYPERLINK l _Toc209658948 4.2.33添加供應(yīng)應(yīng)商(TOODO 供供應(yīng)商審批批,隸屬于交交易員模塊塊) PAGEREF _Toc209658948 h 32 HYPERLINK l _Toc209658949 4.2.44查看我的的供應(yīng)商列列表 PAGEREF _Toc209658949 h 32

17、HYPERLINK l _Toc209658950 4.2.55查看所有有供應(yīng)商列表 PAGEREF _Toc209658950 h 33 HYPERLINK l _Toc209658951 4.2.66查看分成成總額 PAGEREF _Toc209658951 h 33 HYPERLINK l _Toc209658952 4.3商商品模塊 PAGEREF _Toc209658952 h 33 HYPERLINK l _Toc209658953 4.3.11類設(shè)計 PAGEREF _Toc209658953 h 33 HYPERLINK l _Toc209658954 4.3.22頁面設(shè)計計

18、PAGEREF _Toc209658954 h 34 HYPERLINK l _Toc209658955 4.3.33添加商品品 PAGEREF _Toc209658955 h 35 HYPERLINK l _Toc209658956 44.3.44瀏覽商品品信息 PAGEREF _Toc209658956 h 35 HYPERLINK l _Toc209658957 4.3.55瀏覽我的的商品列表表 PAGEREF _Toc209658957 h 35 HYPERLINK l _Toc209658958 4.3.66瀏覽商品品列表 PAGEREF _Toc209658958 h 35 HYP

19、ERLINK l _Toc209658959 4.3.77修改商品品信息 PAGEREF _Toc209658959 h 35 HYPERLINK l _Toc209658960 4.3.88商品搜索索 PAGEREF _Toc209658960 h 35 HYPERLINK l _Toc209658961 5購物車車模塊 PAGEREF _Toc209658961 h 35 HYPERLINK l _Toc209658962 5.1頁頁面設(shè)計 PAGEREF _Toc209658962 h 35 HYPERLINK l _Toc209658963 6程序開開發(fā)調(diào)試交交流 PAGEREF _T

20、oc209658963 h 36 HYPERLINK l _Toc209658964 6.1NNo reesultt deffinedd forr acttion XXX and resuult ssucceess(iinputt)的真正正錯誤原因因 PAGEREF _Toc209658964 h 36 HYPERLINK l _Toc209658965 6.22排除法 PAGEREF _Toc209658965 h 37 HYPERLINK l _Toc209658966 6.2.11排除瀏覽覽器及瀏覽覽器版本的的因素 PAGEREF _Toc209658966 h 37 HYPERLINK

21、 l _Toc209658967 6.2.22排除多余余屬性的干干擾 PAGEREF _Toc209658967 h 37 HYPERLINK l _Toc209658968 6.2.33JDK運行行版本和開開發(fā)工具編編譯器版本本是否匹配配? PAGEREF _Toc209658968 h 38 HYPERLINK l _Toc209658969 6.2.44重新發(fā)布布Web應(yīng)用用或者復(fù)制制新的JAAR/Cllass文文件了嘛? PAGEREF _Toc209658969 h 39 HYPERLINK l _Toc209658970 6.2.55Hibeernatte的包加加完整了嘛嘛? PA

22、GEREF _Toc209658970 h 39 HYPERLINK l _Toc209658971 6.2.66別的類似似項目是否否能正常運運行? PAGEREF _Toc209658971 h 40 HYPERLINK l _Toc209658972 6.2.77log44j.prroperrtiess是我們的的好朋友 PAGEREF _Toc209658972 h 40 HYPERLINK l _Toc209658973 6.2.88人不如新新,衣不如舊舊 PAGEREF _Toc209658973 h 41 HYPERLINK l _Toc209658974 6.2.99把能正確確運行

23、的項項目的jaar包集中中起來,分門別類類放置 PAGEREF _Toc209658974 h 41 HYPERLINK l _Toc209658975 6.3關(guān)關(guān)聯(lián)程序源源碼 PAGEREF _Toc209658975 h 42 HYPERLINK l _Toc209658976 6.4JJDK6和和Struuts 22沖突的問問題真實原原因及解決決辦法 PAGEREF _Toc209658976 h 42 HYPERLINK l _Toc209658977 6.5使使用UTFF-8或者者GBK編碼碼的MySSQL實例例 PAGEREF _Toc209658977 h 48 HYPERLIN

24、K l _Toc209658978 6.6另另外一個HHiberrnateeSesssionFFactoory事務(wù)務(wù)的異常 PAGEREF _Toc209658978 h 50 HYPERLINK l _Toc209658979 6.7MMySQLL安裝版停停止運行 PAGEREF _Toc209658979 h 50 HYPERLINK l _Toc209658980 6.8MMyEcllipsee不會自動動刪除項目目里面已經(jīng)經(jīng)去掉的JJAR PAGEREF _Toc209658980 h 50 HYPERLINK l _Toc209658981 6.9MMySQLL導出完整整的建表語語句

25、PAGEREF _Toc209658981 h 51 HYPERLINK l _Toc20996589982 6.100Struuts 22不要加所所有的JAAR文件,否則項目目會報錯 PAGEREF _Toc209658982 h 51編寫目的本文檔列列出了本項項目的基本本開發(fā)步驟驟(只包含含用戶模塊塊和后臺管管理模塊),用于復(fù)習和開發(fā)時參考。開發(fā)時遵遵循的原則則為盡量簡簡單并提高高代碼復(fù)用用,減少重重復(fù)的代碼碼。搭建基本開開發(fā)環(huán)境安裝JDKK和MyEEclippse 55.5/66.0/66.5本項目需要要JDK 1.5(不不要使用JJDK 11.6,因因為發(fā)現(xiàn)可可能會導致致BUG發(fā)發(fā)生而

26、無法法載入Sttrutss 2配置置文件)。本項目使使用MyEEclippse 55.5或者者更高版本本開發(fā),用用其他工具具例如Ecclipsse Jaava EEE版本也也可,主要要用到JSSP編輯器器及Webb項目發(fā)布布功能。下載和安裝裝Tomccat安裝好Toomcatt 6.00(或者55.5及更更高版本)注意: 由于 SStrutts 2和和 Tommcat 5.0 有沖突, 因此不不能用Toomcatt 5.Tomcaat是一款款開源免費費的JSPP服務(wù)器,可可以在 HYPERLINK .org/ 下載并并安裝。建議下載壓壓縮包版本本(文件名名是apaache-tomccat-66

27、.x.xxx.ziip),而不是是Winddows Servvice Insttalleer的EXXE安裝文文件。 解解壓縮到磁磁盤目錄,記記下安裝路路徑例如cc:appachee-tommcat-6.0.14, 和JDKK的安裝一一樣,為了了避免日后后產(chǎn)生問題題錯誤,解解壓縮的路路徑不要帶帶有空格,如如c:PProgrram FFiless。安裝MySSQL 55.0/66.0 數(shù)數(shù)據(jù)庫可以訪問 MySQQL 官方方網(wǎng)站下載載原版安裝裝程序和JJDBC驅(qū)驅(qū)動,請訪訪問: HYPERLINK 6.0.hhtml#win332,下載載安裝包(如如文件myysql-esseentiaal-6.0.

28、5-alphha-wiin32.msi)雙雙擊進行安安裝,在最最后一個屏屏幕點擊啟啟動Connfiguure tthe MMySQLL Serrver now啟啟動實例配配置工具即即可,如下下圖所示。配置過程請請參考視頻頻 HYPERLINK mysql_server_config.exe mysqql_seerverr_connfig.exe。此向?qū)б惨部梢酝ㄟ^過選擇菜單單 開始 所有有程序 MySSQL MySSQL SServeer 6.0 MySQQL Seerverr Insstancce Coonfigg Wizzard來來打開。安裝MySSQL客戶戶端管理軟軟件Navvicatt

29、 Litte(可選選)MySQLL管理工具具,導航貓貓免費版(Naviicat Litee),可獲獲得不低于于SQL Servver的易易用度, 例如可視視化建表, 修改表表結(jié)構(gòu), 創(chuàng)建外鍵鍵, 修改改數(shù)據(jù), 執(zhí)行查詢詢等功能,此軟件的的中文版可可以在 HYPERLINK 下下載*非商商業(yè) - 免費精簡簡版。安裝和配置置郵件服務(wù)務(wù)器 (可選)我們使用的的本機測試試郵件服務(wù)務(wù)器為FoorwarrdMaiil Seerverr,啟動后后的郵箱登登錄頁面是是 HYPERLINK 。在開始菜單單中可啟動動郵件服務(wù)務(wù)器配置工工具,然后后添加一個個itcaast.ccn的域名名,之后再再點擊左側(cè)側(cè)導航中的

30、的本地郵箱箱,添加必必要的測試試用郵箱地地址。創(chuàng)建數(shù)據(jù)庫庫和表創(chuàng)建數(shù)據(jù)庫庫使用任意軟軟件連接至至MySQQL服務(wù)器器,然后創(chuàng)創(chuàng)建數(shù)據(jù)庫庫mysccm。創(chuàng)建數(shù)據(jù)庫庫表執(zhí)行文件bbeansscm.ssql來創(chuàng)創(chuàng)建應(yīng)用程程序運行所所需的表和和基本數(shù)據(jù)據(jù)。準備必要的的類庫文件件系統(tǒng)基于SStrutts 2Hibeernatte+MyySQL開開發(fā),并用用到了一些些前臺技術(shù)術(shù)。下面列列出了用到到的Javva和Weeb層類庫庫:Strutts 2*Hibeernatte 3MySQLL JDBBC 驅(qū)動動JavaMMail + JAAF(Jaava激活活框架 JJava Actiivatiion FFra

31、meeworkk, Jaava對象象變成字符符串形式來來傳播)*JSTLL類庫(可從從apacche-ttomcaat-6.0.144webbappssexaampleesWEEB-INNFliib下找到到)jsttl.jaar sttandaard.jjarCommoons-(以及Coommonns-IOO)注:加*的的包可使用用MyEcclipsse自帶的的類庫。Web框架架(跨瀏覽覽器)FckEdditorr 可視化化編輯HTTMLXLoaddTreee 動態(tài)加加載XMLL生成JaavaSccriptt樹組件jQuerry AJJAX框架架查詢DDOM對象象,簡潔,現(xiàn)現(xiàn)成控件較較少Ext

32、JSS exttjs.ccom 比比較全面的的AJAXX框架 樹樹,菜單,表格編輯輯器(Grrid)學學習比較困困難 顯示公公告(頁面面內(nèi)彈出窗窗口)1. 導入入CSS和和EXT的的JS2. 寫EExt.oonReaad3. 寫入入功能代碼碼EasyVValiddatioon 表單單驗證框架架開發(fā)項目創(chuàng)建mysscm2 Web項項目選擇菜單 Filee NNew Webb Proojectt, 輸入入項目名 mysccm2,選選擇J2EEE 1.4。注意:不要要選擇Jaava EEE 5,因因為會導致致JavaaMaill類庫沖突突。加入必要的的JAR類類庫將必須的JJAR包復(fù)復(fù)制到WEEB-

33、INNF/liib下。小提示:HHiberrnatee的類庫可可以通過點點擊菜單 MyEcclipsse Add Hibeernatte Caapabiilitiies.來添加(此此菜單位置置可能略有有出入),并并同時指定定數(shù)據(jù)庫連連接信息及及創(chuàng)建Hiibernnate全全局配置文文件。strutts2-bblankk-2.00.11.2.waar - 5個基基本的Sttrutss 2 JJARstrutts2-sshowccase-2.warr - 和 IIOJSTL從從tomccat下找找 webaappsexammplessWEBB-INFFlibbMYSQLL 驅(qū)動Hi

34、berrnatee的包導入JSPP頁面文件件為了節(jié)約時時間,JSSP文件我我們將不再再一一從頭頭開發(fā)。將將項目所需需的頁面和和相關(guān)資源源從mysscm項目目中復(fù)制到到本項目的的WebRRoot下下即可(不不要復(fù)制wweb.xxml及源源代碼文件件)。提示:如果果文件顯示示為帶?號號的圖標,如如右圖所示示:,這不不是文件錯錯誤,是因因為原來的的項目帶了了CVS版版本控制信信息,可在在項目上選選擇上下文文菜單Teaam Discconneect來解決決此問題。CVS版本本控制,后后面會介紹紹。修改webb.xmll加入Sttrutss 2過濾濾器struuts2org.apacche.sstrut

35、ts2.ddispaatcheer.FiilterrDisppatchherstruuts2/*設(shè)置Hibbernaate全局局配置文件件創(chuàng)建文件ssrchhiberrnatee.cfgg.xmll,修改文文件中的數(shù)數(shù)據(jù)庫連接接信息:orgg.hibbernaate.ddialeect.MMySQLLDiallectjdbcc:myssql:/loccalhoost:33306/beannscm?useUUnicoode=ttrue&;charracteerEnccodinng=GBBKroott12344comm.myssql.jjdbc.Drivvertruee請將代碼中中紅色內(nèi)容容修改為

36、您您自己的數(shù)數(shù)據(jù)庫連接接IP,用用戶名和密密碼。自動建表,IINDEXX不推薦。手工建表表。創(chuàng)建項目包包結(jié)構(gòu)建議的包命命名的規(guī)則則是:公司司域名.模模塊名.子子模塊名開發(fā)通用工工具類這些類和具具體的業(yè)務(wù)務(wù)無關(guān),因因此我們要要單獨開發(fā)以以下的幾個個類。util.MD5BBeanMD5摘要要計算難點:獲取取MD5算算法和轉(zhuǎn)116進制字字符串顯示示。util.maill.MaiilSennder 郵件發(fā)送難點:mmessaage.aaddReecipiientss(Messsagee.ReccipieentTyype.TTO, IInterrnetAAddreess .pparsee(gettTo(

37、);iff(isHHtmlFFormaat() mmessaage.ssetCoontennt(geetBoddy(), teext/hhtml;charrset=GBK); elsee mmessaage.ssetTeext(ggetBoody();發(fā)附件 發(fā)一一個動態(tài)的的保單JPPG過程:創(chuàng)建連接屬屬性對象Prroperrtiess proops = neww Proopertties();prrops.put(ttocoll, smmtp );/ 協(xié)議,必必須設(shè)置后邊的屬性性是可選的的/propps.puut(mmail.smtpp.hosst, loccalhoost );/ 服務(wù)器器

38、地址prrops.put(maiil.smmtp.pport, 255 );/ SSMTP 服務(wù)器端端口prrops.put(maiil.deebug, trrue );/ 是否為為調(diào)試模式式創(chuàng)建Sesssionn對象 Sesssion.getIInstaance(propps)創(chuàng)建MimmeMesssagee對象 new MimeeMesssage(sesssion)設(shè)置郵件相相關(guān)信息使用Traanspoort對象象發(fā)送消息息 sesssion.getTTranssportt();cconneect();sennd();filteers.TomccatFoormFiilterr用來解決TTo

39、mcaat表單提提交亂碼問問題(GEET方法提提交亂碼)難點:HtttpSeervleetReqquesttWrappper和和字符串編編碼轉(zhuǎn)換加入到weeb.xmml并編寫寫一個JSSP頁面進進行測試。開發(fā)實體類類和HBMM文件實體類和HHBM文件件可用MyyEcliipse生生成,具體體方法參考考本人所著著的免費電電子書MMyEcllipsee 6 JJava 開發(fā)中文文教程的的7.4.5 使用用反向工程程快速生成成 Javva POOJO 類類,映射文文件和 DDAO一節(jié)節(jié)。當然作作為學習者者來說,推推薦嘗試自自己來手寫寫HBM文文件和Enntityy類,但是是實際開發(fā)時時一般都是是用工

40、具生生成。難點(一對對多和多對對一):Role.hbm.xml Resouurce.hbm.xml 您應(yīng)該了解解下列內(nèi)容容:實體類都有有什么限制制?為什么么?JavaBBean:無參數(shù)的的構(gòu)造器。要有g(shù)eetterr和settter,屬屬性應(yīng)為pprivaate。實體類 eextennds JJavaBBean: 必須實實現(xiàn)javva.ioo.Serrialiizablle,不能能使用fiinal修修飾符,必必須有IDD屬性和至至少一個屬屬性,推薦薦實現(xiàn)haashCoode()和equuals()方法。把HBM文文件加入到到hibeernatte.cffg.xmml中。開發(fā)DAOO層Hiber

41、rnateeSesssionFFactoory跨線程的對對Sesssion進進行統(tǒng)一打打開和關(guān)閉閉, 可配配合Fillter實實現(xiàn)同一次次訪問實現(xiàn)現(xiàn)自動管理理Sesssion和和事務(wù).DAO: loadd() - oppenSeessioon() 讀取數(shù)數(shù)據(jù) - clooseSeessioon() - JSP - userr.adddresss ThreaadLoccal + Fillter解解決Sprinng 提供供了方案 OpennSesssionIInVieewFillterlazy = faalse / 不不推薦fetchh=”joinn” / 不推薦Hiberrnatee.iniit

42、iliizer(entiity);queryy 有個關(guān)關(guān)鍵字 ffetchh, frrom UUser fetcch?1. 創(chuàng)建建SesssionFFactoory2. 創(chuàng)建建 staatic ThreeadLoocal 變量3. 編寫寫獲取Sesssionn和關(guān)閉SSessiion的方方法4. 編寫寫事務(wù)處理理的方法: 開始, 提交, 回滾BaseDDAO小延伸: Hibeernatte中分頁頁相關(guān)的對對象和方法法是哪些?一萬條記錄錄, 從第第200條條開始讀到到第20條.publiic Quuery setFFirsttResuult(iint ffirsttResuult); 設(shè)置開開始

43、讀取的的行數(shù)publiic Quuery setMMaxReesultts(innt maaxRessultss); 設(shè)設(shè)置最多讀讀取的記錄錄數(shù)Queryy q = s.ccreatteQueery(“fromm Useer”);returrn q.setFFirsttResuult(2200).setMMaxReesultts(20).llist();200 = 每頁顯顯示20條條 * 當當前頁100, 每頁頁顯示幾條條練習: 寫寫一個支持持分頁的查查詢方法List pageedQueery(SStrinng hqql, iint ccurreentPaage, int pageeSizee

44、, Obbjectt. paraams)SQL: 列別名selecct suum(loogin_counnt) as 登錄總次次數(shù) ffrom scm_userrOpenSSessiionInnViewwFiltter實現(xiàn)的功能能: 執(zhí)行行后續(xù)的FFilteer和Seervleet/JSSP時,首首先打開事事務(wù),然后后提交事務(wù)務(wù),如果出出現(xiàn)異常則則回滾事務(wù)務(wù), 還解解決了JSSP頁面llazy載載入數(shù)據(jù)時時發(fā)現(xiàn)seessioon被關(guān)閉閉的問題.注意:此FFilteer必須加在所所有的Fiilterr之前,包包括Strruts 2 Fiilterr,否則可可能出現(xiàn)無無法正常提提交事務(wù)的的問題(已

45、已經(jīng)有人遇遇到過此問問題導致無無法正常注注冊).tryy 1. 打開開sesssion并并開始事務(wù)務(wù)2. 向后后執(zhí)行SeervleetChaain, 包括后續(xù)續(xù)DAO和和Actiion等 chaiin.dooFiltter(rrequeest, respponsee);3. 提交交事務(wù) ccatchh (Exxcepttion e) 4. 回滾滾事務(wù)5. 顯示示出錯信息息 ffinallly 6. 關(guān)閉閉sesssion注冊到weeb.xmml.開發(fā)用戶模模塊BaseAActioonSuppportt(可選)此類提供一一些通用的的功能, 包括獲取取Requuest對對象,獲取取參數(shù),獲獲取屬性

46、,DAO等等,這個類類完全是可可選的.屬性列表:baseeDAO 基本的DDAO對象象; tiitle,標題; messsage屬屬性;resettMesssagess() 重重置tittle標題題和messsagee需要注意的的方法:mmergeeParaamsAssURI()/* * 將將所有URRL參數(shù)合合并成一個個URL字字符串(ppage參參數(shù)除外), 提供分頁頁時顯示.list.actiion?ppage=3&paara1=11&ppara22=bb= llist.actiion?ppage=3&paara1=11&ppara22=bb&pagee=3+11 下一頁 * retuu

47、rn 字符串, 如: paraa1=111&parra2=bbb */publlic SStrinng meergePParammsAsUURI() Mapp pparamms = getRRequeest().gettParaameteerMapp();for(SStrinng vaalue : vaaluess) Systtem.oout.pprinttln(valuue= + vaalue);out.appeend(.URLEEncodder.eencodde(keey, UTF-8) + =);out.appeend(.URLEEncodder.eencodde(vaalue, UTT

48、F-8) + &);/ 刪除末尾尾多余的 & 字符符if(out.toSttringg().eendsWWith(&) ouut.deeleteeCharrAt(oout.llengtth() - 1);/* * 獲獲取當前會會話的登錄錄用戶信息息 * retuurn Userr */publlic UUser getSSessiionLoogineedUseer() Useer cuurrenntUseer = (Useer) ggetSeessioon(loggineddUserr);retturn currrentUUser;UserAActioon類摘要要設(shè)計文件上傳相相關(guān)的屬性性:

49、, Striing pphotoo; phooto是表表單域的名名字.1. JDDK 版本本 2. JAR 包沖突 XMML解析器器 Hibbernaate xxmlappis.jjar前臺:頭像: 如何預(yù)覽頭頭像?! (IIE瀏覽器器比較容易易實現(xiàn), 其他的沒沒保證, 安全 IIE6可以以, IEE7和其他他瀏覽器可可以通過降降低安全級級來實現(xiàn)) logoo”img.ssrc = ;Strutts 2通通配符方式式配置采用此配置置可以大大大減少代碼碼量, SStrutts 1中中沒有對等等的內(nèi)容./meessagge.jssp/usser/llist.jspStrutts.xmml 的寫寫法

50、可以從從 Strruts22完整包/app/ strruts22-blaank-.wardelette listt重定向到另另一個Acctionnlisst(Acctionn的namme)Resullt重定向向到另一個個地址/inndex.jsp用戶列表功功能user/listt.acttion UsserAcctionn.lisst() /userr/lisst.jssplist() 1. 查查詢記錄得得到數(shù)據(jù)集集合 reesultts2. ssetAtttribbute(屬性名, reesultts)3. rreturrn 結(jié)果果名list.jsp$useer.naame 刪除 uuser

51、/deleete.aactioon?idd=$uuser.id 修改usser/eeditUUI.acctionn?id=$usser.iid刪除user/deleete.aactioon?idd=3 UseerActtion.deleete() mmessaage.jjsp/ listt.acttion1. fiindByyId() - Userr useer;2. daao.deeletee(useer);表單AJAAX驗證功功能前臺寫法:用戶名: 后臺寫法:Strinng ajjaxVaalidaate1. 用戶戶名敏感詞詞禁止注冊冊BadWoordsFFilteer2. 用戶戶名唯一3

52、. Emmail唯唯一4. 圖片片驗證碼合合法Actioon配置:/ajjax_rrespoonse.jsp/ajaxx_ressponsse.jssp$messsagee注冊/reg.jsp + /rregcoode.jjsp + EassyVallidattion reeg() /messsage.jspregcoode.jjsp(可可用Serrvlett代替) 生成驗證證碼設(shè)置頁面內(nèi)內(nèi)容類型為為圖片清空以前緩緩沖區(qū)創(chuàng)建彩色緩緩沖圖獲取圖形(畫筆)對象填充白色的的背景隨機產(chǎn)生1155條干干擾線,使使圖象中的的認證碼不不易被其它它程序探測測到(可選選)繪制顏色為為紅色生成隨機數(shù)數(shù)字驗證碼碼并

53、存入ssessiion, 然后輸出出到圖片中中設(shè)定字體繪制驗證碼碼到圖片上上關(guān)閉對象, 釋放內(nèi)內(nèi)存, 刷刷新到圖形形對象使用ImaageIOO把內(nèi)存的的圖片編碼碼到輸出流流, 參數(shù)數(shù)依次為: 圖片對對象, 格格式(pnng,jppg), 輸出流難點(可復(fù)復(fù)制粘貼): 2555)fcc = 2255;if (bc 2555)bcc = 2255;intt r = fc + raandomm.nexxtIntt(bc - fcc);intt g = fc + raandomm.nexxtIntt(bc - fcc);intt b = fc + raandomm.nexxtIntt(bc - fcc

54、);retturn new CColorr(r, g, bb);%/隨機機產(chǎn)生1555條干擾擾線,使圖圖象中的認認證碼不易易被其它程程序探測到到g.seetCollor(ggetRaandCoolor(160, 2000);for (intt i = 0; i 155; i+) intt x = ranndom.nexttInt(100);intt y = ranndom.nexttInt(20);intt xl = raandomm.nexxtIntt(12);intt yl = raandomm.nexxtIntt(12);g.ddrawLLine(x, yy, x + xll, y +

55、yll);reg() 注冊方法法檢查sesssionn驗證碼和表表單參數(shù)中中是否一致致檢查輸入的的驗證碼用戶名敏感感詞禁止注注冊密碼MD55保存保存注冊日日期設(shè)置激活狀狀態(tài)為faalse生成一個激激活碼 aactivveCodde并存入入數(shù)據(jù)庫UUID重命名文件件并保存上上傳的圖片片到 /uuploaad獲取/upploadd真實路徑徑重命名為 uuidd.擴展名名()快速復(fù)復(fù)制文件更新頭像的的存儲路徑徑到實體類類發(fā)送激活郵郵件Sttringg acttiveUURL = mysccm2/uuser/actiivatiion.aactioon?coode=+ acctiveeCodee;Stt

56、ringg messsagee = 您注冊了了新用戶, 激活碼碼是: + acctiveeCodee+ , 可點擊此此地址激活活賬戶: + + acctiveeURL + + ;返回注冊結(jié)結(jié)果頁面激活activvatioon() meessagge.jssp從表單參數(shù)數(shù)讀取激活活碼根據(jù)UUIID激活碼碼找到當前前用戶from Userr wheere ttempccode = ?檢查激活狀狀態(tài), 如如果已經(jīng)激激活, 就就提示他無無需重復(fù)激激活更新激活標標志位(aactivve)到數(shù)數(shù)據(jù)庫返回成功激激活/失敗敗信息用戶登錄loginn.jspp lloginn() messsagee.jspp1

57、. 對密密碼進行MMD5摘要要計算2. 是否否存在給定定用戶(根根據(jù)用戶名名查找)檢查是否激激活!3. 如果果用戶存在在, 比較較用戶名, 密碼和和用戶類型型4. 登錄錄成功用戶戶信息存入入Sesssion lloginnedUsser更新登錄次次數(shù)5. 顯示示登錄結(jié)果果6. 根據(jù)據(jù)用戶類型型轉(zhuǎn)向不同同的功能頁頁面1. 管管理員轉(zhuǎn)向向 /addmin/indeex.jssp2. 其其他用戶轉(zhuǎn)轉(zhuǎn)向/weelcomme.jssp用戶注銷logouut.jssp清空sesssionn或者invvaliddate sesssion修改用戶自自己資料user/editt.jspp uupdatte()

58、meessagge.jssp如果是后臺臺管理, 需要根據(jù)據(jù)ID查出出用戶的信信息修改的步驟驟:1. 從AActioon查出用用戶的信息息editUUI()1. fiindByyId() - Userr useer;2. seetAtttribuute(userr, usser)3. 返回回到ediit.jssp2. 顯示示修改表單單頁面user/editt.jspp - 根根據(jù)ID修修改用戶(后臺), 修改自自己的就不不需要.只修改了一一部分字段段3. 提交交到Acttion來來更新數(shù)據(jù)據(jù)updatte()1. 數(shù)據(jù)據(jù)庫找fiindByyId() - Userr useer; 老老記錄(根根據(jù)

59、ID改改才需要)2. 先設(shè)設(shè)置useer部分字字段的新信信息, 再再updaate()如果頭像不不為空, 需要先刪刪掉老頭像像, 再保保存新頭像像并更新到到數(shù)據(jù)庫3. 轉(zhuǎn)向向messsage/4. 顯示示修改結(jié)果果(成功/失敗)取回密碼retriievePPasswword.htm UsserAcctionn.rettriveePwd() + 發(fā)郵件給給用戶 messsagee.jsppEmaill有效性檢檢查根據(jù)Emaail找到到用戶信息息生成一個隨隨機的密碼碼并MD55摘要后更更新到數(shù)據(jù)據(jù)庫發(fā)送取回密密碼通知郵郵件 + 提示用戶戶去檢查郵郵箱修改個人密密碼user/channgePaass

60、word.jjsp UseerActtion.channgePaasswoord() mmessaage.jjsp檢查舊密碼碼不能為空空, 新舊舊密碼必須須一致, 長度限制制1. 確保保用戶登錄錄2. 取出出已登錄用用戶信息3. 檢查查用戶輸入入的舊密碼碼(MD55)是否正正確4. 新密密碼MD55存入數(shù)據(jù)據(jù)庫5. 更新新下sesssionn里面的loogineedUseer對象6. 提示示更新成功功 + 用用戶通知郵郵件(TOODO)根據(jù)ID查查看用戶信信息findBById() userr/vieewInffoByIId.jsspfrom Userr wheere iid = ?用戶信息存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論