信息系統(tǒng)軟件設(shè)計(jì):第1章 Java EE架構(gòu)介紹_第1頁
信息系統(tǒng)軟件設(shè)計(jì):第1章 Java EE架構(gòu)介紹_第2頁
信息系統(tǒng)軟件設(shè)計(jì):第1章 Java EE架構(gòu)介紹_第3頁
信息系統(tǒng)軟件設(shè)計(jì):第1章 Java EE架構(gòu)介紹_第4頁
信息系統(tǒng)軟件設(shè)計(jì):第1章 Java EE架構(gòu)介紹_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、信息系統(tǒng)軟件設(shè)計(jì)本章重點(diǎn):容器 組件 分層思想 版本發(fā)展不要記 MVC框架&概念 &優(yōu)缺點(diǎn)課程內(nèi)容簡介第一章 Java EE 架構(gòu)介紹第二章 Jsp 基礎(chǔ)知識(shí)第三章 Struts2.0 表現(xiàn)層技術(shù)第四章 Spring 2.5 業(yè)務(wù)邏輯層技術(shù)第五章 Hibernate 3.2 數(shù)據(jù)持久層技術(shù)第六章 DWR基于Ajax技術(shù)應(yīng)用框架參考書建議教材:Java EE實(shí)用教程基于WebLogic和Eclipse(第2版)李緒成2. Java高級(jí)框架應(yīng)用開發(fā)案例教程 Struts2+Spring+Hibernate,(高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)項(xiàng)目驅(qū)動(dòng)案例實(shí)踐規(guī)劃教材)王永貴、郭偉、馮永安、焦學(xué)理等,清華大學(xué)

2、出版社,2012-3-23;Web編程技術(shù)JSP XML JAVAEE(普通高等教育十一五國家級(jí)規(guī)劃教材),丁躍潮 主編,出 版 社:科學(xué)出版社,2008-3-1;JSP實(shí)訓(xùn)教程(21世紀(jì)高等學(xué)校規(guī)劃教材 計(jì)算機(jī)科學(xué)與技術(shù)),宋智軍,邱仲潘編著,出 版 社:電子工業(yè)出版社,出版時(shí)間:2012-7-1主要參考書 Struts2權(quán)威指南:基于WebWork核心的MVC開發(fā),李剛,出版社:電子工業(yè)出版社,2007-9-1;Spring技術(shù)內(nèi)幕:深入解析Spring架構(gòu)與設(shè)計(jì)原理(第2版), 計(jì)文柯 機(jī)械工業(yè)出版社, 2012-03;精通Hibernate:Java對象持久化技術(shù)詳解, 孫衛(wèi)琴, 電子

3、工業(yè)出版社,2010-02出版;輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)(第3版):Struts 2Spring 3Hibernate整合開發(fā), 李剛,電子工業(yè)出版社, 2012-04;SOA思想、技術(shù)與系統(tǒng)集成應(yīng)用詳解, 梁愛虎, 北京:電子工業(yè)出版社, 2007.12。XML Web Services高級(jí)編程范例, 胡海璐等編著, 北京:電子工業(yè)出版社,2003.2. 第1章 Java EE架構(gòu)介紹1.1 Java EE 概述 Java 發(fā)展過程 90年,Sun公司James Gosling領(lǐng)導(dǎo)的小組設(shè)計(jì)了一種平臺(tái)無關(guān)的語言O(shè)ak,用于為各種家用電器編程。95.1,Oak改名為Java,5.23

4、Sun正式發(fā)布Java。96.2,Java beta版結(jié)束,Java 1.0誕生。97.2,Java發(fā)展到1.1版。1.1 Java EE 概述99.7,重新組織Java平臺(tái)的集成方法, 升級(jí)到1.2版;Java從一種語言發(fā)展成為一種開發(fā)平臺(tái),并將Java企業(yè)級(jí)應(yīng)用開發(fā)平臺(tái)作為發(fā)展方向,出現(xiàn)了Sun ONE和Java平臺(tái)的三個(gè)版本J2SE、J2ME和J2EE。1.1 Java EE 概述J2EE 1.2 平臺(tái)1.1 Java EE 概述J2EE 1.2 關(guān)鍵思想應(yīng)用的邏輯分層,客戶端層、Web層 、EJB層和數(shù)據(jù)層組件概念,將應(yīng)用中的不同程序分成不同的組件,包括Applet、Applicati

