JAVAEE知識點

--這是一個神奇的文檔,據說看到的人都會得到好運。

                                                                                                                                                   --BY VAY

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


J2EE考點整理

一.(20分)

1 什麼是JavaEE組件?

答:(1)【教材】Java EE組件是一個獨立的功能軟件單元,它與其他相關的類別和文件被組裝到一個Java EE應用中,並且和其他組件進行通信。JavaEE組件使用java語言編寫,JavaEE組件和標準Java類的不同之處在於Java EE組件需要組裝到 JavaEE應用中,需要被驗證是否合乎格式並遵循JavaEE規範,並且會部署到生產環境,通過JavaEE服務器來運行和管理。

(2)【來自Java Web開發實戰經典】每一種Java EE組建實際上都代表着一種程序的開發,例如Application程序就是使用主方法(main())運行的一種組件。在JavaEE中提供了四種容器,每一種容器都運行着各自的組件,Web容器中運行着JSP和Servlet組件,EJB容器中運行着EJB組件。

 

2列出JavaEE服務器中所有的容器,並給出所有容器的定義?

答: JavaEE共提供了四種容器:Applet Container、Application Client Container、Web Container和EJB Container。

Ø  應用客戶端容器:管理應用客戶端組件的執行。應用客戶端和他們的容器運行於客戶端上。

Ø  小應用程序容器:管理小應用程序的執行。由共同運行在客戶端的Web瀏覽器和Java插件組成。

Ø  Web容器:爲JavaEE應用管理JSP頁面和servlet組件的執行。Web組件和它們的容器運行於Java EE服務器上。

Ø  企業JavaBeans(EJB)容器:爲Java EE應用管理企業Bean的執行。企業Bean和它們的容器運行於Java EE服務器上。

 

3描述所有的JavaEE組件?

答:(1)應用客戶端與小應用程序是運行在客戶端的組件。(2)Java Servlet、JavaServer Faces、JavaServer Pages(JSP)技術組件是運行在服務器上的Web組件。(3)企業JavaBean(EJB)組件是運行在服務器上的業務組件。

 

4什麼是JavaEE模塊?

答:JavaEE模塊(Java EE module)由一個或多個針對相同容器類型Java EE組件以及一個屬於該類型的組件部署描述符組成。例如,企業Bean模塊部署描述符聲明瞭針對企業Bean的事務屬性和安全性授權方式。

 

5 列出所有JavaEE模塊並給出它們的描述?(10分)

答:四種Java EE模塊如下:

Ø  EJB模塊包含針對企業Bean的類文件和一個EJB部署描述符。EJB模塊被打包成以.jar爲拓展名的JAR文件。

Ø  Web模塊包含Servlet類文件、JSP文件、支撐類文件、GIF和HTML文件以及一個Web應用部署描述符。Web文件被打包成以.war爲拓展名的JAR文件。

Ø  應用客戶端模塊包含類文件和一個應用客戶端部署描述符。應用客戶端模塊被打包成以.jar爲拓展名的JAR文件。

Ø  資源適配器模塊包含所有Java接口、類別、本地庫和其他文檔,以及資源適配器部署描述符。它們共同實現了針對某個特定EIS的Connector體系結構。資源適配器模塊被打包成以.rar爲拓展名的JRA文件。

 

6 請畫出JavaEE應用的EAR文件結構(Structure of Enterprise Archivefile)?

答:Ear文件是一種具有以.ear作爲拓展名的標準Java檔案(Java Archive,JAR)文件,EAR文件包含Java EE模塊和部署描述符。


 

 

二.(20分)

1 什麼是Servlet和JSP?

答:(1)Servlet是一種動態處理請求並構建響應的Java編程語言類,通過一種請求-響應編程模型來擴展應用宿主服務器的功能。

(2)JSP是一種基於文本的文檔,它包含兩種類型的文本:一種是靜態數據,它們可以用任何基於文本的格式(例如HTML、SVG、WML和XML)來表達;一種是JSP元素,它們用於構建動態內容。

 

2詳細說明Web客戶端與Web應用程序之間相互作用的步驟?

答:(1)客戶端發送一個HTTP請求到服務器。(2)實現了JavaServlet和JSP頁面技術的Web服務器將請求轉換爲HTTPServletRequest對象。(3)該對象被傳遞給Web組件,Web組件和JavaBean組件或數據庫進行交互來生成動態內容。(4)Web組件然後生成一個HTTPServletResponse,或者將請求轉交給另外的Web組件,最後Web組件會生成一個HTTPServletResponse對象。(6)Web服務器將該對象轉換爲一個HTTP相應並將它返回給客戶端。

 

3 什麼是Web組件?

答:JavaEEWeb組件或者是Java Servlet,或者是使用JSP技術和JavaServlet Faces技術創建的頁面。Web組件可以是JavaServlet、JSP頁面或者是Web服務端點。

 

4描述Web應用的生命週期?

答:創建、部署和執行Web應用的過程總結如下:(1)開發Web組件代碼(2)開發Web應用部署描述符(3)編譯Web應用組件和組件所引用的助手類(4)可選地將應用打包到某個可部署單元(5)將應用部署到某個Web容器(6)訪問引用Web應用的URL


5給出文檔根和上下文根(document root and context root)的定義?

  並敘述它們的區別?

