JavaEETutorial5概譯------Chapter 3

開始複習鞏固知識,拿了JavaEETutorial5來參考,1000多頁怪恐怖的,也難怪沒人翻譯了 :D 。簡要翻譯一下,以供參考。前兩章概覽介紹忽略了,從第三章Web應用開始。

[b]Getting Started with Web Applications[/b]

[img]/upload/attachment/79399/16c06b5f-16bc-3590-9415-71f8ac43f2c4.jpg[/img]

看上圖web應用的總體結構。web client向web server發送http請求,web server將http請求封裝成http對象,並將http對象分派給相應的web components,web components可以和java beans或者直接和database通訊。web components接受到http對象後,可以在轉發給其他web components或者組裝出一個http響應返回給web client。


[img]/upload/attachment/79401/5520f2be-a388-31eb-93a4-4d843b8ccf51.jpg[/img]

這是web components的結構,可以看出,servlet是整個web components的基礎。其他components都是對它的一個封裝。servlet就是個java類,jsp則是被設計爲類似html,xml的文本標記語言。

這些web components都運行在一個叫做web container的環境下。web container提供了類似請求分派,安全,併發和生命週期管理等服務。還有供component調用的api,比如命名服務,交互和email。

web應用的一些行爲,在安裝,部署期間,可以通過叫做web application deployment descriptor(簡稱DD) 的xml配置文件來配置。

[b]
Web Application Life Cycle[/b]

web應用生命週期如下:

1.編寫web component代碼

2.配置DD

3.編譯components及相關類

4.打包需要部署的內容

5.部署到web容器中

6.通過URL訪問web應用

[b]
Web Modules[/b]


[img]/upload/attachment/79418/2325f718-7878-3c55-ab98-d5a4990d448e.jpg[/img]

web componets以及image之類的靜態文件,統稱爲web資源。而最小的可發佈的web資源就是web模塊。除了components和資源,web模塊還能包括如下內容。
服務器端工具類(數據bean),客戶端類(applet)。
web模塊的結構如上,如果你的web模塊裏面沒有servlet,listener或filter,那麼web.xml就不是必須的。當你把web模塊發佈到應用服務器上的時候,需要sun-web.xml(還沒接觸過這個配置文件,有點寒~)文件。sun-web.xml文件包含web模塊的上下文根路徑(context root)信息,以及web資源到應用服務器資源之間的一個映射。

[b]Configuring Web Applications[/b]
這一節前半部分完全是一步步講netbeans操作的,沒有講關於DD的內容,忽略。
Declaring Resource References
這裏的Resource可能可平時理解的不一樣,這裏的Resource只的是像enterprise beans, data sources, or web services這類組件。可以使用註解來注入這些Resource。
但是有一些限制。首先,你只能對受管對象注入Resource,第二,你不能對JSP注入Resource,這是因爲,註解是在部署的時候被激活的,而JSP的編譯是在第一次被訪問的時候。
下面的組件可以被注入Resource.

[img]/upload/attachment/79533/645b930a-4cec-33ee-bc3e-4aaa2298ca08.jpg[/img]

Declaring a Reference to a Resource
@Resource註解是定義一個到Resource的引用的,對應DD裏面的resource-ref元素。@Resource可以註解類,也可以註解方法或屬性。作用是將Resource的引用注入給被註解的類,方法或屬性,並會映射到JNDI相應的Resource上。
下面的實例是給類注入一個DataSource。

@Resource javax.sql.DataSource catalogDS;
public getProductsByCategory() {
// get a connection and execute the query
Connection conn = catalogDS.getConnection();
..
}

如果要注入多個Resource,那麼如下書寫

@Resources ({
@Resource (name="myDB" type=java.sql.DataSource),
@Resource(name="myMQ" type=javax.jms.ConnectionFactory)
})


Declaring a Reference to a Web Service
@WebServiceRef註解一個到webservice的引用。
下面的例子使用@WebServiceRef注申明一個到webservice的引用,使用wsdlLocation元素確定了相應的wsdl文件的地址。

...
import javax.xml.ws.WebServiceRef;
...
public class ResponseServlet extends HTTPServlet {
@WebServiceRef(wsdlLocation=
"http://localhost:8080/helloservice/hello?wsdl")
static HelloService service;
發佈了28 篇原創文章 · 獲贊 3 · 訪問量 6108
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章