JSP程序開發(fā)-JavaWeb程序開發(fā)總結課件(PPT 59頁)_第1頁
JSP程序開發(fā)-JavaWeb程序開發(fā)總結課件(PPT 59頁)_第2頁
JSP程序開發(fā)-JavaWeb程序開發(fā)總結課件(PPT 59頁)_第3頁
JSP程序開發(fā)-JavaWeb程序開發(fā)總結課件(PPT 59頁)_第4頁
JSP程序開發(fā)-JavaWeb程序開發(fā)總結課件(PPT 59頁)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、六、JavaWeb程序開發(fā)總結第1頁,共59頁。Java Web程序開發(fā)總結6.1 Java Web程序開發(fā)總結6.2 JSP程序開發(fā)作業(yè)第2頁,共59頁。Java的運行機制本地計算機系統(tǒng)Java虛擬機(JVM).class 二進制字節(jié)碼文件.java Java源程序文件編譯第3頁,共59頁。JVMJREJ2 SDKJVM 加上基礎的API,可以運行Java程序,但是不能進行程序的開發(fā)JVM 、JRE加上所有的API,編譯、開發(fā)工具和文檔,用于Java程序的開發(fā)Java的環(huán)境第4頁,共59頁。Java 的開發(fā)工具Javac:Java編譯器,用來將java程序編譯成Bytecode。 Java:

2、Java解釋器,執(zhí)行已經(jīng)轉換成Bytecode的Java應用程序。 Jdb:Java調試器, 用來調試java程序。 Javap:反編譯,將類文件還原回方法和變量。 Javadoc:文檔生成器,創(chuàng)建HTML文件。 Appletviewer:Applet解釋器, 用來解釋已經(jīng)轉換成Bytecode的java小應用程序。第5頁,共59頁。Web方式的網(wǎng)絡應用HTTP協(xié)議的工作方式建立連接發(fā)出HTTP請求發(fā)出HTTP響應斷開連接HTTP協(xié)議第6頁,共59頁。Web方式的網(wǎng)絡應用HTTP協(xié)議的主要特點 典型的C/S結構的工作方式;簡單快速、數(shù)據(jù)傳輸較少;可以通過HTTP協(xié)議傳輸任意類型的數(shù)據(jù)對象;HT

3、TP是面向一次連接的網(wǎng)絡協(xié)議;HTTP協(xié)議是無狀態(tài)協(xié)議 ;HTTP協(xié)議第7頁,共59頁。HTTP協(xié)議一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)4個部分組成第8頁,共59頁。開發(fā)Web應用的常用方式Applet由Java 語言編寫Applet 的源程序,然后編譯成字節(jié)代碼。當瀏覽器解譯HTML腳本時,按照標記的URL向服務器建立發(fā)送請求,通過HTTP協(xié)議得到Java Applet 的字節(jié)代碼。瀏覽器啟動Java 虛擬機,解釋執(zhí)行Java Applet 的字節(jié)代碼。Java語言的Web開發(fā)方式第9頁,共59頁。HTTP回復HTTP請求瀏覽器W

4、eb ServerAppletJVMApplet開發(fā)Web應用的常用方式Java語言的Web開發(fā)方式第10頁,共59頁。開發(fā)Web應用的常用方式Servlet/JSPServlet運行在服務器端的Java程序JSP(Java Server Page Java服務頁面)運行在服務器端的用Java語言編寫的腳本程序和其他腳本語言(PHP,ASP)的直接解釋執(zhí)行不同,JSP的運行需要先將JSP的腳本編譯為Servlet然后運行在服務器端的Java虛擬機上第11頁,共59頁。HTTP請求客戶端Web ServerJava虛擬機HTTP回復ServletJsp腳本開發(fā)Web應用的常用方式Java語言的W

5、eb開發(fā)方式第12頁,共59頁。Java的Web開發(fā)架構第13頁,共59頁。Java的Web開發(fā)架構Java 的三個版本:J2SE:針對普通PC應用的J2SE(Java 2 Standard Edition);J2EE:針對企業(yè)網(wǎng)應用的J2EE(Java 2 Enterprise Edition);J2ME:針對嵌入式設備及消費類電器的J2ME(Java 2 Micro Edition)三個版本;Java Web開發(fā)的三個層次: Servlet/JSP輕量級J2EE開發(fā)EJB開發(fā)第14頁,共59頁。J2EE架構容器:Web容器、EJB容器、Applet容器、客戶端容器組件:Servlet、JS