答:web模塊的頂級目錄是應用程序的文檔根目錄,文檔根目錄是保存JSP頁面,客戶端類和檔案以及靜態Web資源的地方。上下文根標識了JAVA EE服務器中的某個Web應用。用戶在部署Web模塊時需指定上下文根。上下文根必須以正斜槓(/)開始,並以某個字符串作爲結束。

區別:文檔根是用來標識文檔資源,可以方便用戶管理文件。而上下文根是標識某個web應用,它可以告訴服務器去找那個應用。一個是管理硬盤中的文檔,一個管理網絡中應用,是兩個不同的概念。

 

6畫出Web模塊結構圖?

答:

 

三.(20分)

1什麼是過濾器?

答:過濾器(filter)是一種可以對請求或相應的報頭和主體內容進行轉換的對象。過濾器與Web組件不同,因爲過濾器通常本身並不負責創建響應。相反,過濾器提供可以“附加”到任何Web資源的功能。過濾器可以完成以下主要任務:

(1)查詢請求並進行相應的操作。

(2)阻塞請求-相應對,使其不能進一步被傳遞。

(3)修改其請求報頭和數據。用戶可以通過提供一個自定義的請求版本來完成任務。

(4)修改響應報頭和數據。用戶可以通過提供一個自定義的響應版本來完成該任務。

(5)和外部資源進行交互。

 

2 爲了處理http服務, 在Java源碼中需要擴展哪個servlet類?

答:HttpServlet類

 

 

3在Java源碼中怎樣定義過濾器?

答:這個我就不在這裏敲了,篇幅較大,可以在網上找找,實現什麼接口(Filter),覆寫了什麼方法(init()、destroy()、doFilter())等。老師要的應該就是這些了。

 

4詳細描述Servlet的生命週期?

答:Servlet的生命週期是有Servlet所部屬的容器來控制的。當某個請求被映射到Servlet,容器將執行以下步驟:

<1>.如果Servlet的某個實例不存在,則有:

a)加載Servlet類。

b)創建Servlet類的一個實例。

c)通過調用init方法來初始化Servlet實例。

<2>.調用service方法,傳遞請求和響應對象。

<3>.如果容器需要刪除Servlet,則它將通過調用Servlet的destroy方法來終結Servlet。

 

5 在Java源碼中怎樣驅動過濾器鏈(Filter chain)?

答:同上。

 

四. (20分)

1 什麼是統一表達式語言?

答:統一表達式語言(統一EL):代表JSP2.0提供的表達式語言和針對JavaServer Faces技術版本1.0所創建的表達式語言兩者之間的聯合。可以讓頁面編寫者使用簡單的表達式來執行動態讀取/寫入、調用任意的靜態和公共方法以及動態執行算術運算等任務。

 

2 列舉出JavaBean組件的屬性?

答:(1)簡單屬性(Simple):一個簡單屬性表示一個伴隨有一對get/set方法的變量。屬性名與和該屬性相關的get/set方法名對應。例如:如果有setX和getX方法,則暗指有一個名爲"X"的屬性。如果有一個方法名爲isX,則通常暗指"X"是一個布爾屬性(即X的值爲true或false)

(2)索引屬性(Indexed):一個Indexed屬性表示一個數組值。使用與該屬性對應的set/get方法可取得數組中的數值。該屬性也可一次設置或取得整個數組的值

(3) 捆綁屬性(Bound):一個Bound屬性是指當該種屬性的值發生變化時,要通知其它的對象。每次屬性值改變時,這種屬性就點火一個PropertyChange事件(在Java程序中,事件也是一個對象)。事件中封裝了屬性名、屬性的原值、屬性變化後的新值。這種事件是傳遞到其它的Bean,至於接收事件的Bean應做什麼動作由其自己定義。

(4)約束屬性(Constrained):一個JavaBean的constrained屬性,是指當這個屬性的值要發生變化時,與這個屬性已建立了某種連接的其它Java對象可否決屬性值的改變。constrained屬性的監聽者通過拋出PropertyVetoException來阻止該屬性值的改變。

 

3 給出立即求值和延遲求值表達式的定義和語法?

答:立即求值(immediate evaluation)意味着JSP引擎在第一次呈現頁面後便立即對表達式求值並返回結果。延遲求值(deferred evaluation)意味着使用表達式語言的技術可以在頁面生命週期內稍微晚點的適當時候採用它自己的方法來對表達式求值。立即求值的表達式使用${}語法;延遲求值的表達式則使用#{}語法。

 

4 描述JavaBean的設計習慣?

答:JavaBean組件設計約定負責管理類的屬性以及管理提供對這些屬性訪問的公共方法。JavaBean組件可以是:

ü  讀/寫、只讀、或者只寫

ü  簡單(Simple)特性,意味着它包含一個值,或者索引(indexed)特性,意味着它表示一個值數組。

特性並不一定必須由某個實例變量來實現,必須使用遵循以下規範的公共方法來訪問特性:

ü  對於每一種可讀的特性,bean必須具有以下形式的方法。

    PropertyClass getProperty(){ … }

ü  對於每一種可寫的特性,bean必須具有以下形式的方法。

    setProperty(PropertyClass pc){ … }

除了特性方法,JavaBean組件必須定義一個沒有參數的構造函數。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發佈了35 篇原創文章 · 獲贊 220 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章