JavaEE架構(gòu)與程序設(shè)計--第一部分_第1頁
JavaEE架構(gòu)與程序設(shè)計--第一部分_第2頁
JavaEE架構(gòu)與程序設(shè)計--第一部分_第3頁
JavaEE架構(gòu)與程序設(shè)計--第一部分_第4頁
JavaEE架構(gòu)與程序設(shè)計--第一部分_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、JavaEE架構(gòu)與程序設(shè)計第一部分:JSP/Servlet快速入門 快速理解Servlet 快速理解JSP 理解MVC模式章節(jié)目錄章節(jié)目錄章節(jié)目錄章節(jié)目錄 JavaEE技術(shù)概述 搭建開發(fā)運(yùn)行環(huán)境 第一個Web應(yīng)用JavaEEJavaEE技術(shù)概述技術(shù)概述 Java技術(shù)有3個版本 JavaME JavaSE JavaEE JavaEE有13種技術(shù) JDBC XML JSP Servlet EJB JMS HttpHttp協(xié)議協(xié)議 HTTP是超文本傳輸協(xié)議,用于在互聯(lián)網(wǎng)上傳輸文本、超文本、聲音和圖像等等 HTTP協(xié)議是指超文本傳輸協(xié)議,專門用于在Internet上傳輸信息的協(xié)議,目前的版本是1.1;

2、 HTTP是應(yīng)用層的協(xié)議,它基于請求/響應(yīng)模式; HTTP協(xié)議默認(rèn)使用80端口進(jìn)行通訊; HTTP協(xié)議是無狀態(tài)的的協(xié)議客戶端瀏覽器Web服務(wù)器Web應(yīng)用程序客戶端發(fā)起連接客戶端發(fā)送請求服務(wù)器響應(yīng)請求服務(wù)器斷開連接WebWeb應(yīng)用程序應(yīng)用程序 WebWeb應(yīng)用程序續(xù)應(yīng)用程序續(xù) 用戶請求一個頁面Web 應(yīng)用程序Web 應(yīng)用程序在 Web 服務(wù)器上運(yùn)行 傳回一個頁面作為響應(yīng)WebWeb應(yīng)用程序工作原理應(yīng)用程序工作原理 客戶端把請求發(fā)送到服務(wù)器端的Web應(yīng)用程序, Web應(yīng)用程序接收請求后進(jìn)行相關(guān)處理(靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁) ,并把結(jié)果以文本或網(wǎng)頁的形式,返回到客戶端; 因此當(dāng)訪問Web 站點(diǎn)的時候,我

3、們所看到的所有內(nèi)容都是在瀏覽器中呈現(xiàn)的; Web應(yīng)用程序是在HTTP協(xié)議支持下的,基于B/S結(jié)構(gòu)(Browser瀏覽器/Server服務(wù)器)的應(yīng)用程序。WebWeb應(yīng)用程序優(yōu)勢應(yīng)用程序優(yōu)勢 相對于傳統(tǒng)的C/S結(jié)構(gòu)(Client客戶端/Server服務(wù)器)的應(yīng)用程序而言,B/S結(jié)構(gòu)的Web應(yīng)用程序具備以下優(yōu)勢: 集中部署,無需安裝客戶端程序; 集中管理,業(yè)務(wù)邏輯在服務(wù)端進(jìn)行維護(hù); 數(shù)據(jù)共享,所有客戶端訪問同一服務(wù)器的數(shù)據(jù); 覆蓋面廣,只要有Internet覆蓋的區(qū)域都可通過瀏覽器享受服務(wù); 更強(qiáng)的平臺無關(guān)性,不必關(guān)心客戶端的軟硬件平臺,只要遵循HTTP協(xié)議,都可獲得支持。WebWeb服務(wù)器程序服

4、務(wù)器程序 Web服務(wù)器程序是指運(yùn)行在Web服務(wù)器上的軟件程序; 該程序的主要功能是負(fù)責(zé)偵聽指定端口,接收客戶端的請求并解析,然后將指定的頁面發(fā)送到客戶端; Web服務(wù)器程序必須遵循HTTP協(xié)議的規(guī)范; 注意:在本門課程中,服務(wù)器程序有時簡稱為服務(wù)器,客戶程序有時簡稱為客戶,如果沒有特殊說明,服務(wù)器是指服務(wù)器程序,而不是指運(yùn)行服務(wù)器程序的主機(jī)。當(dāng)今主流的當(dāng)今主流的WebWeb服務(wù)器軟件服務(wù)器軟件 當(dāng)今比較流行的Web服務(wù)器軟件有很多,包括: Microsoft公司的IIS(Internet Information Services); BEA公司的WebLogic; IBM公司的WebSpher

