MVC模式中Controller控制器為什么是Servlet?

馬克-to-win:動(dòng)態(tài)網(wǎng)站項(xiàng)目開發(fā)中,當(dāng)我們jsp表單一提交,應(yīng)提交給誰呢?上一章,我們?cè)谥vjsp技術(shù)的時(shí)候,當(dāng)時(shí)我們?cè)裫sp提交給另外一個(gè)jsp處理。這實(shí)際上是一個(gè)非常不好的實(shí)踐,為什么呢?因?yàn)镾ervlet的優(yōu)勢(shì)就是java代碼好維護(hù)。換句話說,如果你要維護(hù)純java代碼的話,你應(yīng)寧愿放在Servlet當(dāng)中,也不愿放在jsp 當(dāng)中。因?yàn)閖sp在能運(yùn)行前,還需轉(zhuǎn)成一個(gè)Servlet。所以當(dāng)你編寫jsp的時(shí)候,在eclipse當(dāng)中,當(dāng)你把光標(biāo)放在一個(gè)變量上時(shí),這個(gè)變量在文件的其他地方,不會(huì)高亮。但當(dāng)你編寫Servlet時(shí)就不是這樣了。馬克-to-win:所以在實(shí)踐當(dāng)中,jsp一般我們提交給一個(gè)Servlet。 Servlet負(fù)責(zé)控制(Controller[C])整個(gè)兒jsp(V[V]iew)表單提交后的流程。第一步,從request當(dāng)中獲取提交上來的數(shù)據(jù)。第二步調(diào)用bean (M [M]odel),讓bean去處理這些數(shù)據(jù),并返回結(jié)果。通常,復(fù)雜的業(yè)務(wù)處理過程需要和數(shù)據(jù)庫打交道。第三步,處理返回的數(shù)據(jù),比如放在 Session當(dāng)中,之后做跳轉(zhuǎn)。第二步通常非常復(fù)雜,代碼量比較大。如果直接放在Servlet當(dāng)中。Servlet會(huì)變得非常臃腫,不利于我們維護(hù)代碼。馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。

馬克-to-win:小結(jié)一下:

1)MVC=Model(M)+View(V)+Controller(C)
2)View=jsp,Model=java bean,Controller=Servlet
3)jsp提交給Servlet,servlet調(diào)用Bean,把jsp的數(shù)據(jù)傳進(jìn) Bean,根據(jù)bean的返回值,決定跳到那個(gè)jsp。