6、P、EJB、JDBC、JMS、JNDI、JTA、JCA、JXM、JAAS、JACC、JAXR、SAAJ第15頁,共59頁。輕量級J2EE開發(fā)框架第16頁,共59頁。Servlet 的基本概念Servlet角色 - Web中間件請求響應DataBase舊系統(tǒng)Java應用B2B應用JDBCJNIRMIXMLWeb服務器客戶端第17頁,共59頁。Servlet的基本結構 第18頁,共59頁。Servlet的工作過程第19頁,共59頁。Servlet的工作過程第20頁,共59頁。編寫Servlet響應HTTP請求的Servlet需要繼承HttpServlet類它是GenericServlet類的擴充,

7、提供了一個處理HTTP協(xié)議的框架 同樣需要實現(xiàn)三個方法:init():其中包含對Servlet進行初始化的代碼service():其中包含對用戶請求進行處理的方法通過HttpServletRequest對象得到用戶Http請求通過HttpServletResponse對象發(fā)送處理后的Http響應destroy():其中包含卸載Servlet時需要的代碼編寫HTTP Servlet第21頁,共59頁。編寫Servlet在HttpServlet類中對service方法進行了擴充以響應不同的HTTP請求HttpServlet類中的service方法包括doGet()doPost()doDelete(

8、)doHead()doOptions()doPut()doTrace()不同的HTTP請求會發(fā)往不同的service方法,只有無法識別的HTTP請求才需要發(fā)往service()方法。編寫HTTP Servlet第22頁,共59頁。編寫Servlet運行Servelt的方式安裝JDK和應用服務器(Resin)配置好應用服務器建立存放程序的Web目錄將編譯好的class文件考入到Web目錄下的相應文件夾在web.xml里對Servlet進行設置虛擬路徑的設置初始化參數(shù)的設置在瀏覽器中通過URL訪問Servlet運行Servlet第23頁,共59頁。使用Eclipse 開發(fā)Web應用安裝JDK安裝R

9、esin安裝Eclipse配置EclipseWorkSpace設置Resin集成環(huán)境創(chuàng)建Java Web Project配置Resin配置Web應用第24頁,共59頁。運行ServletWeb的目錄結構classes文件夾:此應用中編譯生成所有class文放在此處lib文件夾:以JAR/zip形式表現(xiàn)的庫文件和所有需要用到的第三方Java庫文件存放此處web.xml文件:此應用的初始化配置文件第25頁,共59頁。使用web.xml配置應用Web.xml 是應用程序自己的配置文件,采用XML格式的文件描述了Web應用的各類配置Servlet的配置和定義初始化參數(shù)的定義和配置初始化頁面的定義出錯頁

10、面的配置其他靈活的配置第26頁,共59頁。動態(tài)HTML的生成Servlet只是封裝了Web應用處理的外殼,負責接收用戶請求,給用戶反饋響應;響應的結果以HTML的形式進行展現(xiàn),HTML只是展響應結果的一個樣式描述;如何處理用戶的請求,仍需要程序邏輯來實現(xiàn),使用標準的Java程序完成相應的邏輯處理,完成用戶的請求,按照用戶的需求反饋正確的響應,這才是Web應用核心;第27頁,共59頁。接收用戶的輸入用戶輸入的處理由客戶端和服務器端兩部分完成客戶端通過表單等方式采集并提交用戶的輸入;服務器端的Servlet對客戶端提交的表單數(shù)據(jù)進行分析和封裝;業(yè)務邏輯通過Request對象的相應方法獲得用戶輸入并

11、進行處理;采集用戶輸入的三種方式固定參數(shù)輸入動態(tài)參數(shù)輸入URL參數(shù)輸入第28頁,共59頁。從servlet讀取請求 獲取HTTP請求的詳細信息,可以更加準確的獲取用戶請求的詳細信息,并進行具體的處理處理多語言問題處理瀏覽器兼容問題處理服務器安全問題處理用戶會話獲取HTTP的請求包括兩部分,獲得請求行和請求請求頭第29頁,共59頁。從servlet返回響應Servlet通過處理狀態(tài)行及響應頭可執(zhí)行各種處理,控制和用戶的交互以及瀏覽器的響應方式拒絕用戶的訪問將用戶轉送到其它網(wǎng)站標明附加的文檔是圖像、Word文件或HTML文件處理用戶的會話對HTTP響應的處理包括兩部分,對響應狀態(tài)的處理和對響應頭的

12、處理第30頁,共59頁。保持用戶會話HTTP協(xié)議無狀態(tài)記憶和一次連接的的特點導致Servlet不能自動記憶用戶的訪問狀態(tài);Servlet的線程運行的特點,也不允許Servlet自動記憶用戶的訪問狀態(tài),否則將出現(xiàn)線程不安全的情況;Web程序保持用戶會話方法都是將用戶會話信息保存在瀏覽器端,當用戶下次訪問的時候,通過瀏覽器告知服務器上次會話的狀態(tài)Web程序保持用戶會話的三種通用方式CookieURL重寫隱藏表單域第31頁,共59頁。Cookie的工作方式服務器在發(fā)給用戶瀏覽器的HTTP響應頭中包含所要相應的Cookie信息;瀏覽器接收到Cookie后,將Cookie保存在客戶端的文件系統(tǒng)中;瀏覽器

