第一章-Java-Web開發(fā)基礎(chǔ)課件_第1頁
第一章-Java-Web開發(fā)基礎(chǔ)課件_第2頁
第一章-Java-Web開發(fā)基礎(chǔ)課件_第3頁
第一章-Java-Web開發(fā)基礎(chǔ)課件_第4頁
第一章-Java-Web開發(fā)基礎(chǔ)課件_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022/7/251第一章 Java Web開發(fā)基礎(chǔ) 本章主要內(nèi)容介紹1.1 什么是Web應(yīng)用1.2 HTTP協(xié)議1.3 HTML語言1.4 Web應(yīng)用開發(fā)技術(shù)1.5 Java Web開發(fā)環(huán)境及運(yùn)行環(huán)境1.6 皮影制作項(xiàng)目介紹 2022/7/2521.1 什么是Web應(yīng)用 Web應(yīng)用的典型模式:B/S模式 該模式又稱瀏覽器/服務(wù)器模式,即Internet上的兩臺主機(jī),一臺充當(dāng)服務(wù)器,另一臺充當(dāng)客戶機(jī),客戶機(jī)通過本機(jī)的瀏覽器與服務(wù)器進(jìn)行通信。 1.1 B/S模式示意圖2022/7/253B/S模式通信過程 下面以訪問西北大學(xué)主頁為例,闡述客戶機(jī)與服務(wù)器之間的通信過程。客戶機(jī)請求服務(wù)器:瀏覽器中鍵

2、入西北大學(xué)的主頁地址,回車后瀏覽器就會(huì)向西北大學(xué)的服務(wù)器發(fā)送瀏覽西北大學(xué)主頁的請求,并且將自己的IP地址連同請求一塊發(fā)送給服務(wù)器;服務(wù)器響應(yīng)客戶機(jī):西北大學(xué)的服務(wù)器接收到該請求并且取出客戶機(jī)的IP地址,以客戶機(jī)的IP地址作為目的地址,將西北大學(xué)的主頁作為數(shù)據(jù)包發(fā)出; 2022/7/254B/S模式通信過程 當(dāng)數(shù)據(jù)包傳送到客戶機(jī)后,讀者的瀏覽器就可以顯示西北大學(xué)的主頁了。在上例中西北大學(xué)的Web服務(wù)器中處理客戶機(jī)響應(yīng)的程序就是一個(gè)典型的Web應(yīng)用,是運(yùn)行在服務(wù)器上的一段程序。接收請求、分析請求、構(gòu)造響應(yīng)、發(fā)送響應(yīng)都是由該Web應(yīng)用完成的,這幾項(xiàng)工作也是大多數(shù)Web應(yīng)用的主要工作。2022/7/2

3、551.2 HTTP協(xié)議 Web應(yīng)用的核心就是如何分析請求、完成相應(yīng)動(dòng)作并構(gòu)造響應(yīng)。而這其中的分析請求和構(gòu)造響應(yīng)都是與Internet的一種傳輸協(xié)議 HTTP 緊密相關(guān),它規(guī)定了Web應(yīng)用中的數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸方式和傳輸格式。下面就讓我們一起來了解一下HTTP協(xié)議的主要內(nèi)容。2022/7/256 HTTP的全稱是HyperText Transfer Protocal,即超文本傳輸協(xié)議。它是Internet的應(yīng)用層協(xié)議,它定義了客戶機(jī)的瀏覽器與服務(wù)器的Web應(yīng)用之間如何進(jìn)行通信,以及通信時(shí)用于傳遞數(shù)據(jù)的數(shù)據(jù)包的格式等內(nèi)容。 HTTP協(xié)議是采用請求/響應(yīng)模式的無狀態(tài)協(xié)議。1.1節(jié)所介紹的訪問西北大

4、學(xué)主頁的過程就是如此。 在請求/響應(yīng)過程中,Web應(yīng)用不保存與任何一個(gè)客戶機(jī)通信的狀態(tài),它只對到來的當(dāng)前請求進(jìn)行處理,處理完返回對應(yīng)于該請求的響應(yīng).HTTP通信方式2022/7/257HTTP通信方式任何兩個(gè)請求的處理都是獨(dú)立的,無論這兩個(gè)請求是來自同一個(gè)客戶機(jī)還是不同的客戶機(jī)。圖1.2 Web服務(wù)器與客戶瀏覽器交互示意圖2022/7/2581.2.1 HTTP請求消息 HTTP請求消息由Request-Line(請求行)、Header Field(頭域)和Message-Body(消息體)組成。 圖1.3 HTTP請求消息格式 2022/7/259請求行一般格式是: Request-Line

5、 = MethodSPRequest-URISPHTTP-Version CRLF 其中Method稱為HTTP方法(HTTP Method),它表示該請求所要進(jìn)行的操作類型;Request-URI稱為請求URI,它表示與該請求有關(guān)的Web服務(wù)器中的資源定位符;HTTP-Version表示該請求使用的HTTP協(xié)議的版本號,一般是HTTP/1.0或HTTP/1.1,目前使用的HTTP版本大部分都是HTTP/1.1。SP表示空格,CRLF表示回車換行,它們都是格式信息,用于分隔各部分信息。 2022/7/2510頭域和消息體頭域緊跟在Request-Line的后面,每個(gè)域一行,本節(jié)后面部分將會(huì)詳細(xì)

