




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、信息系統(tǒng)軟件設計本章重點:容器 組件 分層思想 版本發(fā)展不要記 MVC框架&概念 &優(yōu)缺點課程內(nèi)容簡介第一章 Java EE 架構介紹第二章 Jsp 基礎知識第三章 Struts2.0 表現(xiàn)層技術第四章 Spring 2.5 業(yè)務邏輯層技術第五章 Hibernate 3.2 數(shù)據(jù)持久層技術第六章 DWR基于Ajax技術應用框架參考書建議教材:Java EE實用教程基于WebLogic和Eclipse(第2版)李緒成2. Java高級框架應用開發(fā)案例教程 Struts2+Spring+Hibernate,(高等學校計算機科學與技術項目驅動案例實踐規(guī)劃教材)王永貴、郭偉、馮永安、焦學理等,清華大學
2、出版社,2012-3-23;Web編程技術JSP XML JAVAEE(普通高等教育十一五國家級規(guī)劃教材),丁躍潮 主編,出 版 社:科學出版社,2008-3-1;JSP實訓教程(21世紀高等學校規(guī)劃教材 計算機科學與技術),宋智軍,邱仲潘編著,出 版 社:電子工業(yè)出版社,出版時間:2012-7-1主要參考書 Struts2權威指南:基于WebWork核心的MVC開發(fā),李剛,出版社:電子工業(yè)出版社,2007-9-1;Spring技術內(nèi)幕:深入解析Spring架構與設計原理(第2版), 計文柯 機械工業(yè)出版社, 2012-03;精通Hibernate:Java對象持久化技術詳解, 孫衛(wèi)琴, 電子
3、工業(yè)出版社,2010-02出版;輕量級Java EE企業(yè)應用實戰(zhàn)(第3版):Struts 2Spring 3Hibernate整合開發(fā), 李剛,電子工業(yè)出版社, 2012-04;SOA思想、技術與系統(tǒng)集成應用詳解, 梁愛虎, 北京:電子工業(yè)出版社, 2007.12。XML Web Services高級編程范例, 胡海璐等編著, 北京:電子工業(yè)出版社,2003.2. 第1章 Java EE架構介紹1.1 Java EE 概述 Java 發(fā)展過程 90年,Sun公司James Gosling領導的小組設計了一種平臺無關的語言Oak,用于為各種家用電器編程。95.1,Oak改名為Java,5.23
4、Sun正式發(fā)布Java。96.2,Java beta版結束,Java 1.0誕生。97.2,Java發(fā)展到1.1版。1.1 Java EE 概述99.7,重新組織Java平臺的集成方法, 升級到1.2版;Java從一種語言發(fā)展成為一種開發(fā)平臺,并將Java企業(yè)級應用開發(fā)平臺作為發(fā)展方向,出現(xiàn)了Sun ONE和Java平臺的三個版本J2SE、J2ME和J2EE。1.1 Java EE 概述J2EE 1.2 平臺1.1 Java EE 概述J2EE 1.2 關鍵思想應用的邏輯分層,客戶端層、Web層 、EJB層和數(shù)據(jù)層組件概念,將應用中的不同程序分成不同的組件,包括Applet、Applicati
5、on、JSP、Servlet和EJB等組件;服務的標準化,對常見的服務進行標準化,制定標準規(guī)范,例如JMS、JNDI、JTA等;容器的概念,容器為組件提供運行環(huán)境,并為組件提供必要的服務。EJB:Enterprise JavaBean分為三種 :會話bean 實體bean 消息驅動bean會話bean用于處理客戶端請求,可以直接訪問數(shù)據(jù)庫。但是經(jīng)常通過實體bean來訪問數(shù)據(jù)庫。實體bean用于將數(shù)據(jù)庫中的表記錄映射成內(nèi)存中的實體對象。消息驅動bean,客戶端調(diào)用其后,可以直接返回,消息驅動bean可以異步處理用戶請求。1.1 Java EE 概述J2EE 1.31.1 Java EE 概述J2
6、EE 1.3 比較大的變動:Connection API 支持與外部企業(yè)信息系統(tǒng)的集成;需要一個JMS提供者JAXP API 支持對XML的處理JAAS API 對Connection API 的安全支持EJB規(guī)范支持使用IIOP協(xié)議的互操作EJB規(guī)范增加一種新的容器管理持久性模型,支持消息驅動Bean,支持本地EJB1.1 Java EE 概述J2EE 1.4 1.1 Java EE 概述J2EE 1.4 主要目標是支持web service增加幾個API增強許多現(xiàn)有的J2EE API1.1 Java EE 概述Java EE 51.1 Java EE 概述Java EE 5 主要的變動是:
7、J2EE 變成了 Java EE 5用Java 語言元注釋(Annotation) 減少Java EE 部署描述符的使用 注釋主要作用是將資源和其它的依賴注入到Java EE組件中,是對已有的JNDI查找能力的一種補充增加JSTL和JSF技術增加Java 持久性API,簡化Java對象到數(shù)據(jù)庫的映射。1.1 Java EE 概述Java EE 特點:標準:支持許多標準的服務、組件、客戶端、工具,可以跨平臺分布式通用服務,可以由平臺提供通用的服務,例如事物、安全、持久性組件模型,開發(fā)可以分模塊進行,不同應用可以共享代碼、業(yè)務互操作,可以通過標準的協(xié)議與其它系統(tǒng)進行交互1.1 Java EE 概述
8、Java 技術系列的 3 個版本 JavaSE:Java Standard Edition,Java 技術標準版,以界面程序、Java小程序和其它一些典型的應用為目標JavaEE:Java Enterprise Edition,Java技術企業(yè)版,以服務器端程序和企業(yè)軟件的開發(fā)為目標JavaME:Jave Micro Edition,Java技術微型版,為小型設備、獨立設備、互聯(lián)移動設備、嵌入式設備程序開發(fā)而設計1.1 Java EE 概述JavaSE、JavaEE、JavaME 之間的關系圖Java Platform Standard Edition Java SE API.Net Fram
9、eWork.Net FrameWorkJDKJDK 是整個Java的核心,包括了Java運行環(huán)境(Java Runtime Enviornment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什么Java應用服務器實質都是內(nèi)置了某個版本的JDK。軟件開發(fā)層次結構單機最簡單的開發(fā)模式圖示單機應用程序數(shù)據(jù)存儲最簡單的軟件開發(fā)模式,是單機形式軟件開發(fā)層次結構C/S胖客戶端開發(fā)模式:可以在各個客戶端上面運行應用程序,各個客戶端都訪問服務器端的數(shù)據(jù)庫胖客戶端開發(fā)模式圖示軟件開發(fā)層次結構B/S客戶機使用的是瀏覽器,那么連表示邏輯都可以存放在服務器端,稱為瘦客戶端基于 Web 的瘦客戶端開發(fā)
10、模式1.2 Java EE 核心技術簡介 J2EE核心是一組技術規(guī)范與指南,其中所包含的各類組件、服務架構及技術層次,均有共通的標準及規(guī)格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導致企業(yè)內(nèi)部或外部難以互通的窘境1.2 Java EE 核心技術簡介組件技術由開發(fā)人員用來創(chuàng)建企業(yè)應用程序的主要部分,即用戶界面和業(yè)務邏輯。服務技術數(shù)據(jù)庫訪問(JDBC)Java命名與目錄接口 (JNDI)事務服務JTA (Java事務API)JTS (Java事務服務)只需要技術J2EE核心技術:組件技術服務技術通信技術1.2 Java EE 核心技術
11、簡介通信技術提供在客戶端與服務器之間以及不同服務器托管的協(xié)作對象之間進行通信的機制。HTTP(S)RMI (遠程方法調(diào)用)OMG (對象管理組協(xié)議)JMS(Java消息服務)JavaMail (Java電子郵件)連接器架構1.2 Java EE 核心技術簡介JavaEE 中的重要技術規(guī)范例舉JDBC(Java Database Connectivity):JDBC API 為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑 JNDI(Java Name and Directory Interface):JNDI API 被用于執(zhí)行名稱和目錄服務,它提供了一致的模型來存取和操作企業(yè)級的資源或應用服務器中的對
12、象1.2 Java EE 核心技術簡介Java EE的體系結構 運行在客戶端機器上的客戶層組件。如應用客戶端程序和 Applets,是客戶層組件,它們可以直接訪問數(shù)據(jù)庫 運行在 JavaEE 服務器上的 Web 層組件。Java Servlet 和 JavaServer Pages(JSP)是 Web層組件,它們也可以訪問數(shù)據(jù)庫,運行在服務器中的 Web 容器中 運行在 JavaEE 服務器上的業(yè)務邏輯層組件。Enterprise JavaBeans(EJB)是業(yè)務層組件,也可以訪問數(shù)據(jù)庫,運行在服務器中的 EJB 容器中1.2 Java EE 核心技術簡介Java EE的體系結構應用程序客戶
13、端動態(tài)HTML頁面JAVA EE應用程序 1JAVA EE應用程序 2JSP頁面企業(yè)Bean企業(yè)Bean數(shù)據(jù)庫數(shù)據(jù)庫客戶層Web層業(yè)務層EIS 層JAVA EE 服務器機客戶機數(shù)據(jù)庫服務器機客戶層客戶層的組件在客戶機上運行,客戶機可以是筆記本電腦、臺式電腦、掌上電腦和移動電話等Web層Web層組件在JAVA EE 服務器上運行。Web 層對客戶層的請求做出處理及響應業(yè)務層在JAVA EE 服務器上運行。 業(yè)務層實現(xiàn)了應用程序的業(yè)務邏輯.服務器提供系統(tǒng)級服務,如事務管理、安全性和并發(fā)控制EIS 層組件在 EIS 服務器上運行,表示企業(yè)數(shù)據(jù)信息EIS層1.2 Java EE 核心技術簡介1.2 J
14、ava EE 核心技術簡介Java EE 容器和組件Java容器分布性可伸縮性可用性事務性安全性生命周期管理Java組件表示JSP、Servlet 、Applet業(yè)務邏輯EJB數(shù)據(jù)訪問EJB1.2 Java EE 核心技術簡介Java EE平臺基于“容器”(container)的結構提供必要的系統(tǒng)服務。容器向使用Java編寫的面向對象應用程序組件提供運行環(huán)境,并提供一系列的底層服務,例如:安全、事務、生命周期管理、對象查找與緩存、持久化以及網(wǎng)絡通訊等等。容器用來管理組件行為的一個集合工具,組件的行為包括與外部環(huán)境的交互、組件的生命周期、組件之間的合作依賴關系等等。1.2 Java EE 核心技
15、術簡介Java 容器作用容器是一種運行在服務器上的軟件實體,用于管理特定類型的組件,為開發(fā)的J2EE組件提供執(zhí)行環(huán)境。在一個組件被執(zhí)行前,必須被裝配到一個J2EE應用程序中,并且部署到它們的容器。裝配的過程包括為J2EE應用程序中的每一個組件以及J2EE應用程序本身指定容器的設置。容器設置定制了由J2EE服務器提供的底層支持,這將包括諸如安全性、事務管理、Java命名目錄接口(JNDI)搜尋以及遠程序連接。通過容器, J2EE體系結構就能在開發(fā)和部署時,在不同類型的中間層服務器間實現(xiàn)可移植性。容器還負責管理部署在其中的組件的生命周期,及諸如資源匯集和強制執(zhí)行安全之類的工作。依賴于容器的類型,還
16、可以訪問一些或全部J2EE API。1.2 Java EE 核心技術簡介Java EE容器組成Web容器:包括Jsp與Servlet組件,可使用EJB中的組件完成復雜的商務邏輯;EJB容器:包含組件EJB, EJB規(guī)范定義了一個開發(fā)和部署分布式商業(yè)邏輯的框架;Applet容器包含組件Applet,即可使用J2SE開發(fā)Applet;Application Client容器:包含組件Application Client。1.2 Java EE 核心技術簡介Java EE 容器說明Applet 容器是運行在客戶端機器上的web瀏覽器和Java 插件的結合。應用程序客戶端容器管理所有J2EE應用程序中
17、應用程序客戶端組件的執(zhí)行。應用程序客戶端和它們的容器運行在客戶端機器上。Web容器管理所有J2EE 應用程序中JSP頁面和Servlet組件的執(zhí)行。Web組件和它們的容器運行在J2EE服務器上。EJB 容器管理所有J2EE 應用程序中企業(yè)級bean 的執(zhí)行。enterprise bean 和它們的容器運行在J2EE服務器上。1.2 Java EE 核心技術簡介遠程調(diào)用線程調(diào)度授權與驗證分布式管理Bean管理持久化管理任務調(diào)度郵件服務數(shù)據(jù)連接管理WS服務依賴注入異步消息APOEJB容器EJB規(guī)范servicesDAOSAOPOejb-jar.xml業(yè)務層容器功能總結1.2 Java EE 核心技
18、術簡介小孩的積木 積木塊組裝成品JavaEE組件組件間協(xié)作應用程序組件開發(fā)組件開發(fā)1.2 Java EE 核心技術簡介JavaEE是基于組件開發(fā) 請求ServletJavaBeanJSP頁面執(zhí)行調(diào)用轉向響應JSTL使用訪問返回數(shù)據(jù)數(shù) 據(jù) 庫客戶端1.2 Java EE 核心技術簡介Java EE 組件技術 J2EE應用程序是由組件構成的。J2EE組件是具有獨立功能的軟件單元,它們通過相關的類和文件組裝成J2EE應用程序,并與其他組件交互。JavaEE的運行環(huán)境定義了4種類型的應用組件:Applet客戶端Application客戶端Web組件EJB組件1.2 Java EE 核心技術簡介Web
19、組件Web 組件提供了對請求的響應它包含Servlet 和 JSP 兩個 Web 組件,它們在 Web 服務器上運行JavaEE其它核心技術: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、 JDBC、XML、 JNDI(Java Naming and Directory Interface)、 JMAPI(Java Management API)、 JTS/JTA(Java Transaction Service/API)、 JMS( Java Messaging Service)、 Java Security API。1.2 Java EE 核心技術
20、簡介1.2 Java EE 核心技術簡介1.2 Java EE 核心技術簡介 JavaEE核心技術:EJB JavaEE的基石EJB組件 EJB分為三種:會話EJB、實體EJB和消息驅動EJBEJB容器 是EJB組件的運行環(huán)境,為部署的EJB組件提供各種服務(事務、安全、遠程客戶端的網(wǎng)絡發(fā)布、資源管理等)。容器廠商也可以在容器或服務器中提供額外服務的接口。EJB服務器 管理EJB容器的高端進程或應用程序,并提供對系統(tǒng)服務的訪問。1.2 Java EE 核心技術簡介-EJBEJB:企業(yè)級JavaBean(Enterprise JavaBean)是一個用來構筑企業(yè)級應用的服務器端可被管理組件。Ja
21、va EE API提供了對EJB的規(guī)范。EJB是一個封裝有某個應用程序的業(yè)務邏輯服務器端組件。EJB最早于1997年由IBM提出,旋即被太陽微系統(tǒng)采用并形成標準(EJB 1.0 和EJB 1.1)。其后在JCP(Java Community Process)一系列JSR(Java請求規(guī)范,Java Specification Request)被制訂來定義新的EJB標準,分別是JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0)。1.2 Java EE 核心技術簡介-EJBEJB規(guī)范明確了一個應用服務器應當支持的服務,包括:數(shù)據(jù)持久
22、化事務處理并發(fā)控制基于JMS的事件驅動基于JNDI的名字和空間管理基于JCE和JAAS的安全管理應用服務器端的軟件組件部署使用RMI-IIOP協(xié)議的遠程過程調(diào)用將業(yè)務方法暴露為Web服務1.2 Java EE 核心技術簡介-EJBEJB容器可以接受三類EJB會話Bean(Session Beans)無狀態(tài)會話Bean(Stateless Session Beans)有狀態(tài)會話Bean(Stateful Session Beans)實體Bean(Entity Beans)消息驅動Bean(Message Driven Beans ,MDBs)EJB規(guī)范還定義了一個跨平臺的統(tǒng)一部署機制。部署描述符
23、是一個XML文檔,文件名通常為ejb-jar.xml。負責為每一個EJB定義入口。部署描述符的主要內(nèi)容包括:Home接口名Bean的Java類名Home接口的Java接口名組件接口的Java接口名持久化存儲(針對實體Bean)安全策略和角色分配EJB3.0起開始廣泛使用Java注釋替代傳統(tǒng)的部署描述符ejb-jar.xml。但后者仍然有效。1.2 Java EE 核心技術簡介-EJB1.2 Java EE 核心技術簡介Java EE 其它核心技術RMI(Remote Method Invoke):RMI 協(xié)議調(diào)用遠程對象上的方法,是被 EJB 使用的更底層的協(xié)議;XML(Extensible
24、Markup Language):XML 是一種標記語言,它被用來在不同的商務過程中共享數(shù)據(jù),或者對系統(tǒng)功能進行配置;JMS(Java Message Service):JMS 是用于和面向消息的中間件相互通信的應用程序接口1.2 Java EE 核心技術簡介JTA(Java Transaction Architecture):JTA 定義了一種標準的 API,應用系統(tǒng)由此可以訪問各種事務 JavaMail 和 JAF(JavaBeans Activation Framework):JavaMail 是用于存取郵件服務器的 API,JavaMail 利用 JAF 來處理 MIME 編碼的郵件附
25、件1.2 Java EE 核心技術簡介JSP(Java Server Pages):JSP 頁面由 HTML 代碼和嵌入其中的 Java 代碼所組成。服務器在頁面被客戶端所請求以后,對這些 Java 代碼進行處理,然后將生成的 HTML 頁面返回給客戶端的瀏覽器 Java Servlet: Servlet 是一種小型的 Java 程序,是比 JSP 更加底層的組件,完成的功能和 JSP 類似1.3 Servlet基本知識理解HTTP Servlet 基礎知識使用 Servlet API理解Servlet 的生命周期1.3 Servlet基本知識CGI 的工作過程瀏覽器Http Require
26、setstatic htmlCGI 進程1CGI 進程2 1.3 Servlet基本知識Servlet 的工作過程瀏覽器Http Require setstatic htmlServlet 實例線程1線程21.3 Servlet基本知識1“程序”代表一個靜態(tài)的對象,是內(nèi)含指令和數(shù)據(jù)的文件,存儲在磁盤或其他存儲設備中 2“進程”代表一個動態(tài)的對象,是程序的一個執(zhí)行過程,存在于系統(tǒng)的內(nèi)存中。一個進程對應于一個程序3“線程”是運行于某個進程中,用于完成某個具體任務的順序控制流程,有時被稱為輕型進程。1.3 Servlet基本知識Servlet與CGI的對比:CGI采用多進程的方式為并發(fā)客戶請求服務S
27、ervlet采用多線程的方式為并發(fā)客戶請求服務進程占有獨立的資源,運行快,但啟動慢線程共享進程的資源,啟動快,資源沖突時速度慢并發(fā)客戶端量大時,多線程因共享資源而占有很大優(yōu)勢1.3 Servlet基本知識Servlet定義 是一個 Java程序,是在服務器上運行以處理客戶端請求并做出響應的程序,是按照Servlet規(guī)范編寫的java類。IE瀏覽器Servlet引擎Servlet模塊請求響應HTTP請求HTTP響應客戶端WEB服務器1.3 Servlet基本知識整個處理流程如下:HTTP請求:客戶將客戶請求發(fā)送給Servlet引擎;請求:Servlet引擎將請求轉發(fā)送給處理請求的Servlet模
28、塊;響應:Servlet模塊接受請求后,調(diào)用相應的服務(service()對請求進行處理,然后將處理結果返回給Servlet引擎。HTTP響應:Servlet引擎將結果發(fā)送給客戶端。1.3 Servlet基本知識ServletAPIServlet的框架是由兩個java包組成: javax.servlet和javax.servlet.httpjavax.servlet包中定義了所有的servlet類都必須實現(xiàn)的接口和類。javax.servlet.http包中定義了采用HTTP協(xié)議通信的HttpServlet類Servlet的框架的核心是:javax.servlet.Servlet接口,所有的S
29、ervlet都必須實現(xiàn)這一接口.1.3 Servlet基本知識HttpServlet 類提供一個抽象類以創(chuàng)建 HTTP Servletpublic void doGet(HttpServletRequest req, HttpServletResponse res)doGet() 方法處理客戶端作出的 GET 請求。public void doPost(HttpServletRequest req, HttpServletResponse res)doPost() 方法處理客戶端作出的 POST 請求。Form表單處理1.3 Servlet基本知識ServletRequest接口中封裝了客戶請
30、求信息.如客戶請求方式,參數(shù)名,參數(shù)值,客戶端正在使用的協(xié)議,以及發(fā)出客戶請求的遠程主機信息等ServletResponse接口為Servlet提供了返回相應結果的方法1.3 Servlet基本知識javax.servlet 包的接口為:ServletConfig 接口在初始化的過程中由 Servlet 容器使用ServletContext 接口定義 Servlet 用于獲取來自其容器的信息的方法 ServletRequest 接口 向服務器請求信息 ServletResponse 接口 響應客戶端請求1.3 Servlet基本知識ServletInputStream 類用于從客戶端讀取二進制
31、數(shù)據(jù)ServletOutputStream 類用于將二進制數(shù)據(jù)發(fā)送到客戶端1.3 Servlet基本知識javax.servlet.http 包的接口為:HttpServletRequest 接口 提供 HTTP 請求信息HttpServletResponse 接口 提供 HTTP 響應1.3 Servlet基本知識Servlet 部署在容器里,生命周期由容器管理Servlet 的生命周期就是指創(chuàng)建 Servlet 實例之后其存在的時間以及何時消失Servlet的生命周期概括為以下幾個階段:裝載Servlet:這項操作一般是動態(tài)執(zhí)行的;創(chuàng)建一個Servlet實例;調(diào)用Servlet的init(
32、)方法;服務:如果容器接收到對此Servlet的請求,那么它調(diào)用Servlet的service()方法;銷毀:實例被銷毀,通過調(diào)用Servlet的destory()方法來銷毀servlet。1.3 Servlet基本知識Servlet 引擎Servlet 實例第一次請求時創(chuàng)建實例第一次請求時調(diào)用init()方法調(diào)用service()方法銷毀實例時調(diào)用destroy()方法Servlet 的生命周期1.3 Servlet基本知識生命周期的各個階段為:1.3 Servlet基本知識生命周期的 3個方法為: init()service()destroy()1.3 Servlet基本知識init()在
33、Servlet的生命周期中,僅執(zhí)行一次init方法,是在服務器裝入Servlet時執(zhí)行的缺省的init()方法設置了Servlet的初始化參數(shù),并用它的ServletConfig對象參數(shù)來啟動配置Public void init(ServletConfig config) throws ServletException1.3 Servlet基本知識service()在調(diào)用service()方法之前,應確保已完成init()方法 service()方法是Servlet的核心。 每當一個客戶請求一個HttpServlet對象,該對象的service()方法就被調(diào)用;3. 當一個客戶通過HTML表單
34、發(fā)出一個HTTP POST請求時,doPost()方法被調(diào)用4. 當一個客戶通過HTML表單發(fā)出一個HTTP GET請求或者直接請求一個URL時,doGet()方法被調(diào)用1.3 Servlet基本知識1.3 Servlet基本知識destroy()在服務器停止且卸裝Servlet時執(zhí)行該方法當服務器卸裝Servlet時,將在所有service()方法調(diào)用完成后,或在指定的時間間隔過后調(diào)用destroy()方法Public void destroy()1.4 框架模式使用MVC框架的原因在早期使用JSP技術開發(fā)WEB項目時,程序員通過在HTML中嵌入Java代碼和一些標簽,來實現(xiàn)動態(tài)網(wǎng)頁。顯然這
35、種開發(fā)的表現(xiàn)層和業(yè)務處理層是混雜在一起的,其優(yōu)點是簡單直觀,易于搭建原型,但比較適宜開發(fā)只有幾個頁面的小型項目。在大型WEB項目的開發(fā)中,將程序代碼分割成帶有清晰功能的組件是一種更好的方式。MVC框架將網(wǎng)頁內(nèi)容的產(chǎn)生,網(wǎng)頁內(nèi)容的顯示,業(yè)務對象的處理劃分為3個相對獨立的層,因而可以很方便地實現(xiàn)表現(xiàn)層和業(yè)務處理層的分離。同時這也使得網(wǎng)頁制作人員和軟件開發(fā)人員之間可以有明確的分工。單獨使用JSP或JSP+JavaBean稱為Model1。Model1中JSP頁面響應請求并返回結果,同時充當視圖和控制器,未能實現(xiàn)視圖和業(yè)務邏輯完全分離,盡管十分簡單但不適合大型應用開發(fā),給網(wǎng)頁設計和維護帶來很多麻煩。1
36、. 客戶端請求由JSP頁面接受。2. JavaBean處理業(yè)務邏輯,由JSP決定與不同JavaBean交互。3. JavaBean與數(shù)據(jù)持久層交互,由業(yè)務邏輯操作并改變其狀態(tài)。4. 由JSP將改變的結果響應到客戶端。1.4 框架模式Model 1 客戶端JSPJavaBean數(shù)據(jù)庫1234JSP和Servlet可以一起使用來部署Web 應用。Servlet負責控制流管理,而 JSP 則專注于顯示邏輯(編寫HTML)。結合使用JSP和Servlet的開發(fā)模式被稱為Model2,該模式又叫做MVC模式。1. Servlet接受客戶端請求。2. Servlet處理請求并調(diào)用不同的JavaBean。3
37、. JavaBean與數(shù)據(jù)持久層交互,由業(yè)務邏輯操作并改變其狀態(tài)。4. 由Servlet將處理后的JavaBean模型傳遞給JSP頁面。5. 由JSP將后端處理結果展示到客戶端。1.4 框架模式 Model 2客戶端JSPJavaBean數(shù)據(jù)庫1234Servlet51.4 框架模式 Model2工作機制由Servlet通過request.SetAttribute方式與JSP通信,負責請求管理以及調(diào)用相關的業(yè)務邏輯。而JSP則通過request.getAttribute方式獲得所需要的Model信息,并最終顯示在JSP頁面上。這是最基本的MVC Model2,也是一種責任的劃分,實現(xiàn)了各組件間
38、的松散耦合,以后的Struts、Spring 的MVC都是基于這樣的理念。1.4 框架模式851.4 框架模式設計模式的定義什么是設計模式是一套被反復使用、多數(shù)人知曉的、代碼設計經(jīng)驗的總結模式必須是典型問題(不是個別問題)的解決方案設計模式的作用解決一類問題的成功經(jīng)驗是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性1.4 框架模式 MVC框架簡介不同的體系結構的web應用程序可能需要不同的開發(fā)模式。MVC是一種軟件設計模式,最初是為SMALLTALK-80語言提出的,后來在JSP開發(fā)中漸漸得到廣泛的應用,并且成為Sun公司推薦的J2EE平臺的設計模式。Sun公司提出的Model2開發(fā)模
39、型就是基于MVC設計模式的應用。MVC框架支持大多數(shù)現(xiàn)代圖形用戶界面。在Web應用程序開發(fā)中,MVC框架應用非常廣泛,特別適合應用在大型的、比較復雜的項目開發(fā)中。MVC(Model-View-Controller),即模型-視圖-控制器是當前最為流行的Web開發(fā)模式,它把應用程序分成三個核心模塊:模型、視圖、控制器,它們各自處理自己的任務。MVC 設計模式框架是什么MVC 設計模式、思想、目的MVC設計模式即是模型視圖控制器(ModelViewController)設計模式。其中M代表Model,V代表View,C代表Controller。MVC的核心思想是將一個應用程序的數(shù)據(jù)業(yè)務處理功能(模
40、型層),表示功能(視圖層)和控制功能(控制層)在3個不同的部分(也叫層)上分別實現(xiàn)。MVC的目的是增強代碼的復用性,降低數(shù)據(jù)描述和應用操作的可耦合度,并提高代碼的可讀性。同時也可以使軟件的可維護性,可修復性,靈活性和封裝性提高881.4 框架模式 MVC設計模式MVC設計模式模型 Model視圖 View控制器 ControllerMVC 模式控制器模型視圖JavaBeanJSPServlet1.4 框架模式V(視圖)Login.jspsuccess.jspfailure.jspC(控制器)LogServletM(模型)userbean請求成功調(diào)用返回失敗用戶登錄應用模型(Model)封裝了內(nèi)核功能和數(shù)據(jù)業(yè)務邏輯(軟件的核心)數(shù)據(jù)以及訪問它們的函數(shù)(視圖組件使用)執(zhí)行特定應用程序處理的過程(控制器代表用戶調(diào)用)模型對于用戶來說是不可見的(M與V獨立)模型獨立于特定輸出表示或者輸入方式(M與C獨立)用戶只能通過控制器操作模型(C是M與V之間的橋梁)1.4 框架模式1.4 框架模式變更-傳播機制(1)一個模型可對應多個視圖 如果用戶通過一個視圖的控制器改變了模型中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東聊城高三一模數(shù)學試卷試題答案詳解
- 協(xié)議出讓土地合同范例
- 業(yè)務服務咨詢合同范例
- 專題03 天氣與氣候-2025年中考地理一輪復習知識清單(背誦版)
- 同城買貓合同范例
- sd卡采購合同范例
- 班主任如何關注學生的情緒變化計劃
- 以美術為載體的主題教育活動計劃
- 企業(yè)安全成本的控制與管理計劃
- 如何選擇合適的投資渠道計劃
- 華東師范大學《社會學概論》2023-2024學年第一學期期末試卷
- 少先隊活動課《民族團結一家親-同心共筑中國夢》課件
- 2024年四川省公務員錄用考試《行測》真題及答案解析
- 防彈衣市場分析及投資價值研究報告
- 3.1《中國科學技術史序言(節(jié)選)》課件
- 生態(tài)旅游學課程設計
- 智能制造系統(tǒng)解決方案“揭榜掛帥”項目申報書
- 《管理研究方法》教學大綱
- 食材配送總體服務計劃方案
- 2024年機動車駕駛員考試《科目一》試卷及解答參考
- 2024人工智能開源大模型生態(tài)體系研究報告
評論
0/150
提交評論