13、再次訪問該Web服務器時,自動在發(fā)往服務器的HTTP請求頭中的加入該服務器所保存的Cookie;服務器通過Cookie得到用戶上次訪問的狀態(tài);Cookie的概念第32頁,共59頁。在Servlet中處理Cookie建立cookie:new Cookie(name,value) 在響應頭中放置cookie:HttpServletResponse.addCookie();從請求中讀取cookie:HttpServletRequest.getCookies();得到Cookie的屬性getValue()得到Cookie的值getName()得到Cookie的名字getPath()得到Cookie的路

14、徑getDomain()得到Cookie的域名getMaxAge()得到Cookie的失效時間第33頁,共59頁。Session使用Cookie保持用戶會話比較麻煩,同時將大量用戶的隱私信息放在Cookie中保存也非常不安全;在Servlet中提供了Session機制,通過Session用以保持用戶會話;Session指的是用戶操作某個應用的時間概念,例如從用戶打開瀏覽器訪問某個網(wǎng)站到用戶關閉瀏覽器離開該網(wǎng)站,這就是一個Session,或者是一個用戶會話;Session的實現(xiàn)是以Cookie為基礎的;Session的基本概念第34頁,共59頁。Session的工作方式Servlet已經(jīng)生成一個

15、可以唯一標識用戶Session的序列號Session Id;將Session Id作為Cookie的值反饋給瀏覽器;以Session Id為文件名,在服務器文件系統(tǒng)(或內存中)中建立一個文件,保存用戶會話的內容;當瀏覽器將Session Id作為Cookie發(fā)送給Web服務器時,Web服務器根據(jù)Session Id查找相應的文件,并讀取文件的內容,獲得用戶會話;Session的基本概念第35頁,共59頁。在Servlet中處理Session查找與當前請求相關關的HttpSession對象HttpServletRequest.getSession,查找session查找保存的會話信息sessio

16、n.getAttribute,從session中提取之前存儲的值對會話信息進行處理session.setAttribute 設置屬性值 session.removeAttribute 取消屬性值session.invalidate 使會話不活動第36頁,共59頁。JSP 的概念 Java服務器頁面(Java Server Pages);在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片斷(Scriptlet)和JSP標記,就構成了JSP網(wǎng)頁(*.jsp);將靜態(tài)HTML與動態(tài)內容相結合,用 將動態(tài)部份的代碼括起來。JSP的基本概念第37頁,共59頁。JSP的執(zhí)行過程接收客

17、戶端發(fā)出的HTTP請求;JSP 容器將JSP轉譯成Servlet的源代碼;將產生的Servlet 源代碼編譯成Class加載Class到內存執(zhí)行;把處理結果封裝成結果響應至客戶端。JSP程序的執(zhí)行分為兩個階段:轉譯期(Translation Time)和請求期(Request Time)轉譯期:JSP網(wǎng)頁轉譯成Servlet類請求期:Servlet類執(zhí)行后,響應結果至客戶端反復調用的時候,如果已經(jīng)轉譯過一次,就不會再次進行,而是直接執(zhí)行編譯后的的Servlet 類JSP的基本概念第38頁,共59頁。JSP的基本概念第39頁,共59頁。JSP/Servlet的對應關系所有的JSP在執(zhí)行時都會被轉

18、譯成servlet可以在WEB-INF/work/_jsp目錄下查看轉譯后的自動生成的.java文件和編譯后的.class文件JSP APIjavax.servlet.jsp.*JSP容器將JSP腳本轉換為Servlet時實現(xiàn)了三個接口方法:jspInit() 對JSP進行初始化jspDestory 卸載JSP的代碼_jspService(HttpServletRequest,HttpServletResponse) 處理請求的代碼JSP的基本概念第40頁,共59頁。JSP的語法概述JSP的基本程序語法和java語法是一樣的,由于JSP程序是嵌套在HTML頁面中的,因此有一些特殊的語法格式;J

19、SP原始代碼中包含了JSP元素和Template(模板) Data兩類 ;Template Data指的是JSP引擎不處理的部分,即標記以外的部分,例如代碼中的HTML的內容等 ,這些數(shù)據(jù)會直接傳送到客戶端的瀏覽器;JSP元素則是指將由JSP引擎直接處理的部分,這一部分必須符合JSP相關語法。 第41頁,共59頁。JSP的語法概述三種可嵌入到頁面中的JSP結構:JSP腳本(Script)編譯器指令JSP動作JSP腳本是一個代碼片段,可以包含任意行的合法腳本語句,是為了在JSP中嵌入Java程序,運行并執(zhí)行相應的業(yè)務邏輯;指令是一組特殊的JSP語句,是為JSP容器設計的,通知JSP容器如何轉譯和

