采用Java Web所實(shí)現(xiàn)的MVC結(jié)構(gòu)圖如下,其中控制器部分采用Servlet來(lái)實(shí)現(xiàn),模型部分采用JavaBean來(lái)實(shí)現(xiàn),而大部分的視圖采用Jsp頁(yè)面來(lái)實(shí)現(xiàn)。
思想基礎(chǔ)
JSP+JavaBean兩層結(jié)構(gòu)工作原理應(yīng)該是比較熟悉的,也比較好理解。
但是有一點(diǎn)必須要清楚就是用戶通過(guò)瀏覽器來(lái)發(fā)送網(wǎng)頁(yè)的請(qǐng)求,此請(qǐng)求到達(dá)服務(wù)器后在服務(wù)器端查找對(duì)應(yīng)的網(wǎng)頁(yè),如果是首次請(qǐng)求(第二次就不用解釋執(zhí)行了),對(duì)于JSP來(lái)說(shuō)要生成Servlet,然后通過(guò)Servlet引擎來(lái)執(zhí)行 Servlet,把調(diào)用JavaBean的結(jié)果嵌入到頁(yè)面中返回給用戶的瀏覽器。
JSP+JavaBean+Servlet三層結(jié)構(gòu)的實(shí)質(zhì)是多了一個(gè)Controller:Servlet來(lái)分發(fā)客戶端瀏覽器的請(qǐng)求。如果把起控制器作用的Servlet的作用理解為對(duì)客戶端的請(qǐng)求進(jìn)行預(yù)處理對(duì)理解Servlet將有很大的幫助。通過(guò)web.xml配置文件可以找到用戶請(qǐng)求和特定的 Servlet的對(duì)應(yīng)關(guān)系,每個(gè)Servlet都有一個(gè)特定的Servlet對(duì)象與之對(duì)應(yīng),所以說(shuō)處理用戶請(qǐng)求的就是一個(gè)繼承自HttpServlet的 Servlet對(duì)象。