5、on、JSP、Servlet和EJB等組件;服務(wù)的標(biāo)準(zhǔn)化,對常見的服務(wù)進(jìn)行標(biāo)準(zhǔn)化,制定標(biāo)準(zhǔn)規(guī)范,例如JMS、JNDI、JTA等;容器的概念,容器為組件提供運(yùn)行環(huán)境,并為組件提供必要的服務(wù)。EJB:Enterprise JavaBean分為三種 :會(huì)話bean 實(shí)體bean 消息驅(qū)動(dòng)bean會(huì)話bean用于處理客戶端請求,可以直接訪問數(shù)據(jù)庫。但是經(jīng)常通過實(shí)體bean來訪問數(shù)據(jù)庫。實(shí)體bean用于將數(shù)據(jù)庫中的表記錄映射成內(nèi)存中的實(shí)體對象。消息驅(qū)動(dòng)bean,客戶端調(diào)用其后,可以直接返回,消息驅(qū)動(dòng)bean可以異步處理用戶請求。1.1 Java EE 概述J2EE 1.31.1 Java EE 概述J2

6、EE 1.3 比較大的變動(dòng):Connection API 支持與外部企業(yè)信息系統(tǒng)的集成;需要一個(gè)JMS提供者JAXP API 支持對XML的處理JAAS API 對Connection API 的安全支持EJB規(guī)范支持使用IIOP協(xié)議的互操作EJB規(guī)范增加一種新的容器管理持久性模型,支持消息驅(qū)動(dòng)Bean,支持本地EJB1.1 Java EE 概述J2EE 1.4 1.1 Java EE 概述J2EE 1.4 主要目標(biāo)是支持web service增加幾個(gè)API增強(qiáng)許多現(xiàn)有的J2EE API1.1 Java EE 概述Java EE 51.1 Java EE 概述Java EE 5 主要的變動(dòng)是:

7、J2EE 變成了 Java EE 5用Java 語言元注釋(Annotation) 減少Java EE 部署描述符的使用 注釋主要作用是將資源和其它的依賴注入到Java EE組件中,是對已有的JNDI查找能力的一種補(bǔ)充增加JSTL和JSF技術(shù)增加Java 持久性API,簡化Java對象到數(shù)據(jù)庫的映射。1.1 Java EE 概述Java EE 特點(diǎn):標(biāo)準(zhǔn):支持許多標(biāo)準(zhǔn)的服務(wù)、組件、客戶端、工具,可以跨平臺(tái)分布式通用服務(wù),可以由平臺(tái)提供通用的服務(wù),例如事物、安全、持久性組件模型,開發(fā)可以分模塊進(jìn)行,不同應(yīng)用可以共享代碼、業(yè)務(wù)互操作,可以通過標(biāo)準(zhǔn)的協(xié)議與其它系統(tǒng)進(jìn)行交互1.1 Java EE 概述

8、Java 技術(shù)系列的 3 個(gè)版本 JavaSE:Java Standard Edition,Java 技術(shù)標(biāo)準(zhǔn)版,以界面程序、Java小程序和其它一些典型的應(yīng)用為目標(biāo)JavaEE:Java Enterprise Edition,Java技術(shù)企業(yè)版,以服務(wù)器端程序和企業(yè)軟件的開發(fā)為目標(biāo)JavaME:Jave Micro Edition,Java技術(shù)微型版,為小型設(shè)備、獨(dú)立設(shè)備、互聯(lián)移動(dòng)設(shè)備、嵌入式設(shè)備程序開發(fā)而設(shè)計(jì)1.1 Java EE 概述JavaSE、JavaEE、JavaME 之間的關(guān)系圖Java Platform Standard Edition Java SE API.Net Fram

9、eWork.Net FrameWorkJDKJDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Enviornment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。軟件開發(fā)層次結(jié)構(gòu)單機(jī)最簡單的開發(fā)模式圖示單機(jī)應(yīng)用程序數(shù)據(jù)存儲(chǔ)最簡單的軟件開發(fā)模式,是單機(jī)形式軟件開發(fā)層次結(jié)構(gòu)C/S胖客戶端開發(fā)模式:可以在各個(gè)客戶端上面運(yùn)行應(yīng)用程序,各個(gè)客戶端都訪問服務(wù)器端的數(shù)據(jù)庫胖客戶端開發(fā)模式圖示軟件開發(fā)層次結(jié)構(gòu)B/S客戶機(jī)使用的是瀏覽器,那么連表示邏輯都可以存放在服務(wù)器端,稱為瘦客戶端基于 Web 的瘦客戶端開發(fā)