5、e; Apache公司的Tomcat; Tomcat是當(dāng)今使用最為廣泛的基于Java的Web服務(wù)器軟件,是中小企業(yè)應(yīng)用和學(xué)習(xí)Web編程的最佳選擇。搭建運(yùn)行環(huán)境搭建運(yùn)行環(huán)境 組件必須運(yùn)行在容器(container)中 容器一般使用軟件形式實(shí)現(xiàn) Tomcat是一種常用Web容器搭建開發(fā)環(huán)境搭建開發(fā)環(huán)境 使用Eclipse+MyEclipse作為開發(fā)環(huán)境使用使用MyEclipseMyEclipse管理管理TomcatTomcat 可以在MyEclipse中管理Tomcat第一個第一個WebWeb應(yīng)用應(yīng)用 創(chuàng)建Web工程 填寫工程信息 修改index.jsp文件 部署應(yīng)用到Tomcat 啟動Tomca

6、t 在瀏覽器中訪問Web應(yīng)用章節(jié)目錄章節(jié)目錄本章目標(biāo)本章目標(biāo) Servlet基本概念 web.xml配置文件 請求與響應(yīng)什么是什么是ServletServletServlet是服務(wù)器端的組件,是運(yùn)行在Web服務(wù)器上的Java小程序Servlet必須運(yùn)行在容器中,它一般會把處理的結(jié)果以為HTML的形式返回,在客戶端形成動態(tài)網(wǎng)頁Servlet是一個Java類,該類遵守一定規(guī)范客戶端Web服務(wù)器Servlet請 求響 應(yīng)ServletServlet在在Java EEJava EE中的位置中的位置ServletServlet優(yōu)點(diǎn)優(yōu)點(diǎn) Servlet運(yùn)行在Web服務(wù)器中,可以擴(kuò)展服務(wù)器的功能; Serv

7、let可以和其他資源交互,從而生成返回給客戶端響應(yīng)的內(nèi)容,即動態(tài)網(wǎng)頁; 使用Java編寫,所以能夠跨平臺; Java的所有優(yōu)點(diǎn)都可以在Servlet中體現(xiàn); Servlet很安全,因?yàn)樵L問Servlet的唯一途徑是通過服務(wù)器; 只要符合Servlet規(guī)范的Servlet容器都可以運(yùn)行Servlet。Servlet APIServlet API 與Servlet相關(guān)的兩個包: javax.servlet javax.servlet.http javax.servlet包中包含了支持通用的,跨協(xié)議的Servlet的相關(guān)接口和類; javax.servlet.http包中則包含了特定于HTTP協(xié)議的

8、Servlet相關(guān)類; 在Tomcat安裝目錄/common/lib路徑下,可以找到servlet-api.jar文件。javax.servletjavax.servlet包中的接口包中的接口接口名稱說 明Servlet這是每個Servlet都必須實(shí)現(xiàn)的接口,它定義了一系列必須由Servlet實(shí)現(xiàn)的方法。ServletRequest此接口用于將客戶端的請求信息傳送給Servlet。ServletResponse此接口用于對客戶端做出響應(yīng)。ServletConfig此接口定義Servlet配置對象,以便于容器將信息傳遞給Servlet。ServletContext此接口定義了一組方法,用于Ser

9、vlet與容器進(jìn)行通信。javax.servletjavax.servlet包中的類包中的類類名稱說 明GenericServlet抽象類,定義一個通用的、獨(dú)立于底層協(xié)議的Servlet。ServletInputStream這是提供輸入流用于讀取來自客戶端請求的二進(jìn)制數(shù)據(jù)的類。ServletOutputStream此類提供輸出流用于將二進(jìn)制數(shù)據(jù)發(fā)送到客戶端。ServletExceptionServlet在執(zhí)行過程中遇到困難時拋出該異常。javax.servlet.httpjavax.servlet.http包中的接口包中的接口接口名稱說 明HttpServletRequest該接口擴(kuò)展Serv

10、letRequest接口,定義了一系列用于描述HTTP請求的方法。HttpServletResponse該接口擴(kuò)展ServletResponse接口,提供服務(wù)器對客戶端的響應(yīng)對象。HttpSession該接口提供客戶端與服務(wù)器端的會話標(biāo)識。javax.servlet.httpjavax.servlet.http包中的類包中的類27類名稱說 明HttpServlet該類是最常用于擴(kuò)展Servlet的類,因?yàn)楹芏郤ervlet應(yīng)用程序都遵照HTTP協(xié)議運(yùn)行。此類支持HTTP協(xié)議功能以及Servlet類的方法,它是個抽象類。它接收客戶端的請求,并向客戶端發(fā)送響應(yīng)。Cookie此類用來創(chuàng)建Cookie

