1. 程式人生 > >(15)javaweb兩種開發模式

(15)javaweb兩種開發模式

 SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。

一、JSP+JavaBean開發模式

1.1、jsp+javabean開發模式架構

在jsp+javabean架構中,JSP負責控制邏輯、表現邏輯、業務物件(javabean)的呼叫。

  JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程式,這種模式下,JavaBean用於封裝業務資料,JSP即負責處理使用者請求,又顯示資料。

例項:jsp+javabeans實現計算器

二.Servlet+JSP+JavaBean開發模式

    在平時的JavaWeb專案開發中,在不使用第三方mvc開發框架的情況下,通常會選擇Servlet+JSP+JavaBean開發模式來開發JavaWeb專案,Servlet+JSP+JavaBean組合開發就是一種MVC開發模式了,控制器(Controller)採用Servlet、模型(Model)採用JavaBean、檢視(View)採用JSP。在講解Servlet+JSP+JavaBean開發模式之前,先簡單瞭解一下MVC開發模式。


2.2、標準MVC模型概述

  MVC模型:是一種架構型的模式,本身不引入新功能,只是幫助我們將開發的結構組織的更加合理,使展示與模型分離、流程控制邏輯、業務邏輯呼叫與展示邏輯分離。如下圖(圖2-2)所示:


2.3、MVC(Model-View-Controller)的概念

首先讓我們瞭解下MVC(Model-View-Controller)的概念:

  Model(模型):資料模型,提供要展示的資料,因此包含資料和行為,可以認為是領域模型(domain)或JavaBean元件(包含資料和行為),不過現在一般都分離開來:Value Object(資料) 和 服務層(行為)。也就是模型提供了模型資料查詢和模型資料的狀態更新等功能,包括資料和業務。

  View(檢視):負責進行模型的展示,一般就是我們見到的使用者介面,客戶想看到的東西。

  Controller(控制器):接收使用者請求,委託給模型進行處理(狀態改變),處理完畢後把返回的模型資料返回給檢視,由檢視負責展示。 也就是說控制器做了個排程員的工作。

  從圖2-1我們還看到,在標準的MVC中模型能主動推資料給檢視進行更新(觀察者設計模式,在模型上註冊檢視,當模型更新時自動更新檢視),但在Web開發中模型是無法主動推給檢視(無法主動更新使用者介面),因為在Web開發是請求-響應模型。

  那接下來我們看一下在Web裡MVC是什麼樣子,我們稱其為 Web MVC 來區別標準的MVC。

2.4.、Web MVC概述

  Web MVC中的M(模型)-V(檢視)-C(控制器)概念和標準MVC概念一樣,我們再看一下Web MVC標準架構,如下圖(圖2-3)所示:



在Web MVC模式下,模型無法主動推資料給檢視,如果使用者想要檢視更新,需要再發送一次請求(即請求-響應模型)。

2.5、Servlet+JSP+JavaBean開發模式介紹

    Servlet+JSP+JavaBean架構其實可以認為就是我們所說的Web MVC模型,只是控制器採用Servlet、模型採用JavaBean、檢視採用JSP,如圖2-3


三、Servlet+JSP+JavaBean開發模式的缺點

  Servlet+JSP+JavaBean(Web MVC)架構雖然實現了檢視和模型分離以及控制邏輯和展示邏輯分離,但也有一些比較嚴重的缺點

3.1、Servlet作為控制器的缺點

  此處的控制器使用Servlet,使用Servlet作為控制器有以下幾個缺點:

  1、控制邏輯可能比較複雜,其實我們可以按照規約,如請求引數submitFlag=toLogin,我們其實可以直接呼叫toLogin方法,來簡化控制邏輯;而且每個模組基本需要一個控制器,造成控制邏輯可能很複雜。現在流行的Web MVC框架(如Struts2)都支援"請求引數submitFlag=toAdd,就可以直接呼叫toAdd方法"這樣的處理機制,在Struts2中類似這樣的處理機制就稱為"動態方法呼叫"

  2、請求引數到模型的封裝比較麻煩,如果能交給框架來做這件事情,我們可以從中得到解放。

3、選擇下一個檢視,嚴重依賴Servlet API,這樣很難或基本不可能更換檢視。

4、給檢視傳輸要展示的模型資料,也需要使用Servlet API,更換檢視技術也要一起更換,很麻煩。

3.2、JavaBean作為模型的缺點

  此處模型使用JavaBean,JavaBean元件類既負責收集封裝資料,又要進行業務邏輯處理,這樣可能造成JavaBean元件類很龐大,所以一般現在專案都是採用三層架構,而不直接採用JavaBean


例項:http://www.cnblogs.com/xdp-gacl/p/3902537.html

相關推薦

(15)javaweb開發模式

 SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。一、JSP+JavaBean開發模式1.1、jsp+javabean開發模式架構在jsp+javabean架構中,J

javaweb開發模式

學生 log 其他 模式 圖片 cnblogs ima nbsp .com 以上截圖來自大神“孤傲蒼狼”的博客,學生收藏做筆記,無其他用法 javaweb的兩種開發模式

2.Mybatis開發模式

throws users pan except family RM Coding apache 不同 普通模式 自定義接口,接口實現類。 思考:需要sqlSessionFactory,生產sqlSession。 UserDao: package dao; import

JSP基礎(九)——Java Web的開發模式

SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式:一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。 一. JSP+JavaBean開發模式 1.1 JSP+JavaBean的開發模式架構         在jsp+

MyBatis的開發模式

之前簡單介紹了 MyBatis 持久層框架對於資料的持久化操作。這一篇是對上篇的補充,介紹幾個相關的知識點。 MyBatis 架構 mybatis配置 SqlMapConfig.xml,此檔案作為mybatis的全域性配置檔案,配置了mybatis的執行環境

Java開發web的幾開發模式

調度 開發模式 process 模板 spring 程序 校驗 透明 class Java開發web的幾種開發模式 Java Web開發方案有多種可供選擇,這裏列舉一些經典的開發模式進行橫向比較,為Java Web的開發模式選擇提供參考。除此之外還有好多方案(如Tape

EF3:Entity Framework三開發模式實現數據訪問

支持 代碼 sql blog flow cli guid 自動完成 main 前言 Entity Framework支持Database First、Model First和Code Only三種開發模式,各模式的開發流程大相徑庭,開發體驗完全不一樣。三種開發模式各有優缺

FTP工作模式:主動模式(Active FTP)和被動模式

ftp 主動(port) 被動(pasv)模式在主動模式下,FTP客戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,然後開放N+1號端口進行監聽,並向服務器發出PORT N+1命令。服務器接收到命令後,會用其本地的FTP數據端口(通常是20)來連接客戶端指定的端口N+1,進行數據傳輸。在被

搜索引擎系列八:solr-部署詳解(solr部署模式介紹、獨立服務器模式詳解、SolrCloud分布式集群模式詳解)

nod 為什麽 用途 serve creat 復制 stand 數據 變量名 一、solr兩種部署模式介紹 Standalone Server 獨立服務器模式:適用於數據規模不大的場景 SolrCloud 分布式集群模式:適用於數據規模大,高可靠、高可用、高並發的場景 二

WebApp專家評委打分的進入模式

text ron wid 開始 兩種 模式 分享 評委打分 ... A模式: 當前PC端的前期設置如下: 【管理員允許時,只針對管理員指定選手】 選項選中。在現場時,管理員點擊 狀態未知 或下方紅框所示按鈕 發出打分允許指令時, 專家評委進入專家打分區後: 可以直接

Apache 工作模式 :prefork 、 worker

文章 serve 共享 生產 servers sta 能力 一個 請求 前言 1·最近這幾篇文章都在講Apache的一些安全與優化,這些針對服務器都是很重要的,掌握這些不僅提升了服務器的安全,還讓服務器的性能大大的提高。這樣就可以讓客戶有很好的體驗感。2·今天這篇文章依

JavaWeb-業務邏輯的判斷方式

第一種,使用html的方式判斷,如 <form action="action.jsp" method="post"> <!-- 通過正則表示式決定輸入的字元 --> 使用者名稱:<input pattern="[a-zA-Z]{3,10}" name="us

設計模式(單例 簡單工廠)

一.設計模式 1.什麼是設計模式 2.為什麼用設計模式 3.什麼時候使用設計模式 4.怎樣用設計模式 二.單例模式 1.單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。 通

區塊鏈C2C點對點系統搭建,區塊鏈點對點交易系統的交易模式你知道嗎?

在平時的交易過程中由於法幣交易受國家監管限制,現在許多交易所都沒有法幣交易版塊,我們平時看到的許多大型的交易所上面寫的是法幣交易,但是卻不是真正的法幣交易,而是點對點交易模式,像比較常見的ZB交易平臺,上面寫著法幣交易,確實C2C點對點交易模式,那麼接下來源中瑞黃顧問(具體加vx:ruiec1688)就給大家

建立後臺任務的程式碼模式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Redis的訊息模式

Redis的兩種訊息模式 佇列模式 釋出訂閱模式 佇列模式 佇列模式下每個消費者可以同時從多個伺服器讀取訊息,但是每個訊息只能被一個消費者讀取。 在佇列模式下其實每次插入的資料都是載入在最前面的,而先插入的資料在後面,列表中始終維持了一個佇列故稱之為佇

序列標註模型中的標記模式

SBME標記法: S 表示 表示單個字的詞(single word) , B表示詞的開始(begin)即首字,M表示詞的中間(Middle)即詞的中間字,E表示詞的結尾(end),即尾字 一般在用數字這樣表示: # -1, unknown # 0-> 'S' # 1->

IPSec 的工作模式及其報文封裝格式

隧道(tunnel)模式:隧道模式保護所有 IP 資料並封裝新的 IP 頭部,不使用原始 IP 頭部進行路由。在 IPSec 頭部前加入新的 IP 頭部,源目為 IPSec peer 地址。並允許 RFC 1918(私有地址)規定的地址參與 VPN 穿越網際網路。 AH Tunnel mode

java 23開發模式總結

五種建立形 1工廠模式     工廠模式關注的是建立單個產品 多個工廠 靜態工廠 2抽象工廠模式     實現倆個介面的方式實現 3單例模式     synchronized4建造者模式  

Redis 設計與實現之RDB 和 AOF 持久化模式詳解

在執行情況下, Redis 以資料結構的形式將資料維持在記憶體中, 為了讓這些資料在 Redis 重啟之後仍然可用, Redis 分別提供了 RDB 和 AOF 兩種持久化模式。 在 Redis 執行時, RDB 程式將當前記憶體中的資料庫快照儲存到磁碟檔案中, 在 Red