10、模式1.2 Java EE 核心技術(shù)簡介 J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導(dǎo)致企業(yè)內(nèi)部或外部難以互通的窘境1.2 Java EE 核心技術(shù)簡介組件技術(shù)由開發(fā)人員用來創(chuàng)建企業(yè)應(yīng)用程序的主要部分,即用戶界面和業(yè)務(wù)邏輯。服務(wù)技術(shù)數(shù)據(jù)庫訪問(JDBC)Java命名與目錄接口 (JNDI)事務(wù)服務(wù)JTA (Java事務(wù)API)JTS (Java事務(wù)服務(wù))只需要技術(shù)J2EE核心技術(shù):組件技術(shù)服務(wù)技術(shù)通信技術(shù)1.2 Java EE 核心技術(shù)

11、簡介通信技術(shù)提供在客戶端與服務(wù)器之間以及不同服務(wù)器托管的協(xié)作對象之間進(jìn)行通信的機(jī)制。HTTP(S)RMI (遠(yuǎn)程方法調(diào)用)OMG (對象管理組協(xié)議)JMS(Java消息服務(wù))JavaMail (Java電子郵件)連接器架構(gòu)1.2 Java EE 核心技術(shù)簡介JavaEE 中的重要技術(shù)規(guī)范例舉JDBC(Java Database Connectivity):JDBC API 為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑 JNDI(Java Name and Directory Interface):JNDI API 被用于執(zhí)行名稱和目錄服務(wù),它提供了一致的模型來存取和操作企業(yè)級(jí)的資源或應(yīng)用服務(wù)器中的對

12、象1.2 Java EE 核心技術(shù)簡介Java EE的體系結(jié)構(gòu) 運(yùn)行在客戶端機(jī)器上的客戶層組件。如應(yīng)用客戶端程序和 Applets,是客戶層組件,它們可以直接訪問數(shù)據(jù)庫 運(yùn)行在 JavaEE 服務(wù)器上的 Web 層組件。Java Servlet 和 JavaServer Pages(JSP)是 Web層組件,它們也可以訪問數(shù)據(jù)庫,運(yùn)行在服務(wù)器中的 Web 容器中 運(yùn)行在 JavaEE 服務(wù)器上的業(yè)務(wù)邏輯層組件。Enterprise JavaBeans(EJB)是業(yè)務(wù)層組件,也可以訪問數(shù)據(jù)庫,運(yùn)行在服務(wù)器中的 EJB 容器中1.2 Java EE 核心技術(shù)簡介Java EE的體系結(jié)構(gòu)應(yīng)用程序客戶

13、端動(dòng)態(tài)HTML頁面JAVA EE應(yīng)用程序 1JAVA EE應(yīng)用程序 2JSP頁面企業(yè)Bean企業(yè)Bean數(shù)據(jù)庫數(shù)據(jù)庫客戶層Web層業(yè)務(wù)層EIS 層JAVA EE 服務(wù)器機(jī)客戶機(jī)數(shù)據(jù)庫服務(wù)器機(jī)客戶層客戶層的組件在客戶機(jī)上運(yùn)行,客戶機(jī)可以是筆記本電腦、臺(tái)式電腦、掌上電腦和移動(dòng)電話等Web層Web層組件在JAVA EE 服務(wù)器上運(yùn)行。Web 層對客戶層的請求做出處理及響應(yīng)業(yè)務(wù)層在JAVA EE 服務(wù)器上運(yùn)行。 業(yè)務(wù)層實(shí)現(xiàn)了應(yīng)用程序的業(yè)務(wù)邏輯.服務(wù)器提供系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全性和并發(fā)控制EIS 層組件在 EIS 服務(wù)器上運(yùn)行,表示企業(yè)數(shù)據(jù)信息EIS層1.2 Java EE 核心技術(shù)簡介1.2 J

14、ava EE 核心技術(shù)簡介Java EE 容器和組件Java容器分布性可伸縮性可用性事務(wù)性安全性生命周期管理Java組件表示JSP、Servlet 、Applet業(yè)務(wù)邏輯EJB數(shù)據(jù)訪問EJB1.2 Java EE 核心技術(shù)簡介Java EE平臺(tái)基于“容器”(container)的結(jié)構(gòu)提供必要的系統(tǒng)服務(wù)。容器向使用Java編寫的面向?qū)ο髴?yīng)用程序組件提供運(yùn)行環(huán)境,并提供一系列的底層服務(wù),例如:安全、事務(wù)、生命周期管理、對象查找與緩存、持久化以及網(wǎng)絡(luò)通訊等等。容器用來管理組件行為的一個(gè)集合工具,組件的行為包括與外部環(huán)境的交互、組件的生命周期、組件之間的合作依賴關(guān)系等等。1.2 Java EE 核心技