6、介紹頭域。消息體在頭域后面,與頭域隔一個(gè)空行,不過并不是所有HTTP請求消息都有消息體,有些就沒有消息體,這由該HTTP請求消息的HTTP方法類型決定。2022/7/25111.HTTP方法 HTTP/1.1總共定義了OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT 8種HTTP方法,其中GET方法和POST方法是最常見的也是使用最多的HTTP方法,所以本書將只重點(diǎn)針對GET方法和POST方法進(jìn)行詳細(xì)介紹。 2022/7/2512Get方法GET方法向服務(wù)器申請請求URI指定的資源:請求URI可能指向的是一個(gè)服務(wù)器Web路徑下的一個(gè)文件,那么接收到請

7、求后Web服務(wù)器會(huì)將該文件的內(nèi)容作為HTTP響應(yīng)的內(nèi)容返回給瀏覽器; 請求URI指向的也可能是一個(gè)數(shù)據(jù)處理過程(比如一個(gè)Servlet),那么Web服務(wù)器會(huì)執(zhí)行該過程并將該過程執(zhí)行結(jié)束后向客戶端反饋的結(jié)果信息加入到HTTP響應(yīng)中返回。2022/7/2513GET方法使用場景:(1)在瀏覽器中鍵入網(wǎng)頁地址,從Web服務(wù)器上獲取網(wǎng)頁中的所有內(nèi)容 。請求每一項(xiàng)內(nèi)容時(shí)都會(huì)將一個(gè)GET請求提交給服務(wù)器,然后服務(wù)器會(huì)處理每一個(gè)請求并將請求的內(nèi)容作為響應(yīng)返回給瀏覽器。(2)點(diǎn)擊網(wǎng)頁上的一個(gè)圖片鏈接打開一個(gè)圖片。瀏覽器會(huì)將圖片的URI構(gòu)造成一個(gè)請求消息,并將請求消息提交給服務(wù)器,服務(wù)器接收到請求消息,解析請求

8、URI,然后將URI指向的圖片返回給瀏覽器。 2022/7/2514POST方法 與GET方法相反,POST方法主要用于向服務(wù)器提交數(shù)據(jù)內(nèi)容,所以一般來說POST消息的消息體中會(huì)包含提交的數(shù)據(jù)內(nèi)容。POST消息中請求URI也可以是一個(gè)文件位置或者數(shù)據(jù)處理過程,假如指向的是一個(gè)文件位置,那么Web服務(wù)器會(huì)將POST消息體中攜帶的數(shù)據(jù)作為一個(gè)文件保存在指定的位置;如果指向的是一個(gè)數(shù)據(jù)處理過程,那么Web服務(wù)器會(huì)將POST消息體中攜帶的數(shù)據(jù)傳遞給該數(shù)據(jù)處理過程,并啟動(dòng)該數(shù)據(jù)處理過程對數(shù)據(jù)進(jìn)行處理。 2022/7/2515通常POST方法會(huì)被使用到如下場景: (1)提交登錄信息。當(dāng)輸入完用戶名和密碼后

9、,點(diǎn)擊登錄按鈕時(shí),瀏覽器就會(huì)將登錄信息作為POST消息的消息體提交給Web服務(wù)器。 (2)在論壇中發(fā)帖子。帖子的標(biāo)題和內(nèi)容會(huì)作為POST消息的消息體提交給Web服務(wù)器。 (3)發(fā)送E-mail。E-mail的各項(xiàng)信息(發(fā)件人、收件人、抄送、密送、標(biāo)題、正文等)會(huì)組織成一定的格式,然后作為POST消息的消息體提交給Web服務(wù)器。 2022/7/2516Request-URI Request-URI又稱請求URI,它符合URI(資源定位符)的格式規(guī)范,表示了Web服務(wù)器上的一個(gè)資源位置。 Request-URI的四種格式: Request-URI = * | absoluteURI | abs_p

10、ath | authority * 表示該Request-URI并不指向某個(gè)特定的位置,說明該HTTP請求消息所請求的操作是針對整個(gè)Web服務(wù)器的,而不是針對某個(gè)特定資源的;absoluteURI是一個(gè)用絕對形式表示的URI,即以協(xié)議開頭的URI;abs_path是一個(gè)用相對形式表示的URI,但是它必須是一個(gè)Web服務(wù)器上的絕對路徑,必須以一個(gè) / 開頭,例如:/images/bg.jpg。這種表示形式指定了一個(gè)從Web服務(wù)器根目錄開始的相對路徑。 2022/7/25171.2.2 HTTP響應(yīng)消息 HTTP響應(yīng)消息是Web服務(wù)器在處理完HTTP請求消息后返回給客戶機(jī)瀏覽器的消息,它也由狀態(tài)行