20、編譯JSP頁面,主要是在轉譯階段應用;JSP動作是用來控制JSP容器的行為,執(zhí)行一些常用的外部資源調度工作;第42頁,共59頁。JSP腳本的語法JSP腳本的三種形式:腳本段:,用于嵌入標準的Java 代碼;表達式:,用于直接輸出表達式的值;聲明:,用于聲明JSP中的變量;注釋:用于在JSP頁面中嵌入注釋HTML注釋:用于嵌入HTML注釋JSP注釋:用于嵌入JSP注釋Java注釋:用于嵌入Java注釋第43頁,共59頁。編譯器指令的語法編譯器指令包含在“”標記里,用于通知JSP容器的轉譯和編譯方式; 編譯器指令包括頁指令:,用來定義整個JSP文件需要使用的屬性和屬性值;包含指令:,用來定義在JS

21、P文件轉譯和編譯時,需要嵌入的文本或代碼;標記指令:,用來定義JSP頁面中所使用的標簽庫;第44頁,共59頁。JSP動作的語法JSP動作的格式: 舉例 第45頁,共59頁。JSP的內置對象為了便于用戶編寫JSP及JSP容器將JSP腳本編譯為Servlet,JSP中定義了一些默認對象,JSP的這些內置對象都是特定的Java類的實例,在服務器運行時根據(jù)情況自動生成requestresponseoutsessionapplicationconfigpageContextpage第46頁,共59頁。JSP簡介request對象對應Servlet中的HttpServletRequest request接

22、受用戶請求response對象對應Servlet中的HttpServletResponse response返回客戶端請求處理結果out對象 對應Servlet中的Printwrite out=response.getWriter()輸出處理結果page對象對應Servle中的this一個指向頁面本身的對象JSP的內置對象第47頁,共59頁。JSP簡介pagecontext對象對應Servlet中的PageContex接口 管理頁面的屬性session 對象對應Servlet中的HttpSession session處理用戶會話,存儲用戶會話狀態(tài)config對象對應Servlet中的Servl

23、etConfig config對Servlet本身進行處理application對象對應Servlet中的ServletContext application=getServletConfig().getContext()處理和存儲Servlet的會話信息JSP的內置對象第48頁,共59頁。JSP對象的作用域JSP對象的作用域從兩個維度進行劃分從用戶訪問的維度分為請求和會話從JSP/Servlet的生命周期分為頁和應用了解JSP對象的生命周期,才能夠更加準確的使用相關的對象涉及到作用域的四個JSP內置對象PageContextRequestSessionApplication著四個JSP內置對

24、象都可以通過SetAttribute()方法和getAttribute()方法獲得存儲對象第49頁,共59頁。JSP對象的作用域第50頁,共59頁。Application用來存儲全局性的對象,可以作為一些全局性數(shù)據(jù)的緩存,是所有用戶共享使用的;Session用來存儲用戶的會話對象,可以作為某個用戶似有信息的存儲,是一個用戶共享使用的;Reqeust用來存儲用戶一次請求的對象,可以用來在一個請求的多個頁面中共享使用;PageContext只在單個頁面中有效,可以作為臨時的對象,使用后自動銷毀。JSP對象的作用域第51頁,共59頁。JSP的動態(tài)頁面處理JSP的動態(tài)頁面處理有兩種方式在JSP中包含頁

25、面在JSP中跳轉訪問其他頁面JSP有三種方法包含外部程序或頁面的:指令動作 動作JSP有兩種跳轉訪問其他頁面sendRedirect方法動作第52頁,共59頁。JSP使用JavaBeanJavaBean的基本概念JavaBean定義了可重復使用的軟件代碼打包標準,是為了實現(xiàn)類的復用,而滿足特殊規(guī)范的Java類;JavaBean是Java語言中最重要的組件類,在各類需要進行類復用的場合被廣泛使用;VO:存儲數(shù)據(jù)對象DTO:數(shù)據(jù)傳輸POJO:純Java類在編寫JSP時,應該將程序的邏輯部分編寫為JavaBean,而JSP中只負責用戶視圖的處理,例如HTML頁面的生成第53頁,共59頁。JavaBean需要滿足條件必須有一個不帶有參數(shù)的公用構造器例如 public UserLogin();所有Bean的屬性都必需定義為私有變量例如 Private userName;如果需要使用Bean的屬性,則應該為每個屬性設置set和get方法,且必需與屬性的變量名相同,例如publi

溫馨提示

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

評論

0/150

提交評論