15、術(shù)簡介Java 容器作用容器是一種運(yùn)行在服務(wù)器上的軟件實(shí)體,用于管理特定類型的組件,為開發(fā)的J2EE組件提供執(zhí)行環(huán)境。在一個(gè)組件被執(zhí)行前,必須被裝配到一個(gè)J2EE應(yīng)用程序中,并且部署到它們的容器。裝配的過程包括為J2EE應(yīng)用程序中的每一個(gè)組件以及J2EE應(yīng)用程序本身指定容器的設(shè)置。容器設(shè)置定制了由J2EE服務(wù)器提供的底層支持,這將包括諸如安全性、事務(wù)管理、Java命名目錄接口(JNDI)搜尋以及遠(yuǎn)程序連接。通過容器, J2EE體系結(jié)構(gòu)就能在開發(fā)和部署時(shí),在不同類型的中間層服務(wù)器間實(shí)現(xiàn)可移植性。容器還負(fù)責(zé)管理部署在其中的組件的生命周期,及諸如資源匯集和強(qiáng)制執(zhí)行安全之類的工作。依賴于容器的類型,還

16、可以訪問一些或全部J2EE API。1.2 Java EE 核心技術(shù)簡介Java EE容器組成Web容器:包括Jsp與Servlet組件,可使用EJB中的組件完成復(fù)雜的商務(wù)邏輯;EJB容器:包含組件EJB, EJB規(guī)范定義了一個(gè)開發(fā)和部署分布式商業(yè)邏輯的框架;Applet容器包含組件Applet,即可使用J2SE開發(fā)Applet;Application Client容器:包含組件Application Client。1.2 Java EE 核心技術(shù)簡介Java EE 容器說明Applet 容器是運(yùn)行在客戶端機(jī)器上的web瀏覽器和Java 插件的結(jié)合。應(yīng)用程序客戶端容器管理所有J2EE應(yīng)用程序中

17、應(yīng)用程序客戶端組件的執(zhí)行。應(yīng)用程序客戶端和它們的容器運(yùn)行在客戶端機(jī)器上。Web容器管理所有J2EE 應(yīng)用程序中JSP頁面和Servlet組件的執(zhí)行。Web組件和它們的容器運(yùn)行在J2EE服務(wù)器上。EJB 容器管理所有J2EE 應(yīng)用程序中企業(yè)級(jí)bean 的執(zhí)行。enterprise bean 和它們的容器運(yùn)行在J2EE服務(wù)器上。1.2 Java EE 核心技術(shù)簡介遠(yuǎn)程調(diào)用線程調(diào)度授權(quán)與驗(yàn)證分布式管理Bean管理持久化管理任務(wù)調(diào)度郵件服務(wù)數(shù)據(jù)連接管理WS服務(wù)依賴注入異步消息APOEJB容器EJB規(guī)范servicesDAOSAOPOejb-jar.xml業(yè)務(wù)層容器功能總結(jié)1.2 Java EE 核心技

18、術(shù)簡介小孩的積木 積木塊組裝成品JavaEE組件組件間協(xié)作應(yīng)用程序組件開發(fā)組件開發(fā)1.2 Java EE 核心技術(shù)簡介JavaEE是基于組件開發(fā) 請求ServletJavaBeanJSP頁面執(zhí)行調(diào)用轉(zhuǎn)向響應(yīng)JSTL使用訪問返回?cái)?shù)據(jù)數(shù) 據(jù) 庫客戶端1.2 Java EE 核心技術(shù)簡介Java EE 組件技術(shù) J2EE應(yīng)用程序是由組件構(gòu)成的。J2EE組件是具有獨(dú)立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。JavaEE的運(yùn)行環(huán)境定義了4種類型的應(yīng)用組件:Applet客戶端Application客戶端Web組件EJB組件1.2 Java EE 核心技術(shù)簡介Web

19、組件Web 組件提供了對請求的響應(yīng)它包含Servlet 和 JSP 兩個(gè) Web 組件,它們在 Web 服務(wù)器上運(yùn)行JavaEE其它核心技術(shù): 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 核心技術(shù)