11、、頭域和消息體組成。 圖1.4 HTTP響應(yīng)消息格式2022/7/2518狀態(tài)行的一般格式如下: Status-Line = HTTP-VersionSPStatus-CodeSPReason-Phrase CRLF 其中,HTTP-Version、SP和CRLF的意義與請求消息中的一樣。Status-Code是響應(yīng)狀態(tài)碼,它是3位十進(jìn)制數(shù),HTTP/1.1預(yù)定義了很多狀態(tài)碼用于表示服務(wù)器處理請求的狀態(tài);Reason-Phrase是一個(gè)簡短的文字,它對響應(yīng)碼進(jìn)行文字性說明。2022/7/2519Status-Code根據(jù)首位數(shù)字的不同可分為幾大類:1xx:信息響應(yīng)類,表示接收到請求并且繼續(xù)處理

12、。2xx:處理成功響應(yīng)類,表示動(dòng)作被成功接收、理解和接受。 3xx:重定向響應(yīng)類,為了完成指定的動(dòng)作,必須接受進(jìn)一步處理。 4xx:客戶端錯(cuò)誤,客戶請求包含語法錯(cuò)誤或者是不能被正確執(zhí)行。 5xx:服務(wù)端錯(cuò)誤,服務(wù)器不能正確執(zhí)行一個(gè)正確的請求。 2022/7/25201.2.3 Header Field 頭域一般有通用頭域、請求頭域、響應(yīng)頭域和實(shí)體頭域等。整個(gè)頭域由多條頭域項(xiàng)組成,每條頭域項(xiàng)占一行。一條頭域項(xiàng)的一般格式為: Field-Name: Field -Value 其中Field -Name是頭域名,F(xiàn)ield -Value是頭域值。 2022/7/2521General Header

13、Field 這類頭域即可以出現(xiàn)在請求消息中也可以出現(xiàn)在響應(yīng)消息中,它們只描述了傳遞消息的一些屬性,而不能用于描述傳送文件的信息。常見的有: Cache-Control:用于指定一種緩沖機(jī)制,這種緩沖機(jī)制在整個(gè)請求/響應(yīng)過程中必須被遵守,這個(gè)頭域中指定的緩沖機(jī)制將覆蓋默認(rèn)的緩沖機(jī)制。 Date:表示消息生成時(shí)的日期時(shí)間,該域所使用的日期格式必須符合HTTP日期格式 。Pragma:用于指定一些實(shí)現(xiàn)相關(guān)的參數(shù),在HTTP協(xié)議中并沒有規(guī)定該頭域所攜帶參數(shù)的意義。Transfer-Encoding:如果該頭域被指定,那就說明消息體采用了所指定的傳輸類型進(jìn)行傳輸。 2022/7/2522Request

14、Header Field 這類頭域只出現(xiàn)在請求消息中,它們通常被客戶機(jī)用于向服務(wù)器傳遞一些客戶機(jī)的信息或者請求消息的信息。常見的有: Accept:可以被用來說明客戶機(jī)瀏覽器能夠接受的媒體格式 。 Accept-Charset:可以被用來說明客戶機(jī)瀏覽器能夠接受的字符編碼方式。 Accept-Encoding:可以被用來說明客戶機(jī)瀏覽器能夠接受的內(nèi)容編碼方法,通常是用來指定內(nèi)容的壓縮方法 。 Accept-Language:可以被用來說明客戶機(jī)瀏覽器能夠接受的語言 。 From:表示提交該請求的終端用戶的電子郵件 。 Host:指示Internet上的一個(gè)主機(jī)和端口號,主機(jī)通常是域名或者IP地

15、址 。If-Match:如果HTTP請求中含有該頭域或者后面將要提到的If-ModifiedSince,2022/7/2523 If-None-Match,If-Range和If-Unmodified-Since頭域時(shí),那么該請求就變 成了“條件請求”,即只有滿足上述描述的條件時(shí)請求的操作才需要被執(zhí)行,這樣可以減少不必要的資源浪費(fèi)。 If-None-Match:意義與If-Match恰好相反,表示匹配不成功則執(zhí)行,否則不執(zhí)行。 If-Modified-Since:值是一個(gè)日期,表示請求的資源如果從給定的日期后修改過則執(zhí)行操作,否則不執(zhí)行。 If-Unmodified-Since:意義與If-M

16、odified-Since恰好相反,表示請求的資源如果從給定的日期后沒有被修改過則執(zhí)行操作,否則不執(zhí)行。 If-Range:它表示“如果指定的資源實(shí)體沒有被更改則將我缺少的發(fā)給我,否則發(fā)給我整個(gè)資源實(shí)體”。2022/7/2524Max-Forwards:在TRACE和OPTIONS方法中使用,用于限制消息在網(wǎng)絡(luò)中傳播的跳數(shù),即消息被代理或者網(wǎng)關(guān)轉(zhuǎn)發(fā)的次數(shù),以此來限制消息的生命期。Range:用于指定一個(gè)范圍,它表示請求的資源實(shí)體的范圍,可以使用字節(jié)數(shù)指定。If-Range需要的范圍就是通過該頭域指定的。Referer:客戶機(jī)用該域告訴服務(wù)器,請求中的Request-URI是如何獲得的。User

