版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 / 17 1) 拷貝下面所說的.java 文件, 9 個(gè) java 文件和相應(yīng)的包名,這些都是大果任封裝好的文件,可以直接用。2)dao 包里面有: dao.java 還有一個(gè)impl包: idao.java manager包里面有:ibasemanager.java imanager.java iuserloginmanager.java 還有一個(gè)impl 包: basemanager.java struts包里面有:applicationrperties 還有一個(gè) action包: baseaction.java iaction.java utils包里面有:
2、myactionproxy.java objectutils.java 再把perties 貼到 src 包下面。2)把a(bǔ)pplicationcontext.xml spring-form.tld spring.tld struts-bean.tld struts-config.xml struts-html.tld struts-logic.tld struts-nested.tld struts-tiles.tld validator-rules.xml web.xml 這些以前寫過的都可以貼過來,你可以直接把這個(gè)項(xiàng)目里的都貼過去,以后就直接在這里該代碼就行了。以上兩個(gè)步
3、驟樣就是為了完成手寫ssh 代碼3)新建一個(gè)pojo 包:2 / 17 創(chuàng)建一個(gè)實(shí)體:先讓這個(gè)類實(shí)現(xiàn)序列接口如:然后寫相應(yīng)的字段:利用 get 和 set 方法生成每個(gè)字段的get() 和 set() 。例如:4)為了更夠生成所以為每一個(gè)字段寫出相應(yīng)的元數(shù)據(jù):1.生成相應(yīng)的表:說明:利用hibernate生成 userlogin表。2.字段 id 的映射,元數(shù)據(jù)要寫在get ()方法前面:3. 字段 username的映射,元數(shù)據(jù)要寫在get ()方法前面:3 / 17 4. 字段 password的映射,元數(shù)據(jù)要寫在get ()方法前面:這樣這個(gè) userlogin.java就完成了。5)右
4、鍵項(xiàng)目名稱找到“屬性”選項(xiàng):找到: xdoclet 點(diǎn)擊這個(gè)出來相應(yīng)的界面:單擊按鈕,出現(xiàn):4 / 17 選中:并單擊確定按鈕。出現(xiàn):點(diǎn)擊“確定”按鈕。6)右鍵項(xiàng)目名稱:5 / 17 執(zhí)行 run xdocle后只要出現(xiàn):就說明你的userlogin類的創(chuàng)建成功了! !7)新建一個(gè)userlogin.jsp的頁面 (帶 form的那種頁面 ):生成相應(yīng)的頁面后把屬性名稱,改成:6 / 17 給相應(yīng)的action后面添加一個(gè)名字,指明提交表單后走哪個(gè).do 如:8)找到雙擊:在代碼標(biāo)簽中手寫action( 就是上面表單提交后的那個(gè)/*.do):在找到標(biāo)簽,寫上form-bean的代碼:說明:根據(jù)
5、jsp 頁面提交的 /userlogin.do 找到 struts-config.xml里面的 path屬性,根據(jù) name 屬性找到 form-bean標(biāo)簽里的 name 屬性, 以與它對(duì)應(yīng)的type 屬性, type屬性寫的就是pojo 類中 userlogin的全名 (包括包名和類名),parameter屬性是說明表單提交后要執(zhí)行check方法,validate=” false ”屬性說明不使用表單驗(yàn)證框架, scope= ”request ”說明作用域是request ,type= ”屬性寫得就是你一會(huì)要?jiǎng)?chuàng)建的userloginaction的全名 (包括包名和類名),forword標(biāo)簽
6、就是說明要是check 成功后跳轉(zhuǎn)success.jspj, 失敗就跳轉(zhuǎn)failed.jsp頁面。9)根據(jù)上面的xml 文件我們創(chuàng)建相應(yīng)的.java 類和相應(yīng)的jsp 頁面。在 action包里面創(chuàng)建一個(gè),在 web-root下創(chuàng)建一個(gè)普通的頁面。在 manager包里的 impl包里面創(chuàng)建一個(gè)userloginmanager.java文件:7 / 17 在 manager包下創(chuàng)建一個(gè)接口iuserloginmanager.java文件:10 )在 iuserloginmanager.java接口中寫:寫這個(gè)方法,因?yàn)槲覀円跇I(yè)務(wù)邏輯層userloginmanager.java中寫 check
7、() 方法和 hql語句進(jìn)行檢查用戶登錄名稱和密碼是否正確,而userloginmanager.java是實(shí)現(xiàn)iuserloginmanager.java接口的所以就要在這里寫這個(gè)方法。還有一個(gè)原因是這是ssh項(xiàng)目用到了spring ,spring的優(yōu)點(diǎn)就是讓類去實(shí)現(xiàn)接口,體現(xiàn)了解耦合的好處。11 )在業(yè)務(wù)邏輯層userloginmanager.java中寫:讓這個(gè)類繼承basemanager(泛型的 basemanager)還要實(shí)現(xiàn)剛才寫的那個(gè)iuserloginmanager接口。在這個(gè)類里面寫這個(gè)check() 方法是用來檢查用戶在登陸頁面的時(shí)候登錄名和登錄密碼是否與數(shù)據(jù)庫里的一致。具體
8、方法如圖:說明:就是一個(gè)傳給數(shù)據(jù)庫的hql(hibernate 查詢語言 )語句。8 / 17 就是一個(gè)對(duì)象數(shù)組,數(shù)組下標(biāo)從0 開始,values0表示的獲取用戶名的值values1表示的是獲取用戶密碼的值注意:剛才的hql語句第一個(gè)是u.username=?則 values0就是獲取username的值;如果第一個(gè)是u.password=?則 values0就是獲取 password的值。一定要注意位置寫反了就永遠(yuǎn)查不出來了。利用 dao 調(diào)用 findbyhql()方法,里面參數(shù)hql( 剛才的 string hql)和 values( 剛才的對(duì)象數(shù)組 )。返回的結(jié)果用list list
9、來接 (泛型版本的 )。就是如果list 不為空而且里面有相應(yīng)的數(shù)據(jù)(也就是 list 的大小 0) 就說明查詢成功返回 success 否則就返回failed 12 )在中寫代碼:讓此類繼承baseaction, 再把 iuserloginmanager接口作為字段生成set方法,再添加check方法 (添加未實(shí)現(xiàn)方法還要改名為check方法 )。具體代碼如下圖:說明:把 iuserloginmanager接口作為字段(這是一種設(shè)計(jì)模式叫做簡單工廠。) 在 check() 方法中:先實(shí)例化userlogin,利用beanutils的copyproperties(實(shí)例userlogin,act
10、ionform的 arg1) 方法 ,就是把 actionform的實(shí)例 arg1 得到的實(shí)體 (從頁面9 / 17 得到的用戶輸入的用戶名和密碼)整個(gè)拷貝給實(shí)例userlogin。返 回actionmapping的 實(shí) 例arg0的findforward(接 口 的 實(shí) 例 .check(實(shí) 例userlogin)方法。13 )找到修改代碼:1.寫上自己寫的映射文件名稱和路徑。2. 檢查相應(yīng)的包名類名和自己的項(xiàng)目中的包名類名是否一致,如果一致就不用修改。3.把寫的 userloginmanager注入到 spring里面去。4.把 userloginaction注入到 spring里面去。1
11、4 )在中寫一個(gè)說明:登陸成功后進(jìn)入success.jsp會(huì)顯示相應(yīng)的如果登錄失敗就會(huì)顯示404 錯(cuò)誤/failed.do 10 / 17 15 )在 manager包里面創(chuàng)建一個(gè)test 包在創(chuàng)建一個(gè)帶有main() 方法的 test 類:寫這個(gè)測試類就是為了利用for循環(huán)在表里插入相應(yīng)的數(shù)據(jù)i 值是可以變的,在sqlserver2005中光新建一個(gè)數(shù)據(jù)庫sshdenglu就行了,它可以生成userlogin表里面還有循環(huán)插入的數(shù)據(jù)。注意:在中 數(shù)據(jù)庫的名稱和你新建數(shù)據(jù)庫的名稱一樣就行了。寫如下代碼:說明:因?yàn)?在中 對(duì)于實(shí)體類pojo/userlogin.hbm.xml的注入,所以用bea
12、nfactory(bean工廠 )利用 new 一個(gè) xml 文件并把找到的spring的 xml文件放進(jìn)新new 的 xml中去,這樣就可以讓測試類找到注入的相關(guān)東西。不會(huì)解釋,只知道讓測試類找到業(yè)務(wù)邏輯層userloginmanager的代碼就是這樣寫。11 / 17 利用for循環(huán)往數(shù)據(jù)庫里面插入數(shù)據(jù)先用實(shí)體類設(shè)置相應(yīng)的數(shù)據(jù)再把實(shí)體類保存到業(yè)務(wù)邏輯層中。16 )先測試test ,右鍵 main() 方法:執(zhí)行后先看數(shù)據(jù)庫里面是否有userlogin表再打開表查看插入的數(shù)據(jù)是否正確!17 )啟動(dòng) tocat 運(yùn)行項(xiàng)目,登陸查看是否成功,若成功就會(huì)顯示18 )點(diǎn)擊 chaxun后要顯示所有數(shù)
13、據(jù)庫里的東西。創(chuàng)建一個(gè)帶有表單的jsp 頁面然后把 里面的代碼都去掉寫如下代碼:就是為了在查詢成功頁面上顯示:說明:利用 logic :iterate標(biāo)簽和 el 表達(dá)式循環(huán)輸出數(shù)據(jù)庫里面的東西:id= ”bean ”( bean 也以隨便起名字)name= ”list ” (為什么見下邊第21 步) :獲取 id :獲取用戶名:獲取密碼通過 id 刪除通過 id 更新19 )找到往里面填寫查詢所有的方法(checkall():20 )找到也往里面寫查詢所有的方法(checkall():12 / 17 說明:利用 dao.findbyhql()方法, 傳 hql 語句和因?yàn)闆]有第二個(gè)參數(shù)所以寫
14、null 還用 list 來接收如果 list不為空而且大小0 就返回 list( 也就是把所有從數(shù)據(jù)庫里面查到的都返回)否則返回 null 21 )找到:寫代碼,其實(shí)就把剛才寫過的那個(gè)check() 方法復(fù)制一下,然后改寫就行了:把方法名改寫為checkall()方法參數(shù)把 arg0 改成 mapping arg1 改成 form arg2 改成 request arg3改成 response 用 request.setattribute();把 iuserloginmanager接口中的 checkall()方法的返回值設(shè)置給“ list ”這也就是為什么上面的第18 步的頁面中的name
15、= “l(fā)ist ”了。并返回 sucess 22 )找到,在 中寫13 / 17 說明:因?yàn)樵?success.jsp頁面上寫的是cha xun 所以 path= “/check” parameter=”checkall”(執(zhí)行 checkall方法 ) 不使用驗(yàn)證框架作用域?yàn)閞equest 成功返回checksucess.jsp 失敗返回failed.do 23 )測試一下數(shù)據(jù)庫里面的數(shù)據(jù)能否顯示24 )找到寫一個(gè)刪除的方法:要利用 id 刪除數(shù)據(jù)所以傳主鍵id 。25 )找到寫相應(yīng)的刪除方法:說明:利用 dao 調(diào)用 delete() 方法,這個(gè)參數(shù)是一個(gè)實(shí)體,所以還要用dao.get()
16、 獲得實(shí)體,get() 的需要 2 個(gè)參數(shù)一個(gè)是實(shí)體類一個(gè)是id 所以要寫成:dao.get(userlogin.class,id)再把它放進(jìn)dao.deiete()里面就是:dao.deiete(dao.get(userlogin.class,id) ;這樣了返回是 boolean型所以返回true 。26 )找到:寫相應(yīng)的刪除方法。說明:獲取一行數(shù)據(jù)的id 號(hào)14 / 17 通過傳 id 執(zhí)行接口中的刪除方法,返回成功或者失敗。27 )在 checksucess.jsp中頁面上寫的是:所以在中的 標(biāo)簽中寫:說明:path= “/del ”說明是del.do parameter=“ delb
17、yid”執(zhí)行 delbyid方法不使用驗(yàn)證框架作用域 request 因?yàn)槲乙鼊h除后還在本頁不跳另一個(gè)頁面所以我寫的是check.do也就是本頁的意思失敗跳到failed.do 28) 執(zhí)行一下看看能否刪除(不報(bào)錯(cuò) ),報(bào)錯(cuò)了在檢查一下看看哪里寫錯(cuò)了,尤其是是否和自己起的名字是否一樣?要不就是返回值的問題和在action中哪里返回的是空值。29) 找到,在方法中寫一個(gè)更新的方法。返回 list 結(jié)果集,也是根據(jù)id 更新,傳id 值。30 )找到,在方法里寫一個(gè)更新的方法:說明:這個(gè)方法的參數(shù)是主鍵id ,通過 dao 調(diào)用 findbyhql()方法,參數(shù)hql 是通過 id 查詢 use
18、rlogin表參數(shù) id 是上面 integer id 傳過來的。返回相應(yīng)的集合(集合里面有用戶名和密碼)。31 )找到也寫一個(gè)更新的方法:15 / 17 說明:接收從頁面?zhèn)鬟^來的id 值注意要進(jìn)行類型轉(zhuǎn)換, 利用 request.setattribute()方法, 第二個(gè)參數(shù)是從接口的實(shí)例中調(diào)用更新的方法(gengbyid()取出的值設(shè)置給第一個(gè)參數(shù)“gengxin ”然后返回成功。32 )找到 : 寫出更新的action 說明:因?yàn)橹袑懙氖牵捍a所以: path屬性 = “/geng ” ,執(zhí)行的是gengbyid()方法所以parameters=“gengbyid” 作用域是reques
19、t所以scope=“request” 如果成功返回gengxin.jsp頁面如果失敗返回failed.do。33 )創(chuàng)建一個(gè)帶form的更新頁面寫一行!34 )測試一下看看點(diǎn)擊更新能否跳轉(zhuǎn)到gengxin.jsp。35 )找到:寫一個(gè)反選更新的方法:它是說明:當(dāng)在gengxin.jsp點(diǎn)擊更新按鈕的時(shí)候執(zhí)行更新的方法。36 )找到也寫一個(gè)反選更新的方法:16 / 17 說明:把實(shí)體userlogin 和它的對(duì)象login作為參數(shù)傳給fxgengbyid(),利用dao調(diào)用update(里面的參數(shù)為對(duì)象login) ,進(jìn)行語句的更新。37) 找到寫一個(gè)反選更新的方法:說明:把上面那個(gè)gengbyid方法復(fù)制過來,改代碼就可以了。先接受從頁面穿過來的id 值并要進(jìn)行強(qiáng)制類型轉(zhuǎn)換;重新 new 一個(gè)實(shí)體;把 actionform里面的值拷貝給新new 的那個(gè)實(shí)體;通過接口的實(shí)例去調(diào)用fxgengbyid()方法,參數(shù)為新new 的實(shí)體;返回跳轉(zhuǎn)的頁面。38) 找到頁面:,把 標(biāo)簽里面的代碼(除了表單、和按鈕的代碼留下以外)全部去掉,寫下面的代碼:說明:利用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 無人機(jī)在工程測量中的應(yīng)用
- 石河子大學(xué)《網(wǎng)頁設(shè)計(jì)與制作》2023-2024學(xué)年期末試卷
- 石河子大學(xué)《軟件項(xiàng)目管理》2023-2024學(xué)年期末試卷
- 石河子大學(xué)《混凝土結(jié)構(gòu)原理道橋方向》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《電路(二)》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《中國文化概論》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《現(xiàn)代設(shè)計(jì)方法》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《嵌入式系統(tǒng)與Ke》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》2021-2022學(xué)年期末試卷
- 沈陽理工大學(xué)《功能型交互設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 一次性付款房屋買賣合同
- 組織行為學(xué)案例分析 組織行為學(xué)案例分析
- 重大事故隱患數(shù)據(jù)表
- 供應(yīng)鏈管理(第3版)高職PPT完整全套教學(xué)課件
- 急性扁桃體炎病人的護(hù)理
- 清淤、清表施工方案
- 2023上海外國語大學(xué)三亞附屬中學(xué)第一次招聘19人筆試備考題庫及答案解析
- 悅納兒童的文化生長東莞市莞城中心小學(xué)“悅納教育”的思與行
- 2022年春期2064國開電大??啤豆芾韺W(xué)基礎(chǔ)》紙質(zhì)形成性考核冊(cè)答案
- 機(jī)械加工初步報(bào)價(jià)自動(dòng)計(jì)算(含各種工時(shí)費(fèi))
- 碳酸氫鎂介穩(wěn)溶液應(yīng)用于萃取分離稀土過程中的基礎(chǔ)研究
評(píng)論
0/150
提交評(píng)論