11、,它存儲了少量由Servlet發(fā)送至客戶端的信息。javax.servlet.http.HttpServletjavax.servlet.http.HttpServlet HttpServlet中提供了一系列讓子類重寫的方法,在不同的時刻會調(diào)用執(zhí)行這些方法:方 法 原 型說 明public void init(ServletConfig config)throws ServletException在初始化Servlet時調(diào)用一次,如有特殊需要,可重寫該方法。protected void doGet(HttpServletRequest request, HttpServletResponse

12、response)throws ServletException, IOException如果客戶端是以GET方式提交請求時執(zhí)行,應(yīng)當(dāng)重寫此方法protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException如果客戶端是以POST方式提交請求時執(zhí)行,應(yīng)當(dāng)重寫此方法public void destroy()當(dāng)銷毀Servlet實(shí)例時調(diào)用一次,如有需要釋放的資源,可重寫該方法注意事項(xiàng)注意事項(xiàng)HttpServlet中還包含一個servi

13、ce方法,其原型如下:public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException此方法用來調(diào)度客戶端的請求,API文檔中明確規(guī)定,請勿重寫該方法。doGet doGet 與與 doPost doPost 在web基本的學(xué)習(xí)部分,我們知道了form提交的方式get 方式和post方式 我們提交把請求提交到Servlet中,容器會調(diào)用Servlet中的相應(yīng)方法 getdoGet postdoPostdoGetdoGet和和doPos

14、tdoPost的區(qū)別的區(qū)別 doGet事件可接受: 瀏覽器直接訪問 超級連接默認(rèn)為doGet Form表單的get方法訪問 不安全 會在瀏覽器顯示 字符有限制 doPost事件只可接受form的post方法訪問 第一個第一個ServletServlet 繼承HttpServlet類 覆蓋HttpServlet類的doXXX方法 往往覆蓋doGet或doPost方法packagepackage com.etc;publicpublic classclass FirstServlet extendsextends HttpServlet publicpublic voidvoid doPost(H

15、ttpServletRequest request, HttpServletResponse response)throwsthrows ServletException, IOException System.out.println(doPost: Hello,ETC!);如何訪問如何訪問ServletServlet 訪問Servlet前,必須在web.xml中配置Servlet信息 FirstServlet com.etc.FirstServlet FirstServlet /firstservlet名稱可以隨便命名Servlet類名稱Servlet對應(yīng)的url映射名稱與上面name必須一

16、致訪問訪問ServletServlet的三種方式的三種方式有三種方式可以訪問Servlet在地址欄通過url直接訪問 http:/localhost:8080/chapter01/firstServlet通過超級鏈接訪問 Run the first servlet 通過表單提交訪問 web.xmlweb.xml文件文件 web.xml是部署描述符文件 每個web應(yīng)用中都必須有web.xml文件 web.xml存在于WEB-INF目錄下 web.xml中所有標(biāo)簽都在schema中定義使用使用MyEclipseMyEclipse開發(fā)開發(fā)ServletServlet 使用模板創(chuàng)建Servlet 填寫

17、Servlet描述信息 在生成的web.xml中可以繼續(xù)修改描述信息 在生成的Servlet類中可以修改相關(guān)代碼 部署web應(yīng)用 在瀏覽器中訪問web應(yīng)用 基于基于HTTPHTTP的請求響應(yīng)機(jī)制的請求響應(yīng)機(jī)制 建立連接 發(fā)送請求 返回響應(yīng) 關(guān)閉連接請求接口請求接口HttpServletRequestHttpServletRequest繼承于ServletRequest父接口定義了大量獲得請求信息的方法getParameter:獲得客戶端傳遞到服務(wù)器的請求參數(shù)的值getHeader:返回整型請求頭信息的值響應(yīng)接口響應(yīng)接口HttpServletResponseHttpServletResponse

18、繼承于ServletResponse父接口定義了大量與響應(yīng)有關(guān)的方法getWriter獲得響應(yīng)的輸出流,將響應(yīng)的內(nèi)容輸出客戶端setContentType:設(shè)定HTTP 回應(yīng)的“內(nèi)容類型”(content type)章節(jié)目錄章節(jié)目錄 JSP基本概念 腳本元素 內(nèi)置對象什么是什么是JSPJSP JSP是服務(wù)器端組件,必須運(yùn)行在容器中 表面上看,JSP是HTML文件中嵌入了部分Java代碼的文件 JSP中的Java代碼使用封裝Hello,ETC! JSPJSP運(yùn)行的步驟運(yùn)行的步驟 容器將JSP文件翻譯成Java文件,該Java文件符合Servlet規(guī)范 容器將翻譯生成的Java文件編譯成class