20、簡介1.2 Java EE 核心技術(shù)簡介1.2 Java EE 核心技術(shù)簡介 JavaEE核心技術(shù):EJB JavaEE的基石EJB組件 EJB分為三種:會(huì)話EJB、實(shí)體EJB和消息驅(qū)動(dòng)EJBEJB容器 是EJB組件的運(yùn)行環(huán)境,為部署的EJB組件提供各種服務(wù)(事務(wù)、安全、遠(yuǎn)程客戶端的網(wǎng)絡(luò)發(fā)布、資源管理等)。容器廠商也可以在容器或服務(wù)器中提供額外服務(wù)的接口。EJB服務(wù)器 管理EJB容器的高端進(jìn)程或應(yīng)用程序,并提供對系統(tǒng)服務(wù)的訪問。1.2 Java EE 核心技術(shù)簡介-EJBEJB:企業(yè)級(jí)JavaBean(Enterprise JavaBean)是一個(gè)用來構(gòu)筑企業(yè)級(jí)應(yīng)用的服務(wù)器端可被管理組件。Ja

21、va EE API提供了對EJB的規(guī)范。EJB是一個(gè)封裝有某個(gè)應(yīng)用程序的業(yè)務(wù)邏輯服務(wù)器端組件。EJB最早于1997年由IBM提出,旋即被太陽微系統(tǒng)采用并形成標(biāo)準(zhǔn)(EJB 1.0 和EJB 1.1)。其后在JCP(Java Community Process)一系列JSR(Java請求規(guī)范,Java Specification Request)被制訂來定義新的EJB標(biāo)準(zhǔn),分別是JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0)。1.2 Java EE 核心技術(shù)簡介-EJBEJB規(guī)范明確了一個(gè)應(yīng)用服務(wù)器應(yīng)當(dāng)支持的服務(wù),包括:數(shù)據(jù)持久

22、化事務(wù)處理并發(fā)控制基于JMS的事件驅(qū)動(dòng)基于JNDI的名字和空間管理基于JCE和JAAS的安全管理應(yīng)用服務(wù)器端的軟件組件部署使用RMI-IIOP協(xié)議的遠(yuǎn)程過程調(diào)用將業(yè)務(wù)方法暴露為Web服務(wù)1.2 Java EE 核心技術(shù)簡介-EJBEJB容器可以接受三類EJB會(huì)話Bean(Session Beans)無狀態(tài)會(huì)話Bean(Stateless Session Beans)有狀態(tài)會(huì)話Bean(Stateful Session Beans)實(shí)體Bean(Entity Beans)消息驅(qū)動(dòng)Bean(Message Driven Beans ,MDBs)EJB規(guī)范還定義了一個(gè)跨平臺(tái)的統(tǒng)一部署機(jī)制。部署描述符

23、是一個(gè)XML文檔,文件名通常為ejb-jar.xml。負(fù)責(zé)為每一個(gè)EJB定義入口。部署描述符的主要內(nèi)容包括:Home接口名Bean的Java類名Home接口的Java接口名組件接口的Java接口名持久化存儲(chǔ)(針對實(shí)體Bean)安全策略和角色分配EJB3.0起開始廣泛使用Java注釋替代傳統(tǒng)的部署描述符ejb-jar.xml。但后者仍然有效。1.2 Java EE 核心技術(shù)簡介-EJB1.2 Java EE 核心技術(shù)簡介Java EE 其它核心技術(shù)RMI(Remote Method Invoke):RMI 協(xié)議調(diào)用遠(yuǎn)程對象上的方法,是被 EJB 使用的更底層的協(xié)議;XML(Extensible

24、Markup Language):XML 是一種標(biāo)記語言,它被用來在不同的商務(wù)過程中共享數(shù)據(jù),或者對系統(tǒng)功能進(jìn)行配置;JMS(Java Message Service):JMS 是用于和面向消息的中間件相互通信的應(yīng)用程序接口1.2 Java EE 核心技術(shù)簡介JTA(Java Transaction Architecture):JTA 定義了一種標(biāo)準(zhǔn)的 API,應(yīng)用系統(tǒng)由此可以訪問各種事務(wù) JavaMail 和 JAF(JavaBeans Activation Framework):JavaMail 是用于存取郵件服務(wù)器的 API,JavaMail 利用 JAF 來處理 MIME 編碼的郵件附

25、件1.2 Java EE 核心技術(shù)簡介JSP(Java Server Pages):JSP 頁面由 HTML 代碼和嵌入其中的 Java 代碼所組成。服務(wù)器在頁面被客戶端所請求以后,對這些 Java 代碼進(jìn)行處理,然后將生成的 HTML 頁面返回給客戶端的瀏覽器 Java Servlet: Servlet 是一種小型的 Java 程序,是比 JSP 更加底層的組件,完成的功能和 JSP 類似1.3 Servlet基本知識(shí)理解HTTP Servlet 基礎(chǔ)知識(shí)使用 Servlet API理解Servlet 的生命周期1.3 Servlet基本知識(shí)CGI 的工作過程瀏覽器Http Require

