2010-03-28 76 views
6

我有一些使用Java爲Java項目編寫Web應用程序的經驗。我的第一個項目使用Servlets和我的第二個,Stripes框架。如何學習高級Java Web開發概念

但是,我覺得我錯過了Java Web開發的更多圖景。我不太瞭解web.xml和context.xml文件。我不確定什麼構成了Java EE應用程序,而不是通用Java Web應用程序。我無法弄清楚bean是如何與普通的Java類(POJO?)不同的,以及它與Enterprise Java Bean(EJB)的區別。這些只是我能想到的前幾個問題,但還有更多。

什麼是瞭解Java Web應用程序如何從上而下運行而不是簡單地如何開發具有特定框架的應用程序的好方法? (有沒有關於這種事情的書?)最終,我想理解Java Web應用程序,以編寫我自己的框架。

更新:爲了清楚起見,我對學習如何使用特定框架(例如Spring或Java EE)沒有興趣。我正在尋找一個通用Java Web應用程序的內部解釋。

回答

2

探索Java世界和連接的最佳方式的所有點的是隻用框架之一,因爲所有使用web.xml中的context.xml和Java EE組件(所有能堅持POJO的實體Bean) 。正如你已經知道了Stripes框架是,我推薦這本書(這是短期的處理所有你命名的方面):

Stripes: ...and Java Web Development Is Fun Again, 由弗雷德裏克·達烏德, 務實程序員, ISBN:1934356212

更深入瞭解這些Java EE技術的更徹底方法是獲得通過這兩個Java認證考試所必需的所有知識:

Sun認證的Web組件開發人員(SCWCD)

Sun認證業務組​​件開發人員(SCBCD)

+0

有趣,謝謝。我剛剛在一家舊書店拿起那本17美元的書。我也有免費的學術機會參加這兩門考試的Sun培訓,所以我可以檢查一下。 – titaniumdecoy 2010-03-31 19:54:50

5

我推薦Bates和Sierra推出Head First Servlets和JSP。有些人並不在意這種異想天開的風格,但它是Java EE的堅實介紹。 EJB沒有被覆蓋,但是一本書不能做任何事情。

+0

我更感興趣的是比如何使用其中的一些可能存在的不同技術的概述。更具體地說,以及對由這些框架構建的基本Java Web應用程序(即WEB-INF,web.xml等)的理解。 – titaniumdecoy 2010-03-28 03:34:02

+0

那麼,我明確瞭解部署描述符(web.xml)和WEB-INF的方式。 HF Servelts和JSP可能就是你想要的。或不。 – 2010-03-28 20:27:55

2

查看this question的回答。

此外,我使用Java構建web應用程序,而不使用傳統的基於servlet的方法。我通常使用Restlet來構建RESTful Web應用程序,我使用嵌入式HTTP服務器作爲獨立Java應用程序運行。 This article詳細介紹了使用嵌入式HTTP服務器而不是構建傳統Java Web應用程序並將其部署到容器/應用程序服務器中的一些優點。如果您正在構建一個「常規」Web應用程序而不是RESTful應用程序(不是必需的,恕我直言),那麼請查看Play,這是一個尖端的高級MVC Web框架,允許以更少的禮儀進行快速開發。

祝你好運!

0

具有諷刺意味的是,你想知道關於Java Web開發的所有原因與你在處理它時遇到很多麻煩的原因是一樣的。爲什麼每個Java開發人員都想編寫一個Web框架?

儘管如此,Java Web開發的歷史非常悠久。從一開始,重量級和輕量級之間就存在爭鬥。這一切都是從EJB開始的,而且它們大部分都是吸引人的。所有這些都是struts的替代方案。那種吸也是。這一切都隨着Spring的出現而帶來了依賴注入的浪潮,然後JSF變得比以往更加複雜。最後,Rails出現了,並且圍繞着Java所提供的所有東西運行。目前的Java框架作品展示了上一代的一些傳統和戰鬥車,但它已經變得更好。通常情況下,配置較少,嘗試更精簡,依賴性和層次更少。

要直接回答您的問題,只需查看像tomcat這樣的servlet容器和Glassfish或JBoss等完整的Java EE應用服務器之間的區別。它基本上歸結爲是否要使用EJB。如果你打算編寫自己的框架,你不會。基本上,只要看看servlets/servlet容器是如何工作的。除此之外,請查看其他框架的源代碼。

