新聞中心
struts2有必要學(xué)嗎?
完全可以,很多人說,學(xué)了1再學(xué)2很輕松但是學(xué)了2再學(xué)1會有點困難我覺得也是這樣的,反正我當(dāng)初學(xué)1的時候沒怎么明白,但是學(xué)2很快就學(xué)會了總之你要知道他們都是MVC框架,為的是代碼清晰,層次結(jié)構(gòu)明顯另外struts2是webwork2發(fā)展過來的,而且很重要的區(qū)別在于不依賴servelt API,另外action是線程安全的,這個和struts1是不一樣的總之絕對可以

如何實現(xiàn)MVC模式?
最簡單的方法是使用struts或jsf等mvc的框架,本身就是一個實現(xiàn)。如果自己實現(xiàn),比較復(fù)雜的就是要自己寫一個總控制器,接受所有用戶的請求,進行分發(fā)給其他servlet或直接進行頁面跳轉(zhuǎn)。不建議自己實現(xiàn),建議使用一個mvc框架,然后搞明白他的生命周期和原理,再去看框架總控制器的源代碼,這樣比較好。
原理:
jsp發(fā)展經(jīng)歷了兩個模型時代,jsp模型一時代是把代碼都寫在jsp頁面上,用戶訪問jsp頁面時,jsp頁面來對數(shù)據(jù)庫進行操作并返回值到j(luò)sp頁面,這樣第一不好維護,第二安全性不高,第三代碼結(jié)構(gòu)不清晰,第四重用性不高。于是就有了jsp模型二時代,人們將所有的頁面請求交給一個servlet控制器來接受,然后進行分發(fā),由該servlet來決定調(diào)用其他servlet訪問數(shù)據(jù)庫還是進行頁面跳轉(zhuǎn),這個servelt就是MVC中的C,struts中好像叫ActionServlet,Jsf中叫FacesServelt,web.xml中配置的就是總servlet控制器,為了更好的分層,重用,降低依賴性,就有了MVC,由M層接受和綁定用戶的數(shù)據(jù),V層進行展現(xiàn),C層進行控制。
目前主流的開發(fā)模式是四層開發(fā)模式:界面層(page)+動作處理層(action)+業(yè)務(wù)邏輯層(service)+數(shù)據(jù)訪問層(dao),page層用于展現(xiàn)頁面,action層用于捕獲用戶事件并調(diào)用service層處理業(yè)務(wù)邏輯,service要處理業(yè)務(wù)邏輯肯定就要對數(shù)據(jù)庫進行增刪改查,拼接HQL語句,然后調(diào)用dao層對數(shù)據(jù)庫進行操作,hibernate完成的就是DAO層。但是這樣一來action層對service層產(chǎn)生了依賴,因為要創(chuàng)建一個service接口的引用,service層對dao層產(chǎn)生了依賴,就是說實例化一個action層的對象,同時要至少實例化一個service層和至少實例化一個dao層,于是spring的IOC就可以起作用了,就可以降低各層之間的依賴。將各層做為接口對象實例配置到spring中,降低依賴。
Action、Dao、DaoImpl、Service、ServiceImpl各自的作用是什么,他們之間有什么關(guān)系?
你這是Struts2的東東把,這是struts2項目的基本框架,是一個三層結(jié)構(gòu)。
action從service接口得到數(shù)據(jù)負責(zé)處理業(yè)務(wù)與過濾業(yè)務(wù),把數(shù)據(jù)給網(wǎng)頁。service是定義接口,serviceimpl是定義接口的實現(xiàn),是功能代碼編寫地方,它從DaoImpl接口中得到數(shù)據(jù),而dao是對數(shù)據(jù)庫進行操作的代碼。簡而言之,action調(diào)用serviceimpl,service實現(xiàn)serviceimpl,serviceimpl調(diào)用daoimpl,dao實現(xiàn)daoimpl。你看看struts2三層結(jié)構(gòu)就知道怎么回事了到此,以上就是小編對于struts2 action的問題就介紹到這了,希望這3點解答對大家有用。
網(wǎng)頁題目:struts2有必要學(xué)嗎?(Struts2實現(xiàn)Action的方式有哪些)
分享地址:http://www.5511xx.com/article/cddopgc.html


咨詢
建站咨詢