26、setstatic htmlCGI 進(jìn)程1CGI 進(jìn)程2 1.3 Servlet基本知識(shí)Servlet 的工作過程瀏覽器Http Require setstatic htmlServlet 實(shí)例線程1線程21.3 Servlet基本知識(shí)1“程序”代表一個(gè)靜態(tài)的對象,是內(nèi)含指令和數(shù)據(jù)的文件,存儲(chǔ)在磁盤或其他存儲(chǔ)設(shè)備中 2“進(jìn)程”代表一個(gè)動(dòng)態(tài)的對象,是程序的一個(gè)執(zhí)行過程,存在于系統(tǒng)的內(nèi)存中。一個(gè)進(jìn)程對應(yīng)于一個(gè)程序3“線程”是運(yùn)行于某個(gè)進(jìn)程中,用于完成某個(gè)具體任務(wù)的順序控制流程,有時(shí)被稱為輕型進(jìn)程。1.3 Servlet基本知識(shí)Servlet與CGI的對比:CGI采用多進(jìn)程的方式為并發(fā)客戶請求服務(wù)S

27、ervlet采用多線程的方式為并發(fā)客戶請求服務(wù)進(jìn)程占有獨(dú)立的資源,運(yùn)行快,但啟動(dòng)慢線程共享進(jìn)程的資源,啟動(dòng)快,資源沖突時(shí)速度慢并發(fā)客戶端量大時(shí),多線程因共享資源而占有很大優(yōu)勢1.3 Servlet基本知識(shí)Servlet定義 是一個(gè) Java程序,是在服務(wù)器上運(yùn)行以處理客戶端請求并做出響應(yīng)的程序,是按照Servlet規(guī)范編寫的java類。IE瀏覽器Servlet引擎Servlet模塊請求響應(yīng)HTTP請求HTTP響應(yīng)客戶端WEB服務(wù)器1.3 Servlet基本知識(shí)整個(gè)處理流程如下:HTTP請求:客戶將客戶請求發(fā)送給Servlet引擎;請求:Servlet引擎將請求轉(zhuǎn)發(fā)送給處理請求的Servlet模