17、-Agent:可以被用來說明客戶機(jī)瀏覽器的型號。 2022/7/2525Response Header Field 這類頭域只出現(xiàn)在響應(yīng)消息中,它們通常被服務(wù)器用于向客戶機(jī)傳遞一些服務(wù)器的信息或著響應(yīng)消息的信息。常見的有: Accept-Ranges:服務(wù)器用于指示它所接受的Range類型 。Age:顧名思義,響應(yīng)消息中該頭域表示響應(yīng)消息的“年齡”,也就是服務(wù)器估計(jì)的該響應(yīng)消息產(chǎn)生后的時(shí)間長度。Location:當(dāng)響應(yīng)消息的響應(yīng)碼為3xx時(shí),該頭域會(huì)被響應(yīng)消息用于指示重定向后新的URL。Retry-After:通常用于響應(yīng)碼為503的響應(yīng)消息,503響應(yīng)消息表示服務(wù)器當(dāng)前不可用,該頭域估計(jì)了一

18、個(gè)服務(wù)器不可用的時(shí)間。Server:表示運(yùn)行在服務(wù)器上用于處理請求的軟件的信息。 2022/7/2526Entity Header Field 該類頭域描述了消息體中攜帶的數(shù)據(jù)的元數(shù)據(jù)(即對數(shù)據(jù)的長度、類型、修改時(shí)間等屬性的描述信息),請求消息和響應(yīng)消息中都可以包含這類頭域。常見的有: Allow:表示Request-URI指定的資源實(shí)體所支持的HTTP方法列表,在響應(yīng)碼為405的響應(yīng)消息中必須包含該頭域。 Content-Encoding:指示消息內(nèi)容的編碼方法,通常指示內(nèi)容的壓縮算法。 Content-Language:表示消息內(nèi)容所采用的自然語言。Content-Length:表示消息長

19、度。頭域值是十進(jìn)制數(shù),表示字節(jié)數(shù)。2022/7/2527Content-Location:表示除了Request-URI指定的位置外,其他可以訪問到消息內(nèi)容的位置。Content-MD5:表示消息體中的數(shù)據(jù)的MD5校驗(yàn)碼,用來實(shí)現(xiàn)端到端的消息完整性檢查。Content-Range:當(dāng)傳遞的數(shù)據(jù)是整個(gè)資源實(shí)體的一部分時(shí),用該域說明當(dāng)前傳遞的數(shù)據(jù)是資源實(shí)體的哪一部分。 Content-Type:指示消息體中的內(nèi)容的媒體格式。 Expires:指定了一個(gè)日期,表示消息體中的內(nèi)容在該日期之前有效,過了該日期則消息內(nèi)容就過時(shí)了。Last-Modified:表示消息中攜帶的內(nèi)容實(shí)體的最后修改時(shí)間。 202

20、2/7/25281.3 HTML語言 HTML的全稱是HyperText Markup Language,即超文本標(biāo)記語言。它是一種規(guī)范,這個(gè)規(guī)范定義了一系列標(biāo)記以及這些標(biāo)記的結(jié)構(gòu)。瀏覽器可以將任何符合該規(guī)范的文檔(通常為HTML或HTM文檔)進(jìn)行解析并且按照HTML文檔的結(jié)構(gòu)進(jìn)行格式化展示??蛻魴C(jī)瀏覽器和Web服務(wù)器可以通過互相交換HTML文檔實(shí)現(xiàn)具有豐富格式信息的數(shù)據(jù)的傳送。2022/7/2529HTML文檔簡單框架舉例示例 1.1 這是HTML標(biāo)題 這是HTML內(nèi)容 HTML文檔使用一系列標(biāo)簽將文本組織成特定的結(jié)構(gòu),并且可以通過特定的標(biāo)簽使得文檔在瀏覽器中展示時(shí)可以引入豐富的顏色、圖片、

21、字體等信息。 2022/7/25301.3.1 標(biāo)簽和屬性 HTML標(biāo)簽分為開始標(biāo)簽和結(jié)束標(biāo)簽,開始標(biāo)簽由一對尖括號括起來,尖括號中的文字是標(biāo)簽的名稱,結(jié)束標(biāo)簽與開始標(biāo)簽有相同的名稱,并且在左尖括號和標(biāo)簽名稱之間加了一個(gè) / ;HTML中的大部分標(biāo)簽都是成對的,例如和、和;一對標(biāo)簽之間可以包含文字也可以包含其他標(biāo)簽。另外,有一種特殊的寫法,就是將 / 寫在右尖括號的前面,這是的簡寫形式,它表示標(biāo)簽中不包含任何內(nèi)容。 HTML標(biāo)簽除了可以組織內(nèi)容之外,大多數(shù)標(biāo)簽可以定義一系列的屬性用于補(bǔ)充說明標(biāo)簽的一些附加信息,屬性都寫在開始標(biāo)簽中,例如: .2022/7/25311.3.2 常用標(biāo)簽 1. 頁

