Jsp+JavaBean模式,Jsp+Servlet模式,MVC模式介紹

csdnzoutao發表於2019-01-16

Jsp+JavaBean模式,Jsp+Servlet模式,MVC模式介紹

鑑於最近一些零基礎的朋友要做專案,我梳理一下web專案的執行流程,主要是說一下理解思路,有什麼不足或不對的,多多理解。

在N久前,傳統的專案有用jsp+JavaBeans開發的,有用JSP+Servlet開發的,還有的是符合mvc的JSP+Servlet+JavaBeans開發的。這些說法都沒有錯。
前面兩個年代久遠,不說了,主要重點說一下,MVC模式。

1.JSP+JavaBean模式:

在現在的開發中, JSP+JavaBean模式開發非常之少了,除非你的專案只有芝麻大一點
它可以說web開發中的是第一代設計模式,主要是JSP充當檢視和控制器,而JavaBeans充當模型。

特點:該模式將業務邏輯與頁面表現進行分離,在一定程度上增加了程式的可除錯性和維護性。
缺點:頁面將控制與顯示集於一身。
結論:簡單,適合小型專案的快速構建與執行。

2.JSP+Servlet模式:

後來慢慢發展,有人使用jsp+servlet模式來開發。
其中就分為:(可能層的定義不這麼叫,我忘了具體的。)

  1. view層——類比jsp前臺互動,比如我們頁面顯示等,但是jsp中也寫了資料互動的東西。JSTL等
  2. web層——類比servlet,它與前臺資料進行互動,又和資料庫打交道,其次它也動態輸出html內。

簡單的例子

servlet層中有a方法,實現和資料庫互動,jsp將註冊資訊提交給servlet,在servlet裡呼叫a方法,來接收sp的資料,然後將資料就和資料庫關聯。

值得一提的是:Servlet和JSP的一大共同點:

Servlet和jsp都可以操作網頁:

• Servlet可以在.java檔案中通過HttpServletResponse物件動態輸出HTML內容,比如out.print()。
• JSP在靜態HTML/JSP中可以嵌入Java程式碼,常見JSTL標籤<%%>,Java程式碼被動態執行後生成新的HTML內容。

也就是說,單單隻用jsp或者serlvet都可以對網頁進行開發,也正是這樣,導致兩者它們都有難以維護和雜亂程式碼的困擾。

所以!揚長避短——MVC(Model-View-Controller)模式非常適合解決這一問題。

3.mvc模式:JSP + Servlet + JavaBean三層架構

MVC模式(Model-View-Controller),是系統分為三個基本部分:模型(Model)、檢視(View)和控制器(Controller):
可以理解為:JSP充當檢視,Servlet充當控制器,JavaBeans充當模型。

  • 1.View層(JSP),前臺互動,比如我們註冊時的資料等等,serlvet就是與前臺資料進行互動的
  • 2.Contrller層(servlet充當):Model與View之間溝通的橋樑, 這個層有業務處理,使用者的註冊登入就可以看做是User的業務,我們就需要將相關的處理程式碼寫到這個層中。
  • 3.Model層:實現系統的業務邏輯,即javaBean,常見的就是封裝物件的屬性、資料庫連線操作等。
  • 常規會寫一個dao層,是屬於mvc裡面Model層抽出來。目的就是更單純的和資料庫打交道,將servlet的資料和資料庫進行互動。

特點:JSP作為檢視,來表現頁面;Servlet作為控制器,控制程式的流程並呼叫業務進行處理;JavaBean封裝了業務邏輯。遵循了MVC設計模式
缺點:沒有統一的開發框架導致開發週期長

圖示:

在這裡插入圖片描述

在MVC開發的軟體系統中,描述如下所示:
在這裡插入圖片描述

通俗的說,就是web broswer通過view層的jsp頁面發出的所有的http請求都應該交給servlet,即控制層來。servlet通過對Javabean,即核心的Model層處理,得到處理結果,然後返回給view層的Jsp頁面。Jsp頁面返回給瀏覽器最後的html網頁。

簡單的例子:

比如使用者的註冊業務——addUser()
前臺取得註冊資訊--封裝到user物件中,然後呼叫user的業務,即註冊功能控制。
這時就跳到Contrller層,然後此層呼叫dao中的方法將資料存入資料庫。

在實際應用中可以這樣理解:
.JSP,.html屬於檢視層,
servlet屬於控制器層,
Class類檔案屬於javabeans。

(上層的依賴下層的,servlet是用JAVA寫的控制器層。)

對應專案的圖示:
在這裡插入圖片描述
這種最經典的mvc模式了。

總結:MVC大體上是jsp+Javabean+Servlet,MVC模式在Web開發中的好處是非常明顯,它規避了JSP與Servlet各自的短板,Servlet只負責業務邏輯而不會通過out.append()動態生成HTML程式碼;JSP中也不會充斥著大量的業務程式碼,這大大提高了程式碼的可讀性和可維護性。


這是原生的設計開發模式,真正的專案開發中,大多使用到框架。關於框架執行流程請看:

SSM框架下web專案執行流程 大白話說微服務架構、spring boot執行流程、

相關文章