28、塊;響應(yīng):Servlet模塊接受請求后,調(diào)用相應(yīng)的服務(wù)(service()對請求進(jìn)行處理,然后將處理結(jié)果返回給Servlet引擎。HTTP響應(yīng):Servlet引擎將結(jié)果發(fā)送給客戶端。1.3 Servlet基本知識(shí)ServletAPIServlet的框架是由兩個(gè)java包組成: javax.servlet和javax.servlet.httpjavax.servlet包中定義了所有的servlet類都必須實(shí)現(xiàn)的接口和類。javax.servlet.http包中定義了采用HTTP協(xié)議通信的HttpServlet類Servlet的框架的核心是:javax.servlet.Servlet接口,所有的S

29、ervlet都必須實(shí)現(xiàn)這一接口.1.3 Servlet基本知識(shí)HttpServlet 類提供一個(gè)抽象類以創(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基本知識(shí)ServletRequest接口中封裝了客戶請

30、求信息.如客戶請求方式,參數(shù)名,參數(shù)值,客戶端正在使用的協(xié)議,以及發(fā)出客戶請求的遠(yuǎn)程主機(jī)信息等ServletResponse接口為Servlet提供了返回相應(yīng)結(jié)果的方法1.3 Servlet基本知識(shí)javax.servlet 包的接口為:ServletConfig 接口在初始化的過程中由 Servlet 容器使用ServletContext 接口定義 Servlet 用于獲取來自其容器的信息的方法 ServletRequest 接口 向服務(wù)器請求信息 ServletResponse 接口 響應(yīng)客戶端請求1.3 Servlet基本知識(shí)ServletInputStream 類用于從客戶端讀取二進(jìn)制

31、數(shù)據(jù)ServletOutputStream 類用于將二進(jìn)制數(shù)據(jù)發(fā)送到客戶端1.3 Servlet基本知識(shí)javax.servlet.http 包的接口為:HttpServletRequest 接口 提供 HTTP 請求信息HttpServletResponse 接口 提供 HTTP 響應(yīng)1.3 Servlet基本知識(shí)Servlet 部署在容器里,生命周期由容器管理Servlet 的生命周期就是指創(chuàng)建 Servlet 實(shí)例之后其存在的時(shí)間以及何時(shí)消失Servlet的生命周期概括為以下幾個(gè)階段:裝載Servlet:這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的;創(chuàng)建一個(gè)Servlet實(shí)例;調(diào)用Servlet的init(

32、)方法;服務(wù):如果容器接收到對此Servlet的請求,那么它調(diào)用Servlet的service()方法;銷毀:實(shí)例被銷毀,通過調(diào)用Servlet的destory()方法來銷毀servlet。1.3 Servlet基本知識(shí)Servlet 引擎Servlet 實(shí)例第一次請求時(shí)創(chuàng)建實(shí)例第一次請求時(shí)調(diào)用init()方法調(diào)用service()方法銷毀實(shí)例時(shí)調(diào)用destroy()方法Servlet 的生命周期1.3 Servlet基本知識(shí)生命周期的各個(gè)階段為:1.3 Servlet基本知識(shí)生命周期的 3個(gè)方法為: init()service()destroy()1.3 Servlet基本知識(shí)init()在

33、Servlet的生命周期中,僅執(zhí)行一次init方法,是在服務(wù)器裝入Servlet時(shí)執(zhí)行的缺省的init()方法設(shè)置了Servlet的初始化參數(shù),并用它的ServletConfig對象參數(shù)來啟動(dòng)配置Public void init(ServletConfig config) throws ServletException1.3 Servlet基本知識(shí)service()在調(diào)用service()方法之前,應(yīng)確保已完成init()方法 service()方法是Servlet的核心。 每當(dāng)一個(gè)客戶請求一個(gè)HttpServlet對象,該對象的service()方法就被調(diào)用;3. 當(dāng)一個(gè)客戶通過HTML表單

34、發(fā)出一個(gè)HTTP POST請求時(shí),doPost()方法被調(diào)用4. 當(dāng)一個(gè)客戶通過HTML表單發(fā)出一個(gè)HTTP GET請求或者直接請求一個(gè)URL時(shí),doGet()方法被調(diào)用1.3 Servlet基本知識(shí)1.3 Servlet基本知識(shí)destroy()在服務(wù)器停止且卸裝Servlet時(shí)執(zhí)行該方法當(dāng)服務(wù)器卸裝Servlet時(shí),將在所有service()方法調(diào)用完成后,或在指定的時(shí)間間隔過后調(diào)用destroy()方法Public void destroy()1.4 框架模式使用MVC框架的原因在早期使用JSP技術(shù)開發(fā)WEB項(xiàng)目時(shí),程序員通過在HTML中嵌入Java代碼和一些標(biāo)簽,來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁。顯然這

35、種開發(fā)的表現(xiàn)層和業(yè)務(wù)處理層是混雜在一起的,其優(yōu)點(diǎn)是簡單直觀,易于搭建原型,但比較適宜開發(fā)只有幾個(gè)頁面的小型項(xiàng)目。在大型WEB項(xiàng)目的開發(fā)中,將程序代碼分割成帶有清晰功能的組件是一種更好的方式。MVC框架將網(wǎng)頁內(nèi)容的產(chǎn)生,網(wǎng)頁內(nèi)容的顯示,業(yè)務(wù)對象的處理劃分為3個(gè)相對獨(dú)立的層,因而可以很方便地實(shí)現(xiàn)表現(xiàn)層和業(yè)務(wù)處理層的分離。同時(shí)這也使得網(wǎng)頁制作人員和軟件開發(fā)人員之間可以有明確的分工。單獨(dú)使用JSP或JSP+JavaBean稱為Model1。Model1中JSP頁面響應(yīng)請求并返回結(jié)果,同時(shí)充當(dāng)視圖和控制器,未能實(shí)現(xiàn)視圖和業(yè)務(wù)邏輯完全分離,盡管十分簡單但不適合大型應(yīng)用開發(fā),給網(wǎng)頁設(shè)計(jì)和維護(hù)帶來很多麻煩。1

36、. 客戶端請求由JSP頁面接受。2. JavaBean處理業(yè)務(wù)邏輯,由JSP決定與不同JavaBean交互。3. JavaBean與數(shù)據(jù)持久層交互,由業(yè)務(wù)邏輯操作并改變其狀態(tài)。4. 由JSP將改變的結(jié)果響應(yīng)到客戶端。1.4 框架模式Model 1 客戶端JSPJavaBean數(shù)據(jù)庫1234JSP和Servlet可以一起使用來部署Web 應(yīng)用。Servlet負(fù)責(zé)控制流管理,而 JSP 則專注于顯示邏輯(編寫HTML)。結(jié)合使用JSP和Servlet的開發(fā)模式被稱為Model2,該模式又叫做MVC模式。1. Servlet接受客戶端請求。2. Servlet處理請求并調(diào)用不同的JavaBean。3

37、. JavaBean與數(shù)據(jù)持久層交互,由業(yè)務(wù)邏輯操作并改變其狀態(tài)。4. 由Servlet將處理后的JavaBean模型傳遞給JSP頁面。5. 由JSP將后端處理結(jié)果展示到客戶端。1.4 框架模式 Model 2客戶端JSPJavaBean數(shù)據(jù)庫1234Servlet51.4 框架模式 Model2工作機(jī)制由Servlet通過request.SetAttribute方式與JSP通信,負(fù)責(zé)請求管理以及調(diào)用相關(guān)的業(yè)務(wù)邏輯。而JSP則通過request.getAttribute方式獲得所需要的Model信息,并最終顯示在JSP頁面上。這是最基本的MVC Model2,也是一種責(zé)任的劃分,實(shí)現(xiàn)了各組件間

38、的松散耦合,以后的Struts、Spring 的MVC都是基于這樣的理念。1.4 框架模式851.4 框架模式設(shè)計(jì)模式的定義什么是設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)模式必須是典型問題(不是個(gè)別問題)的解決方案設(shè)計(jì)模式的作用解決一類問題的成功經(jīng)驗(yàn)是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性1.4 框架模式 MVC框架簡介不同的體系結(jié)構(gòu)的web應(yīng)用程序可能需要不同的開發(fā)模式。MVC是一種軟件設(shè)計(jì)模式,最初是為SMALLTALK-80語言提出的,后來在JSP開發(fā)中漸漸得到廣泛的應(yīng)用,并且成為Sun公司推薦的J2EE平臺(tái)的設(shè)計(jì)模式。Sun公司提出的Model2開發(fā)模

39、型就是基于MVC設(shè)計(jì)模式的應(yīng)用。MVC框架支持大多數(shù)現(xiàn)代圖形用戶界面。在Web應(yīng)用程序開發(fā)中,MVC框架應(yīng)用非常廣泛,特別適合應(yīng)用在大型的、比較復(fù)雜的項(xiàng)目開發(fā)中。MVC(Model-View-Controller),即模型-視圖-控制器是當(dāng)前最為流行的Web開發(fā)模式,它把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖、控制器,它們各自處理自己的任務(wù)。MVC 設(shè)計(jì)模式框架是什么MVC 設(shè)計(jì)模式、思想、目的MVC設(shè)計(jì)模式即是模型視圖控制器(ModelViewController)設(shè)計(jì)模式。其中M代表Model,V代表View,C代表Controller。MVC的核心思想是將一個(gè)應(yīng)用程序的數(shù)據(jù)業(yè)務(wù)處理功能(模

40、型層),表示功能(視圖層)和控制功能(控制層)在3個(gè)不同的部分(也叫層)上分別實(shí)現(xiàn)。MVC的目的是增強(qiáng)代碼的復(fù)用性,降低數(shù)據(jù)描述和應(yīng)用操作的可耦合度,并提高代碼的可讀性。同時(shí)也可以使軟件的可維護(hù)性,可修復(fù)性,靈活性和封裝性提高881.4 框架模式 MVC設(shè)計(jì)模式MVC設(shè)計(jì)模式模型 Model視圖 View控制器 ControllerMVC 模式控制器模型視圖JavaBeanJSPServlet1.4 框架模式V(視圖)Login.jspsuccess.jspfailure.jspC(控制器)LogServletM(模型)userbean請求成功調(diào)用返回失敗用戶登錄應(yīng)用模型(Model)封裝了內(nèi)核功能和數(shù)據(jù)業(yè)務(wù)邏輯(軟件的核心)數(shù)據(jù)以及訪問它們的函數(shù)(視圖組件使用)執(zhí)行特定應(yīng)用程序處理的過程(控制器代表用戶調(diào)用)模型對于用戶來說是不可見的(M與V獨(dú)立)模型獨(dú)立于特定輸出表示或者輸入方式(M與C獨(dú)立)用戶只能通過控制器操作模型(C是M與V之間的橋梁)1.4 框架模式1.4 框架模式變更-傳播機(jī)制(1)一個(gè)模型可對應(yīng)多個(gè)視圖 如果用戶通過一個(gè)視圖的控制器改變了模型中的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論