22、面標(biāo)簽、和規(guī)定了文檔的整體結(jié)構(gòu)。標(biāo)簽中是頭部信息,其中可以定義一些輔助信息,這些信息不會(huì)顯示在瀏覽器的頁面正文中,例如定義了頁面的標(biāo)題,它顯示在瀏覽器的標(biāo)題欄上。 中除了可以包含外,還可以包含其他標(biāo)簽,如link和meta標(biāo)簽, link可以用于鏈接一些其他文檔,最常見的是使用該標(biāo)簽鏈接樣式表(Style Sheet),如 ; meta用于定義頁面的一些2022/7/2532 元數(shù)據(jù)信息,最常見的是使用該標(biāo)簽定義頁面的媒體格式和字符編碼方式,。 標(biāo)簽的內(nèi)容包含了html文檔所要顯示的絕大多數(shù)內(nèi)容,所有需要在瀏覽器頁面正文中顯示的內(nèi)容都必須定義在該標(biāo)簽中;而且, 標(biāo)簽的屬性也可以用于規(guī)定整個(gè)頁面

23、的展示方式。標(biāo)簽常見的屬性如表1.1所示。 表1.1 body標(biāo)簽屬性屬性名屬性值意義bgcolor顏色值頁面背景的顏色background一個(gè)圖片鏈接使用該圖片作為頁面背景l(fā)ink顏色值頁面中帶鏈接文字的顏色vlink顏色值頁面中被訪問過的鏈接文字的顏色alink顏色值頁面中活動(dòng)的鏈接文字的顏色2022/7/2534 2. 格式標(biāo)簽 要控制HTML文檔中的文字最終如何在瀏覽器中布局,需要使用HTML的格式標(biāo)簽。HTML定義了豐富的用于定義格式的標(biāo)簽,例如,、等等。 文字的控制: HTML中提供了一個(gè)通用的標(biāo)簽用于設(shè)置文字的屬性,即,也有一些標(biāo)簽可以方便地設(shè)置文字的一種屬性,例如(一系列標(biāo)簽、

24、的總稱)可以方便的定義不同大小的文字。 常用的格式標(biāo)簽: 標(biāo)簽是一個(gè)用于設(shè)置文字字體的通用方法,它通過不同屬性來設(shè)置文字的不同方面:size屬性用于設(shè)置文字的大小、face屬性用于設(shè)置字體、color屬性用于設(shè)置文字的顏色; 2022/7/2535標(biāo)簽是一組標(biāo)簽的總稱,x可以是1、2、3、,它們都表示頁面的標(biāo)題,不同的x表示的標(biāo)題級別不一樣,x越大級別越低,所包含文字的字體也會(huì)越?。幻總€(gè)標(biāo)題占一行;和標(biāo)簽表示將文字加粗;和標(biāo)簽表示將文字變成斜體;標(biāo)簽表示給文字加下劃線;和標(biāo)簽都表示給文字加一個(gè)中劃線;標(biāo)簽表示將文字作為上角標(biāo);標(biāo)簽表示將文字作為下角標(biāo);2022/7/2536 行的控制: 表示在

25、該標(biāo)簽中的文字形成一個(gè)單獨(dú)的段落,通常段落與段落之間有一個(gè) 空行; 表示換行,即該標(biāo)簽之前是一行,該標(biāo)簽之后是另外一行。 布局的控制: align屬性通常用于規(guī)定標(biāo)簽內(nèi)容的對齊方式,、 標(biāo)簽都有該屬性,可以通過將該屬性的值指定為center、left或right以用于將內(nèi)容居中、居左或居右對齊;2022/7/2537 列表是一種經(jīng)常使用的布局方式,HTML的標(biāo)簽用于定義無序的列表,標(biāo)簽用于定義有序的列表,表示列表的一項(xiàng);而且可以通過定義標(biāo)簽的start屬性指定有序列表的起始序號,定義 標(biāo)簽的type屬性指定序號的形狀。 此外,HTML還有一個(gè)標(biāo)簽可以定義預(yù)格式化的文本,即該標(biāo)簽內(nèi)的文字將不按H

26、TML規(guī)范進(jìn)行解析,而是將其中的內(nèi)容原封不動(dòng)、保持格式顯示在瀏覽器中。2022/7/25383.表格表格都用頂層標(biāo)簽進(jìn)行定義,標(biāo)簽用于定義表頭,標(biāo)簽用于定義一行,標(biāo)簽用于定義一行中的一列,具體應(yīng)用請看下面的示例:第一列第二列第三列111213 21,223 2022/7/25394.表單 表單是HTML的一個(gè)重要部分,主要采集和提交用戶輸入的信息。 標(biāo)簽用來在網(wǎng)頁中創(chuàng)建表單區(qū)域。form元素基本語法結(jié)構(gòu)如下: 各種表單元素 其中action指出提交后,由服務(wù)器上的哪個(gè)處理程序進(jìn)行處理。寫處理文件的名字,也可以寫URL。如果action的值為空字符串,則提交給當(dāng)前文件進(jìn)行處理;method屬性指

