程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Javaweb學習筆記--分層設計,javaweb學習筆記--

Javaweb學習筆記--分層設計,javaweb學習筆記--

編輯:JAVA綜合教程

Javaweb學習筆記--分層設計,javaweb學習筆記--


在早期的JavaWeb應用中,JSP文件負責處理業務邏輯,控制網頁流程並創建HTML頁面,JSP文件是一個獨立的,能自主完成所有任務的模塊,

這帶來了一系列問題:
HTML代碼和Java程序代碼強耦合在一起
內嵌的流程控制邏輯
調試困難
可維護性差
可讀性差

為了解決以上問題,SUN公司先後制定了兩種設計模式:jspmodel1以及jspmodel2

本質區別:在於負責流程控制的組件不同。

0x01 Model1

在JSP Model1中,JSP頁面負責調用模型組件來響應客戶請求,並將處理結果返回給用戶。
JSP既要負責流程控制,還要負責產生用戶界面,因此它要同時充當視圖和控制器的需要,但它不適合開發復雜的大型應用程序。

0x02 MOdel2

JSP Model2用JSP技術實現視圖的功能,用Servlet技術實現控制器的功能,用JavaBean實現模型的功能:

Servlet充當控制器的角色,負責處理客戶請求,創建JSP頁面需要使用的JavaBean對象,並更具客戶請求選擇合適的JSP頁面返回給客戶。 在JSP頁面內沒有流程控制邏輯,它僅負責檢索原先由Servlet創建的JavaBean對象,並把JavaBean對象包含的數據作為動態內容插入到靜態模板中。 它清晰地分離了數據展示,數據處理和流程控制。

在Model2中,使用一個Servlet或者Filter充當控制器Controller,所有現代的Web框架都是Model2實現。像Struct1和spring MVC這類框架是在他們的MVC架構中使用一個Servlet Controller,而Structs2則使用Filter。 盡管也支持其他的View技術,但一般來說,它用JSP頁面作為應用程序的View。至於Model,則是使用POJO對象。許多人選擇使用JavaBean保存模型對象的狀態,並將業務邏輯轉移到一個Action類中。

在Model2應用程序中,每一個HTTP請求都必須被定向到Controller中。請求的URI告訴控制器要調用那一個Action。Action是指應用程序能夠執行的一項操作。一個Action類可以用來服務幾個不同的Action或單個Action。控制器會仔細查看URI,決定要調用哪一項Action。它還會將模型對象保存在一個可以通過View訪問到的地方,以便服務器端的值可以在浏覽器中顯示出來。最後,控制器用一個RequestDIspatcher跳轉到一個View。在View(JSP)頁面中,利用EL表達式和定制標簽來顯示值。

0x03 MVC

目前,javaee體系主要采用的是MVC模式,MVC是模型(model),視圖(view)和控制(controller)的縮寫。 這種技術是某model2實現的。

MVC主要用於實現web系統的職能分工。

在MVC分層結構中:
model層主要實現系統中的業務邏輯,通常可以用javabean或EJB來實現。
view層主要是用於和用戶的交互,主要用jsp來實現。
controller是model和view之間溝通的橋梁,他可以分派用戶的請求,並選擇恰當的view來實現交互,同時可以解析用戶得輸入,並將其映射成模型層可以執行的操作。通常用servlet實現。

0x04 什麼是三層架構(three-tier application)

通常意義上的三層架構:把整個業務應用分為三層:表現層(UI),業務邏輯層(BLL),數據訪問層(DAL)

三層架構的目的:高內聚,低耦合。

表現層(UI):通俗地講,是展現給用戶的東西,也就是用戶在使用應用的時候能看到的一切。

業務邏輯層(BLL):根據具體問題的操作,對數據業務進行邏輯的處理

數據訪問層:(DAL):直接對數據庫進行操作,也就是對數據庫進行增刪查改等操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved