自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java Web應用開發(fā)中的一些概念

原創(chuàng)
開發(fā) 后端
學習Java Web開發(fā)。很多人喜歡直接上手去寫程序,導致遇到問題的時候不知道原因和解決辦法。理論和概念的增強有利于提高學習速度和產生更好的解決方案。

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

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

1、Web容器

所有的程序運行都需要有一個必要的運行環(huán)境。這個環(huán)境可以是軟件,也可以是硬件,或者是軟件和硬件的結合。比如說Windows操作系統(tǒng)需要運行在硬件基礎上;Office軟件需要運行在操作系統(tǒng)上。并且程序與運行環(huán)境之間會有一定的數據交換,比如操作系統(tǒng)會將運行指令傳遞給硬件,硬件也會將指令運行結果傳遞給操作系統(tǒng)。Java Web程序也需要一個運行環(huán)境才能夠執(zhí)行。這種運行Java Web程序的環(huán)境被稱為Web容器,Java Web程序與Web容器之間存在數據交互。目前主要存在兩種類型的Java Web容器:一種是獨立的Java Web容器,在這種容器里面只能運行Web程序,這種容器一般也叫做Web服務器,如Tomcat等;另一種是與其他Java EE容器混合在一起的Web容器,Web容器負責運行Web程序,其他容器負責運行EJB等程序,如WebLogic等。

當用戶通過瀏覽器等Web客戶端軟件向服務器發(fā)出一個請求之后,首先接收到這個請求的是Web容器,Web容器會將請求信息封裝到一個HttpServletRequest類型的Java對象中,并將對象傳遞給Java Web程序。對于每個請求,Web容器還會創(chuàng)建一個HttpServletResponse類型對象,該對象的作用是用來保存需要返回到瀏覽器等客戶端的內容。Java Web程序可以從HttpServletRequest提取用戶發(fā)出的請求信息,進行適當的處理之后,將處理結果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse對象內容,并將解析結果以瀏覽器能夠識別的HTML等格式返回給瀏覽器等客戶端。在這個過程中,HttpServletRequest和HttpServletResponse就如同兩條渡船,負責在Web容器和Java Web程序之間傳遞信息。需要注意的是,這兩個對象僅存在于Web容器和Java Web程序當中,與瀏覽器沒有關系。下圖是這個過程的示意圖:

 

2、Web應用

Web應用,可以認為是Web程序的另一個名稱。缺的的定義就是運行在Web容器當中的,能夠完成完整功能的應用程序。Java Web應用由一系列編譯之后的Java類、靜態(tài)圖片、靜態(tài)HTML文件、配置文件等構成。通過Java Web應用可以就收用戶的輸入和請求,并對請求信息進行加工處理、訪問數據庫、對用戶的請求給出回應。開發(fā)Java Web應用程序處理需要遵守Web應用的一些特殊規(guī)范要求以外,與開發(fā)其他類型的應用程序并沒有本質區(qū)別。目前Web應用主要有兩種類型:一種是以展示為目的的Web應用,這種應用會以HTML等標記文本或者瀏覽器所能識別的媒體格式最為請求返回內容,用戶可以通過瀏覽器等客戶端操作這類應用。另一類是以服務為目的的Web應用,這類應用不提供圖形操作界面,只提供方法調用結構,比如Web服務,該類應用一般只能被其他應用程序調用和訪問。

3、Web元件

Web元件是構成Web應用,能夠對來自瀏覽器等客戶端請求做出回應的基本單元。在Java Web應用中,所提供的Web元件有Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)等。另外還可以使用其他類型Web應用同樣使用的內容,比如HTML文件、靜態(tài)圖片等。事實上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目錄。改目錄位于應用文檔根目錄下,用來保存那些不希望被瀏覽器等客戶端訪問的文件,比如發(fā)布描述文件、編譯之后的類文件。因為這些文件是由由Web容器進行解釋或者執(zhí)行的。瀏覽器不可以直接看到這些文件,只能看到這些文件的執(zhí)行結果。

◆web.xml文件。該文件位于WEB-INF目錄下,是Web應用的部署描述文件,用來與定義Web應用運行相關的信息,比如執(zhí)行邏輯,Servlet等Web元件的訪問路徑等。改文件的格式必須符合所使用的Servlet版本的規(guī)格要求。

◆classes目錄。該目錄位于WEB-INF目錄下,用來保存編譯之后的Java類文件,比如Servlet、輔助類、其他業(yè)務處理類等。

◆tags目錄。該目錄位于WEB-INF目錄下,用來保存那些標簽庫的標簽描述文件。

◆lib目錄。該目錄位于WEB-INF目錄下,用來保存Web應用運行所依賴的,經過打包之后的Java類文件。打包格式一般是.jar格式。

對于Java Web模塊目錄中WEB-INF、web.xml、classes、tags、lib這些內容以外,用戶可以根據自己的需要在Web應用文檔根目錄下創(chuàng)建其他目錄,比如可以為圖片、不同用途的HTML或者JSP單獨創(chuàng)建目錄;還可以為不用的Java類在classes下創(chuàng)建包目錄。如果在你的Web應用中沒有使用到Servlet、過濾器、監(jiān)聽器等Java Web元件,可以沒有web.xml文件;如果沒有使用到標簽,則可以沒有tags目錄。

Web模塊的發(fā)布工作,可以直接以目錄的形式發(fā)布,也可以打包成jar格式文件進行發(fā)布。因為用途和內容的特殊性,打包文件的擴展名會采用.war而不是.jar。另外如果不是發(fā)布到獨立的Web服務器上,而是發(fā)布到與其他Java EE一起使用的企業(yè)應用服務器上,還需要編寫一個與企業(yè)應用服務器相關的配置文件,這個文件對于不同的企業(yè)應用服務器也不同,比如發(fā)布到glassfish服務器上,需要編寫的文件時sun-web.xml。

 

 

【編輯推薦】

  1. Java WEB開發(fā)中的中文亂碼問題解決
  2. 淺析Java Web應用中的入侵檢測
  3. 現代Java Web開發(fā)框架分析
  4. 總結Java Web中幾個函數的作用
  5. 如何用Java實現Web服務器
責任編輯:佚名 來源: 51CTO
相關推薦

2011-04-14 09:15:21

Java Web應用開發(fā)

2011-09-13 09:41:59

Python

2009-06-18 14:54:52

Spring AOP

2022-02-28 15:05:17

ArkUIHarmonyOS鴻蒙

2012-04-16 09:54:05

移動web錯誤理念

2009-07-09 13:16:54

Java Swing開

2021-06-30 07:19:35

微服務業(yè)務MySQL

2022-09-09 08:51:42

ShellLinux

2011-12-14 16:43:54

javanio

2010-08-05 13:54:36

NFS協(xié)議

2011-03-15 17:46:43

2012-01-09 16:02:19

JavaJVM

2009-07-09 17:46:44

Java流程控制

2021-02-06 14:25:29

Java延遲加載代碼

2012-06-25 10:13:00

Java.NET

2021-06-08 06:13:16

React開發(fā)開發(fā)技術

2011-11-08 21:12:35

2010-03-16 09:15:20

2011-06-01 16:50:21

JAVA

2010-11-02 14:11:15

SilverlightWPF微軟開發(fā)
點贊
收藏

51CTO技術棧公眾號