27、定向服務(wù)器提交表單方式,有post和get兩種可選方式。get的方式是將表單元素的name/value信息經(jīng)過編碼之后,通過URL發(fā)送(在地址欄中看到用戶輸入的信息)。而post則將表單的內(nèi)容通過http發(fā)送,你在地址欄看不到表單的提交信息。2022/7/2540常用的表單元素單行文本框 單行文本框用于輸入少量的信息。 基本語法格式: 密碼框 密碼框用于輸入密碼?;镜恼Z法格式: 2022/7/2541提交按鈕 當(dāng)點(diǎn)擊提交按鈕的時(shí)候,把輸入的信息提交給服務(wù)器?;菊Z法格式: value為顯示在按鈕上面的信息。復(fù)位按鈕 當(dāng)點(diǎn)擊復(fù)位按鈕的時(shí)候,把各個(gè)表單元素的值恢復(fù)到默認(rèn)值?;菊Z法格式: 202

28、2/7/2542普通按鈕 普通按鈕也可以完成提交,還可以完成方法的調(diào)用?;菊Z法格式: 單選按鈕 單選按鈕用于在多個(gè)選項(xiàng)中選擇一個(gè)?;菊Z法格式: value表示初始狀態(tài)時(shí),選擇哪一個(gè)選項(xiàng)。 例如選擇性別(初始時(shí),選擇為“男”): 2022/7/2543 男 女復(fù)選框 復(fù)選框用于多選。基本的語法格式: 顯示給用戶的信息與提交給服務(wù)器的信息沒有關(guān)系。如果希望多個(gè)選項(xiàng)是一組,應(yīng)該使用相同的名字。2022/7/2544下拉列表 下拉列表用于選擇,可以單選,也可以多選。 基本語法格式: 1 2 . 每個(gè)選項(xiàng)使用一個(gè)option,使用value屬性指出該選項(xiàng)的值,在和之間是顯示給用戶的值。2022/7/

29、2545文本域 文本域用于輸入大量的信息?;菊Z法格式: 默認(rèn)值 要為這個(gè)文本域賦默認(rèn)值,需要把值放在開始標(biāo)志和結(jié)束標(biāo)志之間,而不是使用value屬性。2022/7/25465.其他標(biāo)簽主要用于定義一個(gè)超鏈接,其href屬性用于指定超鏈接的地址;標(biāo)簽用于在網(wǎng)頁中以鏈接的方式加入一個(gè)圖片,其src屬性用于指定待鏈接圖片的位置;標(biāo)簽可以在頁面上加一個(gè)水平的分隔線。 HTML有非常多的標(biāo)簽,大部分標(biāo)簽也都定義了很多的屬性,熟悉掌握它們對于Web應(yīng)的開發(fā)是非常重要的。本章由于篇幅有限只能介紹非常有限的內(nèi)容,希望讀者在學(xué)習(xí)完本節(jié)后自己再搜索一些資料自行學(xué)習(xí)。2022/7/2547 作為Internet上

30、的一種應(yīng)用架構(gòu),Web的首要任務(wù)就是向人們提供信息和信息服務(wù),從而實(shí)現(xiàn)信息的共享。Web應(yīng)用中的每一次信息交換都要涉及到客戶端和服務(wù)端兩個(gè)層面。因此,Web開發(fā)技術(shù)大體上也可以被分為客戶端技術(shù)和服務(wù)端技術(shù)兩大類。1. 客戶端技術(shù) Web客戶端的主要任務(wù)是展現(xiàn)信息內(nèi)容,即網(wǎng)頁上的內(nèi)容,HTML語言是信息展現(xiàn)的最有效載體之一。Web客戶端使用HTML技術(shù)直觀地,層次化,展現(xiàn)網(wǎng)絡(luò)內(nèi)容,并按照一定格式渲染網(wǎng)絡(luò)內(nèi)容。瀏覽器負(fù)責(zé)解釋HTML標(biāo)簽。僅僅使用HTML只能展示靜態(tài)信息,JavaScript是向動(dòng)態(tài)技術(shù)演化過程中出現(xiàn)的技術(shù)之一。JavaScript技術(shù)改變了類似于服務(wù)2022/7/25481.4

31、Web應(yīng)用開發(fā)技術(shù) 器端檢查用戶名等信息是否合法費(fèi)時(shí)的現(xiàn)狀,Ajax技術(shù)減少了鏈接過程中的刷屏等待時(shí)間。Java Applet允許在網(wǎng)頁中嵌入Java程序,并在本地執(zhí)行。與Java Applet并駕齊驅(qū)的另一項(xiàng)技術(shù)Flash則在一段時(shí)間內(nèi),幾乎一統(tǒng)互聯(lián)網(wǎng)的視頻播放以及網(wǎng)頁游戲領(lǐng)域。由于Flash存在不安全性等缺點(diǎn),出現(xiàn)了HTML5和CSS3。HTML5以及CSS3,它們將很多JavaScript以及Flash完成的功能統(tǒng)一到HTML標(biāo)簽里,由瀏覽器負(fù)責(zé)解釋執(zhí)行。2. 服務(wù)器端技術(shù) 與客戶端技術(shù)從靜態(tài)向動(dòng)態(tài)的演進(jìn)過程類似,Web服務(wù)端的開發(fā)技術(shù)也是由靜態(tài)向動(dòng)態(tài)逐漸發(fā)展、完善起來的。2022/7/