19、文件 容器實(shí)例化JSP對象 容器調(diào)用類的服務(wù)方法(_jspService方法),提供服務(wù)JSPJSP腳本元素入門腳本元素入門 Java腳本必須寫在JSP腳本元素中 :腳本片段,可以包含任何符合語法的Java代碼 :表達(dá)式,將=后的表達(dá)式內(nèi)容輸出到客戶端JSPJSP內(nèi)置對象入門內(nèi)置對象入門 內(nèi)置對象是可以在JSP中直接使用的對象,不需要定義,不需要初始化 request response out章節(jié)目錄章節(jié)目錄 JDBC常用API JDBC進(jìn)行查詢 JDBC進(jìn)行修改JDBCJDBC概述概述 JDBC是Java語言訪問數(shù)據(jù)庫的解決方案 JDBC包括兩部分 第一部分是提供給程序員使用的API 第二部

20、分是數(shù)據(jù)庫廠商實(shí)現(xiàn)的API,稱為SPIJDBC APIJDBC API常用接口與類常用接口與類 DriverManager:驅(qū)動管理器類 Connection:數(shù)據(jù)庫連接接口 Statement:語句對象接口 ResultSet:結(jié)果集接口使用使用JDBCJDBC進(jìn)行增刪改進(jìn)行增刪改 下載驅(qū)動程序包 加載驅(qū)動類 獲得連接 獲得語句對象 使用executeUpdate執(zhí)行增刪改語句 關(guān)閉資源使用使用JDBCJDBC進(jìn)行查詢進(jìn)行查詢 下載驅(qū)動 加載驅(qū)動類 獲得連接 獲得語句對象 使用executeQuery語句執(zhí)行查詢,返回ResultSet對象 處理ResultSet對象 關(guān)閉資源JDBCJDB

21、C的語句對象的語句對象 JDBC API中有三種常用語句對象 Statement 是語句對象的頂級接口,定義了語句對象統(tǒng)一規(guī)范 PreparedStatement 稱為預(yù)編譯的語句對象,是Statement的子接口 CallableStatement 可以用來調(diào)用數(shù)據(jù)庫的存儲過程章節(jié)目錄章節(jié)目錄 MVC模式的概念與應(yīng)用簡單簡單DemoDemo 一個簡單的Demo,包含如下幾個部分 JSP頁面 登錄邏輯(Java類實(shí)現(xiàn)) 連接JSP與Java類的Servlet簡單簡單DemoDemo 一個簡單的Demo,包含如下幾個部分 JSP頁面 登錄邏輯(Java類實(shí)現(xiàn)) 連接JSP與Java類的Servl

22、etDemoDemo中的中的MVCMVC體現(xiàn)體現(xiàn) Java類實(shí)現(xiàn)業(yè)務(wù)邏輯-Model(模型) JSP頁面實(shí)現(xiàn)視圖-View(視圖) Servlet實(shí)現(xiàn)控制邏輯-Controller(控制器)DemoDemo中的中的MVCMVC體現(xiàn)體現(xiàn) Java類實(shí)現(xiàn)業(yè)務(wù)邏輯-Model(模型) JSP頁面實(shí)現(xiàn)視圖-View(視圖) Servlet實(shí)現(xiàn)控制邏輯-Controller(控制器)MVCMVC總結(jié)總結(jié) MVC本來應(yīng)用于桌面程序 M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器 JavaEE的Web應(yīng)用開發(fā),經(jīng)歷了Model1和Model2的不同時代 Model2已經(jīng)是MVC設(shè)計思想下的架構(gòu),Servlet

23、充當(dāng)控制器,JSP充當(dāng)視圖,JavaBean則作為模型JSP Model1JSP Model1 相對于純粹使用JSP開發(fā),許多有經(jīng)驗(yàn)的工程師都會將部分可以重復(fù)利用的組件抽出來寫成JavaBean,當(dāng)用戶送來一個請求是,通過JSP調(diào)用JavaBean負(fù)責(zé)相關(guān)數(shù)據(jù)存取、邏輯運(yùn)算等等的處理,最后將結(jié)果回傳到JSP顯示結(jié)果JSP Model1JSP Model1 優(yōu)點(diǎn): 程序可讀性增高:將復(fù)雜的程序代碼寫在JavaBean之中,減少和網(wǎng)頁標(biāo)簽混合使用的情況,未來維護(hù)的時候能夠較為輕松。 可重復(fù)利用性高:由于通過JavaBean來封裝重要的商業(yè)邏輯運(yùn)算,不同的JSP可以調(diào)用許多共享性的組件,減少開發(fā)重復(fù)程序代碼的工作,增加開發(fā)效能。 缺點(diǎn): 缺乏流程控制:這是Model最大的缺點(diǎn),缺

溫馨提示

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

評論

0/150

提交評論