MVC
通過(guò)控制器(C),讓不同的視圖(V),顯示不同的數(shù)據(jù)(M)
一.Hello MVC
1.僅僅使用Servlet的短處
Servlet不僅要準(zhǔn)備數(shù)據(jù)犁享,還要準(zhǔn)備html,尤其準(zhǔn)備html,可讀性非常差建邓,維護(hù)起來(lái)也很麻煩。
2.僅僅使用JSP的短處
因?yàn)樵赟ervlet中編寫html有這樣的短板睁枕,所以索性直接在JSP中開(kāi)發(fā)編輯java代碼官边,這時(shí)會(huì)發(fā)現(xiàn),雖然編寫html方便了外遇,但是寫java代碼不如在Servlet中那么方便
3.結(jié)合Servlet和JSP
HeroEditServlet:只用來(lái)從數(shù)據(jù)庫(kù)中查詢Hero對(duì)象注簿,然后跳轉(zhuǎn)到JSP頁(yè)面
editHero.jsp:不做查詢數(shù)據(jù)庫(kù)的事情,直接獲取從HeroEditServlet傳過(guò)來(lái)的Hero對(duì)象跳仿,通過(guò)EL表達(dá)
式把request中的hero顯示出來(lái)
4.MVC設(shè)計(jì)模式
結(jié)合Serlvet和JSP進(jìn)行數(shù)據(jù)的顯示诡渴,就是一種MVC的思想。
M代表模型(Model) , 模型就是數(shù)據(jù)塔嬉,就是dao,bean
V代表視圖(View), 視圖用來(lái)展示模型中的數(shù)據(jù)玩徊,就是網(wǎng)頁(yè),JSP
C代表控制器(controller) 控制器就是把不同的數(shù)據(jù)(Model)谨究,顯示在不同的視圖(View)上恩袱,
在這個(gè)例子中,Servlet就是充當(dāng)控制器的角色胶哲,把Hero對(duì)象畔塔,顯示在JSP上
二.查詢
1.實(shí)體類Hero
2.HeroDAO
用于從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)
3.HeroListServlet
通過(guò)dao獲取所有的heros對(duì)象,然后放在request中鸯屿,跳轉(zhuǎn)到listHero.jsp
4.web.xml
5.listHero.jsp
作為視圖的listHero.jsp澈吨,其作用就是把控制器傳過(guò)來(lái)的數(shù)據(jù)顯示出來(lái)
三.分頁(yè)
1.首先準(zhǔn)備 DAO
2.只顯示5條數(shù)據(jù)
3.下一頁(yè)
4.上一頁(yè)
5.第一頁(yè)
6.最后一頁(yè)
7.邊界處理
8.套上Bootstrap
四.用戶是否登錄
比如網(wǎng)站提供Hero查詢服務(wù),但前提是用戶登錄過(guò)才能使用寄摆,如果用戶登錄過(guò)了谅辣,訪問(wèn)listHero,就讓用戶正常訪問(wèn)婶恼,否則就跳轉(zhuǎn)到登錄界面桑阶。
這是非常常見(jiàn)的場(chǎng)景,通過(guò)使用session來(lái)實(shí)現(xiàn)這個(gè)功能勾邦。在處理登錄的loginServlet中使用將用戶名保存在session中蚣录。在HeroListServlet中查看session中是否為空。如果為空眷篇,就表示用戶沒(méi)有登錄過(guò)萎河,就跳轉(zhuǎn)到登錄頁(yè)面。
1.在LoginServlet 把驗(yàn)證成功的用戶加入到 Session
如果用戶輸入正確的賬號(hào)密碼,就跳轉(zhuǎn)到listHero虐杯,并把用戶名以“userName”放進(jìn)session
如果用戶輸入錯(cuò)誤的賬號(hào)密碼玛歌,就跳轉(zhuǎn)到login.html,讓用戶重新登錄
五.CRUD