32、2549 第一種真正使服務(wù)器能根據(jù)運(yùn)行時(shí)的具體情況,動(dòng)態(tài)生成HTML頁面的技術(shù)是CGI技術(shù),即通用網(wǎng)關(guān)接口(Common Gateway Interface)。1994年,Rasmus Lerdorf發(fā)明了專用于Web服務(wù)端編程的開源PHP(Personal Home Page Tools)語言。PHP語言將HTML代碼和PHP指令合成為完整的服務(wù)端動(dòng)態(tài)頁面,Web應(yīng)用的開發(fā)者可以用一種更加簡便、快捷的方式實(shí)現(xiàn)動(dòng)態(tài)Web功能。1996年,Microsoft借鑒PHP的思想,在其Web服務(wù)器IIS 3.0中引入了ASP技術(shù)。ASP使用的腳本語言是VBScript和JavaScript。1997年

33、,Servlet技術(shù)問世,1998年,JSP技術(shù)誕生。Servlet和JSP的組合以及Java Bean技術(shù)讓Java開發(fā)者同時(shí)擁有了類似CGI程序的業(yè)務(wù)處理功能和類似PHP的HTML嵌入功能,此外,JVM技術(shù)的發(fā)展與優(yōu)化也大大提高了Servlet和JSP的執(zhí)行效率。 2022/7/25501.4.1 Servlet技術(shù) Servlet是CGI的替代品,也是Java進(jìn)軍Web開發(fā)領(lǐng)域的第一款技術(shù),Servlet與CGI相比,具有有效性、穩(wěn)定性、可移植性、健壯性以及可擴(kuò)充性。 Servlet規(guī)范規(guī)定了Servlet對象和Servlet容器的協(xié)作方式,以及Servlet體系中相關(guān)的API; Ser

34、vlet接口規(guī)定了一個(gè)Servlet應(yīng)該具有的行為,開發(fā)人員開發(fā)出符合Servlet接口的Java對象,并將其部署到Servlet容器中就可以使Servlet容器具有該Servlet實(shí)現(xiàn)的功能。Tomcat是具有普通Web服務(wù)器功能的最典型的Servlet容器,通過配置Tomcat的配置文件可以將Servlet部署到Tomcat中。 2022/7/25511.4.2 JSP技術(shù) JSP的全稱是JavaServer Pages,它是基于Java的動(dòng)態(tài)頁面技術(shù),它可用于創(chuàng)建跨平臺和跨Web服務(wù)器的動(dòng)態(tài)網(wǎng)頁。JSP也需要運(yùn)行于JSP容器中, 但JSP以單獨(dú)的文件形式存在,JSP文件的內(nèi)容非常類似于一

35、個(gè)HTML文件,它在HTML文件中通過特殊的標(biāo)簽將Java代碼添加到其中。 JSP文件直接存在于Web應(yīng)用的Web目錄中,客戶端的請求URL直接指向該JSP文件,當(dāng)JSP容器發(fā)現(xiàn)客戶端正在請求某個(gè)JSP文件時(shí)它就對該JSP文件進(jìn)行解析,運(yùn)行其中的Java代碼,并將執(zhí)行完后生成的HTML內(nèi)容返回給客戶端。 2022/7/2552 JSP文件也能處理動(dòng)態(tài)內(nèi)容,而且在向客戶反饋HTML文檔時(shí)非常方便;但是由于JSP把Java代碼和HTML內(nèi)容放在同一個(gè)文件中,假如其中用于內(nèi)容處理的Java代碼過多的話,JSP文件的內(nèi)容就會(huì)過于龐雜,格式也會(huì)比較混亂,不利于開發(fā)和維護(hù)。2022/7/25531.4.3

36、 JavaBean技術(shù) Sun公司對JavaBean的定義為:可以重復(fù)利用的軟件組件,它在遵循JavaBean技術(shù)規(guī)范的基礎(chǔ)上提供特定的功能,通過JavaBean可以無限擴(kuò)充Java程序的功能,組合成更大規(guī)模的應(yīng)用系統(tǒng)。 JavaBean大體可以分為兩類,第一類是可視化JavaBean,第二類是非可視化JavaBean??梢暬疛avaBean,可以是簡單的GUI元素,如按鈕或文本框,也可以是復(fù)雜的,如報(bào)表組件。非可視化的JavaBean,就是沒有GUI界面的JavaBean。 2022/7/2554 在JSP程序中,很多的代碼段是可以重復(fù)使用的,比如對數(shù)據(jù)庫的操作、用戶的有效性檢查及某些項(xiàng)特定

37、功能的實(shí)現(xiàn)等。因此常用JavaBean封裝事務(wù)邏輯、數(shù)據(jù)庫操作等,實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺程序(如JSP文件)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。2022/7/25551.4.4 JDBC技術(shù) Java提供了一種JDBC(Java DataBase Connectivity)技術(shù),該技術(shù)是一種可用于執(zhí)行SQL語句的JavaAPI,由一些Java語言編寫的類和界面組成。制定了統(tǒng)一的訪問各類關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)接口,為各個(gè)數(shù)據(jù)庫廠商提供了標(biāo)準(zhǔn)接口的實(shí)現(xiàn)。通過使用JDBC技術(shù),開發(fā)人員可以用純Java語言和標(biāo)準(zhǔn)的SQL語句編寫完整的數(shù)據(jù)庫應(yīng)用程序,并且真正的實(shí)現(xiàn)了軟件的跨平臺性。 2022/7/2556

