版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、2022/7/251第一章 Java Web開發(fā)基礎 本章主要內(nèi)容介紹1.1 什么是Web應用1.2 HTTP協(xié)議1.3 HTML語言1.4 Web應用開發(fā)技術1.5 Java Web開發(fā)環(huán)境及運行環(huán)境1.6 皮影制作項目介紹 2022/7/2521.1 什么是Web應用 Web應用的典型模式:B/S模式 該模式又稱瀏覽器/服務器模式,即Internet上的兩臺主機,一臺充當服務器,另一臺充當客戶機,客戶機通過本機的瀏覽器與服務器進行通信。 1.1 B/S模式示意圖2022/7/253B/S模式通信過程 下面以訪問西北大學主頁為例,闡述客戶機與服務器之間的通信過程??蛻魴C請求服務器:瀏覽器中鍵
2、入西北大學的主頁地址,回車后瀏覽器就會向西北大學的服務器發(fā)送瀏覽西北大學主頁的請求,并且將自己的IP地址連同請求一塊發(fā)送給服務器;服務器響應客戶機:西北大學的服務器接收到該請求并且取出客戶機的IP地址,以客戶機的IP地址作為目的地址,將西北大學的主頁作為數(shù)據(jù)包發(fā)出; 2022/7/254B/S模式通信過程 當數(shù)據(jù)包傳送到客戶機后,讀者的瀏覽器就可以顯示西北大學的主頁了。在上例中西北大學的Web服務器中處理客戶機響應的程序就是一個典型的Web應用,是運行在服務器上的一段程序。接收請求、分析請求、構(gòu)造響應、發(fā)送響應都是由該Web應用完成的,這幾項工作也是大多數(shù)Web應用的主要工作。2022/7/2
3、551.2 HTTP協(xié)議 Web應用的核心就是如何分析請求、完成相應動作并構(gòu)造響應。而這其中的分析請求和構(gòu)造響應都是與Internet的一種傳輸協(xié)議 HTTP 緊密相關,它規(guī)定了Web應用中的數(shù)據(jù)在網(wǎng)絡中的傳輸方式和傳輸格式。下面就讓我們一起來了解一下HTTP協(xié)議的主要內(nèi)容。2022/7/256 HTTP的全稱是HyperText Transfer Protocal,即超文本傳輸協(xié)議。它是Internet的應用層協(xié)議,它定義了客戶機的瀏覽器與服務器的Web應用之間如何進行通信,以及通信時用于傳遞數(shù)據(jù)的數(shù)據(jù)包的格式等內(nèi)容。 HTTP協(xié)議是采用請求/響應模式的無狀態(tài)協(xié)議。1.1節(jié)所介紹的訪問西北大
4、學主頁的過程就是如此。 在請求/響應過程中,Web應用不保存與任何一個客戶機通信的狀態(tài),它只對到來的當前請求進行處理,處理完返回對應于該請求的響應.HTTP通信方式2022/7/257HTTP通信方式任何兩個請求的處理都是獨立的,無論這兩個請求是來自同一個客戶機還是不同的客戶機。圖1.2 Web服務器與客戶瀏覽器交互示意圖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),它表示該請求所要進行的操作類型;Request-URI稱為請求URI,它表示與該請求有關的Web服務器中的資源定位符;HTTP-Version表示該請求使用的HTTP協(xié)議的版本號,一般是HTTP/1.0或HTTP/1.1,目前使用的HTTP版本大部分都是HTTP/1.1。SP表示空格,CRLF表示回車換行,它們都是格式信息,用于分隔各部分信息。 2022/7/2510頭域和消息體頭域緊跟在Request-Line的后面,每個域一行,本節(jié)后面部分將會詳細
6、介紹頭域。消息體在頭域后面,與頭域隔一個空行,不過并不是所有HTTP請求消息都有消息體,有些就沒有消息體,這由該HTTP請求消息的HTTP方法類型決定。2022/7/25111.HTTP方法 HTTP/1.1總共定義了OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT 8種HTTP方法,其中GET方法和POST方法是最常見的也是使用最多的HTTP方法,所以本書將只重點針對GET方法和POST方法進行詳細介紹。 2022/7/2512Get方法GET方法向服務器申請請求URI指定的資源:請求URI可能指向的是一個服務器Web路徑下的一個文件,那么接收到請
7、求后Web服務器會將該文件的內(nèi)容作為HTTP響應的內(nèi)容返回給瀏覽器; 請求URI指向的也可能是一個數(shù)據(jù)處理過程(比如一個Servlet),那么Web服務器會執(zhí)行該過程并將該過程執(zhí)行結(jié)束后向客戶端反饋的結(jié)果信息加入到HTTP響應中返回。2022/7/2513GET方法使用場景:(1)在瀏覽器中鍵入網(wǎng)頁地址,從Web服務器上獲取網(wǎng)頁中的所有內(nèi)容 。請求每一項內(nèi)容時都會將一個GET請求提交給服務器,然后服務器會處理每一個請求并將請求的內(nèi)容作為響應返回給瀏覽器。(2)點擊網(wǎng)頁上的一個圖片鏈接打開一個圖片。瀏覽器會將圖片的URI構(gòu)造成一個請求消息,并將請求消息提交給服務器,服務器接收到請求消息,解析請求
8、URI,然后將URI指向的圖片返回給瀏覽器。 2022/7/2514POST方法 與GET方法相反,POST方法主要用于向服務器提交數(shù)據(jù)內(nèi)容,所以一般來說POST消息的消息體中會包含提交的數(shù)據(jù)內(nèi)容。POST消息中請求URI也可以是一個文件位置或者數(shù)據(jù)處理過程,假如指向的是一個文件位置,那么Web服務器會將POST消息體中攜帶的數(shù)據(jù)作為一個文件保存在指定的位置;如果指向的是一個數(shù)據(jù)處理過程,那么Web服務器會將POST消息體中攜帶的數(shù)據(jù)傳遞給該數(shù)據(jù)處理過程,并啟動該數(shù)據(jù)處理過程對數(shù)據(jù)進行處理。 2022/7/2515通常POST方法會被使用到如下場景: (1)提交登錄信息。當輸入完用戶名和密碼后
9、,點擊登錄按鈕時,瀏覽器就會將登錄信息作為POST消息的消息體提交給Web服務器。 (2)在論壇中發(fā)帖子。帖子的標題和內(nèi)容會作為POST消息的消息體提交給Web服務器。 (3)發(fā)送E-mail。E-mail的各項信息(發(fā)件人、收件人、抄送、密送、標題、正文等)會組織成一定的格式,然后作為POST消息的消息體提交給Web服務器。 2022/7/2516Request-URI Request-URI又稱請求URI,它符合URI(資源定位符)的格式規(guī)范,表示了Web服務器上的一個資源位置。 Request-URI的四種格式: Request-URI = * | absoluteURI | abs_p
10、ath | authority * 表示該Request-URI并不指向某個特定的位置,說明該HTTP請求消息所請求的操作是針對整個Web服務器的,而不是針對某個特定資源的;absoluteURI是一個用絕對形式表示的URI,即以協(xié)議開頭的URI;abs_path是一個用相對形式表示的URI,但是它必須是一個Web服務器上的絕對路徑,必須以一個 / 開頭,例如:/images/bg.jpg。這種表示形式指定了一個從Web服務器根目錄開始的相對路徑。 2022/7/25171.2.2 HTTP響應消息 HTTP響應消息是Web服務器在處理完HTTP請求消息后返回給客戶機瀏覽器的消息,它也由狀態(tài)行
11、、頭域和消息體組成。 圖1.4 HTTP響應消息格式2022/7/2518狀態(tài)行的一般格式如下: Status-Line = HTTP-VersionSPStatus-CodeSPReason-Phrase CRLF 其中,HTTP-Version、SP和CRLF的意義與請求消息中的一樣。Status-Code是響應狀態(tài)碼,它是3位十進制數(shù),HTTP/1.1預定義了很多狀態(tài)碼用于表示服務器處理請求的狀態(tài);Reason-Phrase是一個簡短的文字,它對響應碼進行文字性說明。2022/7/2519Status-Code根據(jù)首位數(shù)字的不同可分為幾大類:1xx:信息響應類,表示接收到請求并且繼續(xù)處理
12、。2xx:處理成功響應類,表示動作被成功接收、理解和接受。 3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理。 4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能被正確執(zhí)行。 5xx:服務端錯誤,服務器不能正確執(zhí)行一個正確的請求。 2022/7/25201.2.3 Header Field 頭域一般有通用頭域、請求頭域、響應頭域和實體頭域等。整個頭域由多條頭域項組成,每條頭域項占一行。一條頭域項的一般格式為: Field-Name: Field -Value 其中Field -Name是頭域名,F(xiàn)ield -Value是頭域值。 2022/7/2521General Header
13、Field 這類頭域即可以出現(xiàn)在請求消息中也可以出現(xiàn)在響應消息中,它們只描述了傳遞消息的一些屬性,而不能用于描述傳送文件的信息。常見的有: Cache-Control:用于指定一種緩沖機制,這種緩沖機制在整個請求/響應過程中必須被遵守,這個頭域中指定的緩沖機制將覆蓋默認的緩沖機制。 Date:表示消息生成時的日期時間,該域所使用的日期格式必須符合HTTP日期格式 。Pragma:用于指定一些實現(xiàn)相關的參數(shù),在HTTP協(xié)議中并沒有規(guī)定該頭域所攜帶參數(shù)的意義。Transfer-Encoding:如果該頭域被指定,那就說明消息體采用了所指定的傳輸類型進行傳輸。 2022/7/2522Request
14、Header Field 這類頭域只出現(xiàn)在請求消息中,它們通常被客戶機用于向服務器傳遞一些客戶機的信息或者請求消息的信息。常見的有: Accept:可以被用來說明客戶機瀏覽器能夠接受的媒體格式 。 Accept-Charset:可以被用來說明客戶機瀏覽器能夠接受的字符編碼方式。 Accept-Encoding:可以被用來說明客戶機瀏覽器能夠接受的內(nèi)容編碼方法,通常是用來指定內(nèi)容的壓縮方法 。 Accept-Language:可以被用來說明客戶機瀏覽器能夠接受的語言 。 From:表示提交該請求的終端用戶的電子郵件 。 Host:指示Internet上的一個主機和端口號,主機通常是域名或者IP地
15、址 。If-Match:如果HTTP請求中含有該頭域或者后面將要提到的If-ModifiedSince,2022/7/2523 If-None-Match,If-Range和If-Unmodified-Since頭域時,那么該請求就變 成了“條件請求”,即只有滿足上述描述的條件時請求的操作才需要被執(zhí)行,這樣可以減少不必要的資源浪費。 If-None-Match:意義與If-Match恰好相反,表示匹配不成功則執(zhí)行,否則不執(zhí)行。 If-Modified-Since:值是一個日期,表示請求的資源如果從給定的日期后修改過則執(zhí)行操作,否則不執(zhí)行。 If-Unmodified-Since:意義與If-M
16、odified-Since恰好相反,表示請求的資源如果從給定的日期后沒有被修改過則執(zhí)行操作,否則不執(zhí)行。 If-Range:它表示“如果指定的資源實體沒有被更改則將我缺少的發(fā)給我,否則發(fā)給我整個資源實體”。2022/7/2524Max-Forwards:在TRACE和OPTIONS方法中使用,用于限制消息在網(wǎng)絡中傳播的跳數(shù),即消息被代理或者網(wǎng)關轉(zhuǎn)發(fā)的次數(shù),以此來限制消息的生命期。Range:用于指定一個范圍,它表示請求的資源實體的范圍,可以使用字節(jié)數(shù)指定。If-Range需要的范圍就是通過該頭域指定的。Referer:客戶機用該域告訴服務器,請求中的Request-URI是如何獲得的。User
17、-Agent:可以被用來說明客戶機瀏覽器的型號。 2022/7/2525Response Header Field 這類頭域只出現(xiàn)在響應消息中,它們通常被服務器用于向客戶機傳遞一些服務器的信息或著響應消息的信息。常見的有: Accept-Ranges:服務器用于指示它所接受的Range類型 。Age:顧名思義,響應消息中該頭域表示響應消息的“年齡”,也就是服務器估計的該響應消息產(chǎn)生后的時間長度。Location:當響應消息的響應碼為3xx時,該頭域會被響應消息用于指示重定向后新的URL。Retry-After:通常用于響應碼為503的響應消息,503響應消息表示服務器當前不可用,該頭域估計了一
18、個服務器不可用的時間。Server:表示運行在服務器上用于處理請求的軟件的信息。 2022/7/2526Entity Header Field 該類頭域描述了消息體中攜帶的數(shù)據(jù)的元數(shù)據(jù)(即對數(shù)據(jù)的長度、類型、修改時間等屬性的描述信息),請求消息和響應消息中都可以包含這類頭域。常見的有: Allow:表示Request-URI指定的資源實體所支持的HTTP方法列表,在響應碼為405的響應消息中必須包含該頭域。 Content-Encoding:指示消息內(nèi)容的編碼方法,通常指示內(nèi)容的壓縮算法。 Content-Language:表示消息內(nèi)容所采用的自然語言。Content-Length:表示消息長
19、度。頭域值是十進制數(shù),表示字節(jié)數(shù)。2022/7/2527Content-Location:表示除了Request-URI指定的位置外,其他可以訪問到消息內(nèi)容的位置。Content-MD5:表示消息體中的數(shù)據(jù)的MD5校驗碼,用來實現(xiàn)端到端的消息完整性檢查。Content-Range:當傳遞的數(shù)據(jù)是整個資源實體的一部分時,用該域說明當前傳遞的數(shù)據(jù)是資源實體的哪一部分。 Content-Type:指示消息體中的內(nèi)容的媒體格式。 Expires:指定了一個日期,表示消息體中的內(nèi)容在該日期之前有效,過了該日期則消息內(nèi)容就過時了。Last-Modified:表示消息中攜帶的內(nèi)容實體的最后修改時間。 202
20、2/7/25281.3 HTML語言 HTML的全稱是HyperText Markup Language,即超文本標記語言。它是一種規(guī)范,這個規(guī)范定義了一系列標記以及這些標記的結(jié)構(gòu)。瀏覽器可以將任何符合該規(guī)范的文檔(通常為HTML或HTM文檔)進行解析并且按照HTML文檔的結(jié)構(gòu)進行格式化展示??蛻魴C瀏覽器和Web服務器可以通過互相交換HTML文檔實現(xiàn)具有豐富格式信息的數(shù)據(jù)的傳送。2022/7/2529HTML文檔簡單框架舉例示例 1.1 這是HTML標題 這是HTML內(nèi)容 HTML文檔使用一系列標簽將文本組織成特定的結(jié)構(gòu),并且可以通過特定的標簽使得文檔在瀏覽器中展示時可以引入豐富的顏色、圖片、
21、字體等信息。 2022/7/25301.3.1 標簽和屬性 HTML標簽分為開始標簽和結(jié)束標簽,開始標簽由一對尖括號括起來,尖括號中的文字是標簽的名稱,結(jié)束標簽與開始標簽有相同的名稱,并且在左尖括號和標簽名稱之間加了一個 / ;HTML中的大部分標簽都是成對的,例如和、和;一對標簽之間可以包含文字也可以包含其他標簽。另外,有一種特殊的寫法,就是將 / 寫在右尖括號的前面,這是的簡寫形式,它表示標簽中不包含任何內(nèi)容。 HTML標簽除了可以組織內(nèi)容之外,大多數(shù)標簽可以定義一系列的屬性用于補充說明標簽的一些附加信息,屬性都寫在開始標簽中,例如: .2022/7/25311.3.2 常用標簽 1. 頁
22、面標簽、和規(guī)定了文檔的整體結(jié)構(gòu)。標簽中是頭部信息,其中可以定義一些輔助信息,這些信息不會顯示在瀏覽器的頁面正文中,例如定義了頁面的標題,它顯示在瀏覽器的標題欄上。 中除了可以包含外,還可以包含其他標簽,如link和meta標簽, link可以用于鏈接一些其他文檔,最常見的是使用該標簽鏈接樣式表(Style Sheet),如 ; meta用于定義頁面的一些2022/7/2532 元數(shù)據(jù)信息,最常見的是使用該標簽定義頁面的媒體格式和字符編碼方式,。 標簽的內(nèi)容包含了html文檔所要顯示的絕大多數(shù)內(nèi)容,所有需要在瀏覽器頁面正文中顯示的內(nèi)容都必須定義在該標簽中;而且, 標簽的屬性也可以用于規(guī)定整個頁面
23、的展示方式。標簽常見的屬性如表1.1所示。 表1.1 body標簽屬性屬性名屬性值意義bgcolor顏色值頁面背景的顏色background一個圖片鏈接使用該圖片作為頁面背景l(fā)ink顏色值頁面中帶鏈接文字的顏色vlink顏色值頁面中被訪問過的鏈接文字的顏色alink顏色值頁面中活動的鏈接文字的顏色2022/7/2534 2. 格式標簽 要控制HTML文檔中的文字最終如何在瀏覽器中布局,需要使用HTML的格式標簽。HTML定義了豐富的用于定義格式的標簽,例如,、等等。 文字的控制: HTML中提供了一個通用的標簽用于設置文字的屬性,即,也有一些標簽可以方便地設置文字的一種屬性,例如(一系列標簽、
24、的總稱)可以方便的定義不同大小的文字。 常用的格式標簽: 標簽是一個用于設置文字字體的通用方法,它通過不同屬性來設置文字的不同方面:size屬性用于設置文字的大小、face屬性用于設置字體、color屬性用于設置文字的顏色; 2022/7/2535標簽是一組標簽的總稱,x可以是1、2、3、,它們都表示頁面的標題,不同的x表示的標題級別不一樣,x越大級別越低,所包含文字的字體也會越小;每個標題占一行;和標簽表示將文字加粗;和標簽表示將文字變成斜體;標簽表示給文字加下劃線;和標簽都表示給文字加一個中劃線;標簽表示將文字作為上角標;標簽表示將文字作為下角標;2022/7/2536 行的控制: 表示在
25、該標簽中的文字形成一個單獨的段落,通常段落與段落之間有一個 空行; 表示換行,即該標簽之前是一行,該標簽之后是另外一行。 布局的控制: align屬性通常用于規(guī)定標簽內(nèi)容的對齊方式,、 標簽都有該屬性,可以通過將該屬性的值指定為center、left或right以用于將內(nèi)容居中、居左或居右對齊;2022/7/2537 列表是一種經(jīng)常使用的布局方式,HTML的標簽用于定義無序的列表,標簽用于定義有序的列表,表示列表的一項;而且可以通過定義標簽的start屬性指定有序列表的起始序號,定義 標簽的type屬性指定序號的形狀。 此外,HTML還有一個標簽可以定義預格式化的文本,即該標簽內(nèi)的文字將不按H
26、TML規(guī)范進行解析,而是將其中的內(nèi)容原封不動、保持格式顯示在瀏覽器中。2022/7/25383.表格表格都用頂層標簽進行定義,標簽用于定義表頭,標簽用于定義一行,標簽用于定義一行中的一列,具體應用請看下面的示例:第一列第二列第三列111213 21,223 2022/7/25394.表單 表單是HTML的一個重要部分,主要采集和提交用戶輸入的信息。 標簽用來在網(wǎng)頁中創(chuàng)建表單區(qū)域。form元素基本語法結(jié)構(gòu)如下: 各種表單元素 其中action指出提交后,由服務器上的哪個處理程序進行處理。寫處理文件的名字,也可以寫URL。如果action的值為空字符串,則提交給當前文件進行處理;method屬性指
27、定向服務器提交表單方式,有post和get兩種可選方式。get的方式是將表單元素的name/value信息經(jīng)過編碼之后,通過URL發(fā)送(在地址欄中看到用戶輸入的信息)。而post則將表單的內(nèi)容通過http發(fā)送,你在地址欄看不到表單的提交信息。2022/7/2540常用的表單元素單行文本框 單行文本框用于輸入少量的信息。 基本語法格式: 密碼框 密碼框用于輸入密碼。基本的語法格式: 2022/7/2541提交按鈕 當點擊提交按鈕的時候,把輸入的信息提交給服務器?;菊Z法格式: value為顯示在按鈕上面的信息。復位按鈕 當點擊復位按鈕的時候,把各個表單元素的值恢復到默認值。基本語法格式: 202
28、2/7/2542普通按鈕 普通按鈕也可以完成提交,還可以完成方法的調(diào)用。基本語法格式: 單選按鈕 單選按鈕用于在多個選項中選擇一個?;菊Z法格式: value表示初始狀態(tài)時,選擇哪一個選項。 例如選擇性別(初始時,選擇為“男”): 2022/7/2543 男 女復選框 復選框用于多選?;镜恼Z法格式: 顯示給用戶的信息與提交給服務器的信息沒有關系。如果希望多個選項是一組,應該使用相同的名字。2022/7/2544下拉列表 下拉列表用于選擇,可以單選,也可以多選。 基本語法格式: 1 2 . 每個選項使用一個option,使用value屬性指出該選項的值,在和之間是顯示給用戶的值。2022/7/
29、2545文本域 文本域用于輸入大量的信息。基本語法格式: 默認值 要為這個文本域賦默認值,需要把值放在開始標志和結(jié)束標志之間,而不是使用value屬性。2022/7/25465.其他標簽主要用于定義一個超鏈接,其href屬性用于指定超鏈接的地址;標簽用于在網(wǎng)頁中以鏈接的方式加入一個圖片,其src屬性用于指定待鏈接圖片的位置;標簽可以在頁面上加一個水平的分隔線。 HTML有非常多的標簽,大部分標簽也都定義了很多的屬性,熟悉掌握它們對于Web應的開發(fā)是非常重要的。本章由于篇幅有限只能介紹非常有限的內(nèi)容,希望讀者在學習完本節(jié)后自己再搜索一些資料自行學習。2022/7/2547 作為Internet上
30、的一種應用架構(gòu),Web的首要任務就是向人們提供信息和信息服務,從而實現(xiàn)信息的共享。Web應用中的每一次信息交換都要涉及到客戶端和服務端兩個層面。因此,Web開發(fā)技術大體上也可以被分為客戶端技術和服務端技術兩大類。1. 客戶端技術 Web客戶端的主要任務是展現(xiàn)信息內(nèi)容,即網(wǎng)頁上的內(nèi)容,HTML語言是信息展現(xiàn)的最有效載體之一。Web客戶端使用HTML技術直觀地,層次化,展現(xiàn)網(wǎng)絡內(nèi)容,并按照一定格式渲染網(wǎng)絡內(nèi)容。瀏覽器負責解釋HTML標簽。僅僅使用HTML只能展示靜態(tài)信息,JavaScript是向動態(tài)技術演化過程中出現(xiàn)的技術之一。JavaScript技術改變了類似于服務2022/7/25481.4
31、Web應用開發(fā)技術 器端檢查用戶名等信息是否合法費時的現(xiàn)狀,Ajax技術減少了鏈接過程中的刷屏等待時間。Java Applet允許在網(wǎng)頁中嵌入Java程序,并在本地執(zhí)行。與Java Applet并駕齊驅(qū)的另一項技術Flash則在一段時間內(nèi),幾乎一統(tǒng)互聯(lián)網(wǎng)的視頻播放以及網(wǎng)頁游戲領域。由于Flash存在不安全性等缺點,出現(xiàn)了HTML5和CSS3。HTML5以及CSS3,它們將很多JavaScript以及Flash完成的功能統(tǒng)一到HTML標簽里,由瀏覽器負責解釋執(zhí)行。2. 服務器端技術 與客戶端技術從靜態(tài)向動態(tài)的演進過程類似,Web服務端的開發(fā)技術也是由靜態(tài)向動態(tài)逐漸發(fā)展、完善起來的。2022/7/
32、2549 第一種真正使服務器能根據(jù)運行時的具體情況,動態(tài)生成HTML頁面的技術是CGI技術,即通用網(wǎng)關接口(Common Gateway Interface)。1994年,Rasmus Lerdorf發(fā)明了專用于Web服務端編程的開源PHP(Personal Home Page Tools)語言。PHP語言將HTML代碼和PHP指令合成為完整的服務端動態(tài)頁面,Web應用的開發(fā)者可以用一種更加簡便、快捷的方式實現(xiàn)動態(tài)Web功能。1996年,Microsoft借鑒PHP的思想,在其Web服務器IIS 3.0中引入了ASP技術。ASP使用的腳本語言是VBScript和JavaScript。1997年
33、,Servlet技術問世,1998年,JSP技術誕生。Servlet和JSP的組合以及Java Bean技術讓Java開發(fā)者同時擁有了類似CGI程序的業(yè)務處理功能和類似PHP的HTML嵌入功能,此外,JVM技術的發(fā)展與優(yōu)化也大大提高了Servlet和JSP的執(zhí)行效率。 2022/7/25501.4.1 Servlet技術 Servlet是CGI的替代品,也是Java進軍Web開發(fā)領域的第一款技術,Servlet與CGI相比,具有有效性、穩(wěn)定性、可移植性、健壯性以及可擴充性。 Servlet規(guī)范規(guī)定了Servlet對象和Servlet容器的協(xié)作方式,以及Servlet體系中相關的API; Ser
34、vlet接口規(guī)定了一個Servlet應該具有的行為,開發(fā)人員開發(fā)出符合Servlet接口的Java對象,并將其部署到Servlet容器中就可以使Servlet容器具有該Servlet實現(xiàn)的功能。Tomcat是具有普通Web服務器功能的最典型的Servlet容器,通過配置Tomcat的配置文件可以將Servlet部署到Tomcat中。 2022/7/25511.4.2 JSP技術 JSP的全稱是JavaServer Pages,它是基于Java的動態(tài)頁面技術,它可用于創(chuàng)建跨平臺和跨Web服務器的動態(tài)網(wǎng)頁。JSP也需要運行于JSP容器中, 但JSP以單獨的文件形式存在,JSP文件的內(nèi)容非常類似于一
35、個HTML文件,它在HTML文件中通過特殊的標簽將Java代碼添加到其中。 JSP文件直接存在于Web應用的Web目錄中,客戶端的請求URL直接指向該JSP文件,當JSP容器發(fā)現(xiàn)客戶端正在請求某個JSP文件時它就對該JSP文件進行解析,運行其中的Java代碼,并將執(zhí)行完后生成的HTML內(nèi)容返回給客戶端。 2022/7/2552 JSP文件也能處理動態(tài)內(nèi)容,而且在向客戶反饋HTML文檔時非常方便;但是由于JSP把Java代碼和HTML內(nèi)容放在同一個文件中,假如其中用于內(nèi)容處理的Java代碼過多的話,JSP文件的內(nèi)容就會過于龐雜,格式也會比較混亂,不利于開發(fā)和維護。2022/7/25531.4.3
36、 JavaBean技術 Sun公司對JavaBean的定義為:可以重復利用的軟件組件,它在遵循JavaBean技術規(guī)范的基礎上提供特定的功能,通過JavaBean可以無限擴充Java程序的功能,組合成更大規(guī)模的應用系統(tǒng)。 JavaBean大體可以分為兩類,第一類是可視化JavaBean,第二類是非可視化JavaBean。可視化JavaBean,可以是簡單的GUI元素,如按鈕或文本框,也可以是復雜的,如報表組件。非可視化的JavaBean,就是沒有GUI界面的JavaBean。 2022/7/2554 在JSP程序中,很多的代碼段是可以重復使用的,比如對數(shù)據(jù)庫的操作、用戶的有效性檢查及某些項特定
37、功能的實現(xiàn)等。因此常用JavaBean封裝事務邏輯、數(shù)據(jù)庫操作等,實現(xiàn)業(yè)務邏輯和前臺程序(如JSP文件)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。2022/7/25551.4.4 JDBC技術 Java提供了一種JDBC(Java DataBase Connectivity)技術,該技術是一種可用于執(zhí)行SQL語句的JavaAPI,由一些Java語言編寫的類和界面組成。制定了統(tǒng)一的訪問各類關系數(shù)據(jù)庫的標準接口,為各個數(shù)據(jù)庫廠商提供了標準接口的實現(xiàn)。通過使用JDBC技術,開發(fā)人員可以用純Java語言和標準的SQL語句編寫完整的數(shù)據(jù)庫應用程序,并且真正的實現(xiàn)了軟件的跨平臺性。 2022/7/2556
38、1.5 Java Web開發(fā)環(huá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是一個開放源代碼的、基于 Java 開發(fā)的可擴展插件式集成開發(fā)環(huán)境 。Eclipse本身只是一個框架和一組服務,通過插件組件來構(gòu)建開發(fā)環(huán)境,同時它還能接受由Java開發(fā)者自己編寫的開放源代碼插件 。Eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術。Eclipse框架的這種靈活性來源于其擴展點。它們是在XML中定義的已知接口,并充當插件的耦合點。擴展點的范圍包括從
39、用在常規(guī)表述過濾器中的簡單字符串,到一個Java類的描述。任何Eclipse插件定義的擴展點都能夠被其他插件使用,反之,任何Eclipse插件也可以遵從其他插件定義的擴展點。 2022/7/25572. NetBeans開發(fā)環(huán)境 NetBeans是一個免費的開源的集成開發(fā)環(huán)境。 NetBeans集成開發(fā)環(huán)境具有如下特性:易用的Java GUI Builder。通過在畫布上擺放和調(diào)整組件的對齊方式來創(chuàng)建看起來非常專業(yè)的圖形用戶界面??梢暬囊苿娱_發(fā)。能夠創(chuàng)建、測試和調(diào)試運行在移動電話、置頂盒以及PDA上的圖形用戶界面應用。Ruby和Rails支持。具有功能強大的Ruby編輯器、調(diào)試器和對Rail
40、s的完全支持,包括JRuby運行時支持。2022/7/2558可視化的Web和JavaEE開發(fā)??梢钥梢暬厥褂肁jax、CSS和JavaScript構(gòu)建Web應用,支持JSF、Struts、Spring和Hibernate等框架。包括用于EJB開發(fā)的完整工具集。可視化UML建模。能夠根據(jù)模型生成代碼。C/C+開發(fā)。完整的C/C+編輯器、調(diào)試器和項目模板,并支持多項目配置。 3. JBuilder JBuilder也采用了Eclipse平臺,變成了Eclipse之上的一個大插件 ,JBuilder具有如下特點 :2022/7/2559(1) Jbuilder支持最新的Java技術,包括Appl
41、ets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的應用。 (2) 用戶可以自動地生成基于后端數(shù)據(jù)庫表的EJB Java類。同時,Jbuilder還簡化了EJB的自動部署功能。此外它支持CORBA,相應的向?qū)С绦蛴兄谟脩羧娴毓芾鞩DL(分布應用程序所必需的接口定義語言Interface Definition Language)和控制遠程對象。 (3)Jbuilder支持各種應用服務器。Jbuilder與Inprise Application Server緊密集成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0
42、,可以快速開發(fā)J2EE的電子商務應用。 2022/7/2560(4) Jbuilder能用Servlet和JSP開發(fā)和調(diào)試動態(tài)Web 應用。 (5) 利用Jbuilder可創(chuàng)建純Java2應用。由于Jbuilder是用純Java語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標準。 (6) Jbuilder擁有專業(yè)化的圖形調(diào)試介面,支持遠程調(diào)試和多線程調(diào)試,調(diào)試器支持各種JDK版本,包括J2ME/J2SE/J2EE。2022/7/25611.5.2 運行環(huán)境一個Web應用的運行首先需要Web服務器,其次是應用服務器。Web服務器的主要功能是接受用戶的Web請求后提交給應用服務器,然后把應用服務器執(zhí)行的結(jié)果返回給用戶。應用服務器的作用是根據(jù)用戶的請求選擇合適的文件加載執(zhí)行,然后把執(zhí)行的結(jié)果返回給Web服務器。應用服務器的主要作用就是加載Java Web組件,并執(zhí)行Java Web組件。但是,Java Web組件的執(zhí)行離不開Java虛擬機。因
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度電商直播內(nèi)容制作合同4篇
- 2025年度出租車司機休息休假聘用合同4篇
- 二零二五年度存量房交易合同與物業(yè)管理交接服務協(xié)議4篇
- 二零二五年度美容院美容產(chǎn)品綠色生產(chǎn)合同3篇
- 2025年繆含離婚協(xié)議書及離婚后財產(chǎn)監(jiān)管協(xié)議4篇
- 2025版農(nóng)藥品牌授權(quán)與推廣服務合同書樣書4篇
- 二零二五年度大棚農(nóng)業(yè)科技成果轉(zhuǎn)化與應用合同6篇
- 2025年度船舶交易傭金代理合同4篇
- 二零二四年度智能家居系統(tǒng)定制三方協(xié)議書04、213篇
- 二零二五年度畜牧飼養(yǎng)飼料供應保障合同4篇
- 2024-2025學年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學年北師大版數(shù)學七年級下冊
- 春節(jié)聯(lián)歡晚會節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂推廣代運營合同樣本
- 教育促進會會長總結(jié)發(fā)言稿
- 北師大版(2024新版)七年級上冊數(shù)學第四章《基本平面圖形》測試卷(含答案解析)
- 心理調(diào)適教案調(diào)整心態(tài)積極應對挑戰(zhàn)
- 噴漆外包服務合同范本
- JT-T-390-1999突起路標行業(yè)標準
評論
0/150
提交評論