+0

我不想編寫自己的Web框架,我只是想了解它們是如何編寫的。 – titaniumdecoy 2010-03-28 05:57:38

3

我不太瞭解web.xml和context.xml文件。

web.xml文件僅僅是其指示下每個濾波器/ servlet來加載和實例化和其上的url圖案那些應當被調用的應用程序服務器的配置文件。

context.xml只是另一個配置文件,它指示應用程序在每個web應用程序位於本地存儲系統的位置以及它應該偵聽哪個域/ URL上下文。

appserver在啓動時解析這兩個文件,並相應地採取相應的措施。

我不確定什麼是Java EE應用程序而不是通用Java Web應用程序。

目前還不清楚是什麼「Java EE應用程序」和「通用的Java Web應用程序」的自己定義。要回答這樣的問題(即使你自己),你需要查找和/或重新定義定義。但總的來說,Java EE應用程序有兩種:Web應用程序(通常部署在WAR的風格中)和企業應用程序(通常部署在EAR的風格中)。主要區別在於第二個涉及EJB,因此需要在支持EJB的應用程序上運行(例如Tomcat不)。

我無法弄清楚bean是如何與普通的Java類(POJO?)不同的,以及它與Enterprise Java Bean(EJB)有何不同。這些只是我能想到的前幾個問題,但還有更多。

這些只是根據相關課程的目的(和歷史)而被應用的術語。術語「POJO」是一個表示Javabean的(通常爲負的)術語,它只是一個值對象(完全沒有業務邏輯,只有getter/setter方法的純bean),通常是一個模型對象,它是「傳統」使用EJB/Hibernate的程序。一些人稱之爲VO(Value Object),另一些人稱之爲DTO(數據傳輸對象),另一些人則堅持使用「javabeans」。

什麼是學習Java Web應用程序如何從上而下運行而不是簡單地如何開發具有特定框架的應用程序的好方法? (有沒有關於這種事情的書?)最終,我想理解Java Web應用程序,以編寫我自己的框架。

Head First Servlets & JSP開始。閱讀Servlet API並嘗試自己實現一個。然而,HTTP的知識也是強制性的。閱讀/調試/播放/破解現有開源Servlet API實現的源代碼(例如Tomcat)。讀取/調試/播放/破解現有開源(MVC)框架的源代碼(例如JSF)。嘗試瞭解他們如何工作,然後嘗試做得更好。對於學習路徑(「我需要什麼技能?」)我在here之前發佈了類似的答案。

0

如果您試圖很好地掌握Java EE規範中的所有功能,以及您可能將哪些功能用於Web應用程序,我強烈建議您仔細閱讀Java EE Tutorial。您可以跳過深入的功能描述,因爲您主要想要了解每種技術的高級概述,功能以及它與其他所有功能的匹配情況。但是,請仔細閱讀一些將Web層,EJB和持久性結合在一起的示例。

0

獲取"Heads First Servlets and JSP" - 這是一個半怪異的書,但內容非常好,人們把它作爲Sun認證Web組件開發考試(SCWCD)的準備指南,SCJP(Sun認證Java程序員)考試是必備條件。

你應該認真考慮讓這兩個SCJP和SCWD,至少是因爲你強迫自己通過物質來獲得。他們不能保證讓你成爲比現在更好的程序員,但他們會讓你接觸到(通常)只能在工作場所使用的Java/Java EE材料。

我還使用了一些在線自學課程,webucator.com,並且我建議你檢查自己的SCJP 5.0Web Services課程(後來的相似,但是從Web組件開發不同的。)

有框架在那裏使Java EE web開發變得不那麼痛苦,但是你越瞭解它們的內涵,對它的理解就會越大(並且你將會更好地使用它或者替代它。)

另一本可能要檢查的書(也許你應該先檢查)是Downey's Web Development with Java: Using Hibernate, Jsp and Servlets。它現在已經絕版了,但是有可用的副本可供銷售。 Downey教授使用本書在佛羅里達國際大學開展Java EE課程。大學涵蓋了開發數據庫驅動的Web應用程序的開始和結束。 *

  • 即使最終使用OR映射器,您也應該對SQL和關係數據庫理論有所瞭解。這類知識與開發非平凡的Web應用程序並行不悖。