38、1.5 Java Web開發(fā)環(huán)境及運(yùn)行環(huán)境1.5.1 集成開發(fā)環(huán)境現(xiàn)在常用的Java Web集成開發(fā)環(huán)境有:Eclipse、NetBeans和JBuilder等。 1.Eclipse開發(fā)環(huán)境 Eclipse是一個(gè)開放源代碼的、基于 Java 開發(fā)的可擴(kuò)展插件式集成開發(fā)環(huán)境 。Eclipse本身只是一個(gè)框架和一組服務(wù),通過插件組件來構(gòu)建開發(fā)環(huán)境,同時(shí)它還能接受由Java開發(fā)者自己編寫的開放源代碼插件 。Eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。Eclipse框架的這種靈活性來源于其擴(kuò)展點(diǎn)。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從

39、用在常規(guī)表述過濾器中的簡單字符串,到一個(gè)Java類的描述。任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其他插件使用,反之,任何Eclipse插件也可以遵從其他插件定義的擴(kuò)展點(diǎn)。 2022/7/25572. NetBeans開發(fā)環(huán)境 NetBeans是一個(gè)免費(fèi)的開源的集成開發(fā)環(huán)境。 NetBeans集成開發(fā)環(huán)境具有如下特性:易用的Java GUI Builder。通過在畫布上擺放和調(diào)整組件的對齊方式來創(chuàng)建看起來非常專業(yè)的圖形用戶界面??梢暬囊苿?dòng)開發(fā)。能夠創(chuàng)建、測試和調(diào)試運(yùn)行在移動(dòng)電話、置頂盒以及PDA上的圖形用戶界面應(yīng)用。Ruby和Rails支持。具有功能強(qiáng)大的Ruby編輯器、調(diào)試器和對Rail

40、s的完全支持,包括JRuby運(yùn)行時(shí)支持。2022/7/2558可視化的Web和JavaEE開發(fā)??梢钥梢暬厥褂肁jax、CSS和JavaScript構(gòu)建Web應(yīng)用,支持JSF、Struts、Spring和Hibernate等框架。包括用于EJB開發(fā)的完整工具集??梢暬疷ML建模。能夠根據(jù)模型生成代碼。C/C+開發(fā)。完整的C/C+編輯器、調(diào)試器和項(xiàng)目模板,并支持多項(xiàng)目配置。 3. JBuilder JBuilder也采用了Eclipse平臺,變成了Eclipse之上的一個(gè)大插件 ,JBuilder具有如下特點(diǎn) :2022/7/2559(1) Jbuilder支持最新的Java技術(shù),包括Appl

41、ets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的應(yīng)用。 (2) 用戶可以自動(dòng)地生成基于后端數(shù)據(jù)庫表的EJB Java類。同時(shí),Jbuilder還簡化了EJB的自動(dòng)部署功能。此外它支持CORBA,相應(yīng)的向?qū)С绦蛴兄谟脩羧娴毓芾鞩DL(分布應(yīng)用程序所必需的接口定義語言Interface Definition Language)和控制遠(yuǎn)程對象。 (3)Jbuilder支持各種應(yīng)用服務(wù)器。Jbuilder與Inprise Application Server緊密集成,同時(shí)支持WebLogic Server,支持EJB 1.1和EJB 2.0

42、,可以快速開發(fā)J2EE的電子商務(wù)應(yīng)用。 2022/7/2560(4) Jbuilder能用Servlet和JSP開發(fā)和調(diào)試動(dòng)態(tài)Web 應(yīng)用。 (5) 利用Jbuilder可創(chuàng)建純Java2應(yīng)用。由于Jbuilder是用純Java語言編寫的,其代碼不含任何專屬代碼和標(biāo)記,它支持最新的Java標(biāo)準(zhǔn)。 (6) Jbuilder擁有專業(yè)化的圖形調(diào)試介面,支持遠(yuǎn)程調(diào)試和多線程調(diào)試,調(diào)試器支持各種JDK版本,包括J2ME/J2SE/J2EE。2022/7/25611.5.2 運(yùn)行環(huán)境一個(gè)Web應(yīng)用的運(yùn)行首先需要Web服務(wù)器,其次是應(yīng)用服務(wù)器。Web服務(wù)器的主要功能是接受用戶的Web請求后提交給應(yīng)用服務(wù)器,然后把應(yīng)用服務(wù)器執(zhí)行的結(jié)果返回給用戶。應(yīng)用服務(wù)器的作用是根據(jù)用戶的請求選擇合適的文件加載執(zhí)行,然后把執(zhí)行的結(jié)果返回給Web服務(wù)器。應(yīng)用服務(wù)器的主要作用就是加載Java Web組件,并執(zhí)行Java Web組件。但是,Java Web組件的執(zhí)行離不開Java虛擬機(jī)。因

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論