Java Web應用開發中的一些概念

來源:互聯網
上載者:User

【51CTO獨家特稿】概念一直是學習電腦軟體開發中經常遇到的問題,也是軟體行業最喜歡創造的東西。很多時候,學習電腦軟體開發遇到困難都是因為對某些概念的不理解,而不是因為技術本身有多麼複雜。Java Web作為Java EE技術體系的一部分,應該是目前所有Web開發技術中最複雜的一種,很多初學者,或者是從ASP、PHP轉移過來的開發人員都會遇到概念方面的困難。

其實很多概念都是非產簡單的,只是因為廠家為了宣傳需要,將概念複雜化、學術化,導致學習者覺得這些概念非常深奧,難以理解。在這裡,我們首先去澄清Java Web開發中幾個常用的基本概念。當然理解這些概念的前提是需要你具備一定的電腦系統、物件導向等方面基礎知識。

1、Web容器

所有的程式運行都需要有一個必要的運行環境。這個環境可以是軟體,也可以是硬體,或者是軟體和硬體的結合。比如說Windows作業系統需要運行在硬體基礎上;Office軟體需要運行在作業系統上。並且程式與運行環境之間會有一定的資料交換,比如作業系統會將運行指令傳遞給硬體,硬體也會將指令運行結果傳遞給作業系統。Java Web程式也需要一個運行環境才能夠執行。這種運行Java Web程式的環境被稱為Web容器,Java Web程式與Web容器之間存在資料互動。目前主要存在兩種類型的Java Web容器:一種是獨立的Java
Web容器,在這種容器裡面只能運行Web程式,這種容器一般也叫做Web伺服器,如Tomcat等;另一種是與其他Java EE容器混合在一起的Web容器,Web容器負責運行Web程式,其他容器負責運行EJB等程式,如WebLogic等。

當使用者通過瀏覽器等Web用戶端軟體向伺服器發出一個請求之後,首先接收到這個請求的是Web容器,Web容器會將請求資訊封裝到一個HttpServletRequest類型的Java對象中,並將對象傳遞給Java Web程式。對於每個請求,Web容器還會建立一個HttpServletResponse類型對象,該對象的作用是用來儲存需要返回到瀏覽器等用戶端的內容。Java Web程式可以從HttpServletRequest提取使用者發出的請求資訊,進行適當的處理之後,將處理結果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse對象內容,並將解析結果以瀏覽器能夠識別的HTML等格式返回給瀏覽器等用戶端。在這個過程中,HttpServletRequest和HttpServletResponse就如同兩條渡船,負責在Web容器和Java
Web程式之間傳遞資訊。需要注意的是,這兩個對象僅存在於Web容器和Java Web程式當中,與瀏覽器沒有關係。是這個過程的:

2、Web應用

Web應用,可以認為是Web程式的另一個名稱。缺的的定義就是運行在Web容器當中的,能夠完成完整功能的應用程式。Java Web應用由一系列編譯之後的Java類、靜態圖片、靜態HTML檔案、設定檔等構成。通過Java Web應用可以就收使用者的輸入和請求,並對請求資訊進行加工處理、訪問資料庫、對使用者的請求給出回應。開發Java Web應用程式處理需要遵守Web應用的一些特殊規範要求以外,與開發其他類型的應用程式並沒有本質區別。目前Web應用主要有兩種類型:一種是以展示為目的的Web應用,這種應用會以HTML等標記文本或者瀏覽器所能識別的媒體格式最為請求返回內容,使用者可以通過瀏覽器等用戶端操作這類應用。另一類是以服務為目的的Web應用,這類應用不提供圖形操作介面,只提供方法調用結構,比如Web服務,該類應用一般只能被其他應用程式調用和訪問。

3、Web元件

Web元件是構成Web應用,能夠對來自瀏覽器等用戶端請求做出回應的基本單元。在Java Web應用中,所提供的Web元件有Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)等。另外還可以使用其他類型Web應用同樣使用的內容,比如HTML檔案、靜態圖片等。事實上Java Web只提供了一種Web元件元件,就是Servlet,JSP、JSF等都是基於Servlet的衍生技術。Servlet實質就是一個有特殊繼承關係要求的Java類,理解Servlet就基本上完全理解Java
Web技術了。

4、Web模組

在Java EE技術體系中,除了Java Web以外,還包括EJB等其他技術。每個技術體系會運行在各自的容器當中,不同的部分組合在一起構成完整的Java EE應用,每個部分根據自己的特點被稱為Java Web模組或者EJB模組。之所以把他們稱為模組,是因為希望Java EE應用不同部分能像積木一樣組合出更大、更複雜的應用出來,並且每個部分保證其獨立性。不同的模組都有自己特定的目錄結構要求。Java Web模組的目錄結構要求如下:

◆應用主目錄。改目錄是Java Web模組的最上層目錄,組成Web模組的所有Web元件以及設定檔等都包含在該目錄或者子目錄下。在改目錄下可以直接存放HTML檔案,圖片檔案等。

◆WEB-INF目錄。改目錄位於應用主目錄下,用來儲存那些不希望被瀏覽器等用戶端訪問的檔案,比如發布描述檔案、編譯之後的類檔案。因為這些檔案是由由Web容器進行解釋或者執行的。瀏覽器不可以直接看到這些檔案,只能看到這些檔案的執行結果。

◆web.xml檔案。該檔案位於WEB-INF目錄下,是Web應用的部署描述檔案,用來與定義Web應用運行相關的資訊,比如執行邏輯,Servlet等Web元件的訪問路徑等。改檔案的格式必須符合所使用的Servlet版本的規格要求。

◆classes目錄。該目錄位於WEB-INF目錄下,用來儲存編譯之後的Java類檔案,比如Servlet、輔助類、其他業務處理類等。

◆tags目錄。該目錄位於WEB-INF目錄下,用來儲存那些標籤庫的標籤描述檔案。

◆lib目錄。該目錄位於WEB-INF目錄下,用來儲存Web應用運行所依賴的,經過打包之後的Java類檔案。打包格式一般是.jar格式。

對於Java Web模組目錄中WEB-INF、web.xml、classes、tags、lib這些內容以外,使用者可以根據自己的需要在Web應用主目錄下建立其他目錄,比如可以為圖片、不同用途的HTML或者JSP單獨建立目錄;還可以為不用的Java類在classes下建立包目錄。如果在你的Web應用中沒有使用到Servlet、過濾器、監聽器等Java Web元件,可以沒有web.xml檔案;如果沒有使用到標籤,則可以沒有tags目錄。

Web模組的發布工作,可以直接以目錄的形式發布,也可以打包成jar格式檔案進行發布。因為用途和內容的特殊性,打包檔案的副檔名會採用.war而不是.jar。另外如果不是發布到獨立的Web伺服器上,而是發布到與其他Java EE一起使用的公司專屬應用程式伺服器上,還需要編寫一個與公司專屬應用程式伺服器相關的設定檔,這個檔案對於不同的公司專屬應用程式伺服器也不同,比如發布到glassfish伺服器上,需要編寫的檔案時sun-web.xml。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.