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

馬克-to-win:動態(tài)網(wǎng)站項目開發(fā)中,當(dāng)我們jsp表單一提交,應(yīng)提交給誰呢?上一章,我們在講jsp技術(shù)的時候,當(dāng)時我們曾把jsp提交給另外一個jsp處理。這實際上是一個非常不好的實踐,為什么呢?因為Servlet的優(yōu)勢就是java代碼好維護(hù)。換句話說,如果你要維護(hù)純java代碼的話,你應(yīng)寧愿放在Servlet當(dāng)中,也不愿放在jsp 當(dāng)中。因為jsp在能運行前,還需轉(zhuǎn)成一個Servlet。所以當(dāng)你編寫jsp的時候,在eclipse當(dāng)中,當(dāng)你把光標(biāo)放在一個變量上時,這個變量在文件的其他地方,不會高亮。但當(dāng)你編寫Servlet時就不是這樣了。馬克-to-win:所以在實踐當(dāng)中,jsp一般我們提交給一個Servlet。 Servlet負(fù)責(zé)控制(Controller[C])整個兒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會變得非常臃腫,不利于我們維護(hù)代碼。馬克- to-win:馬克 java社區(qū):防盜版實名手機(jī)尾號: 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的返回值,決定跳到那個jsp。