我近被問到我的QQ頁面上,“我如何成為一個Java Web開發(fā)人員?”這個問題沒有簡單的答案。有許多方面成為Java Web開發(fā)人員。我遇到的Java開發(fā)人員是優(yōu)秀的前端開發(fā)人員,或者是好的后端開發(fā)人員!扒岸恕,我的意思是更多的瀏覽器端技術(shù) - HTML,CSS,Javascript,然后Java模板技術(shù),如Thymeleaf,Sitemesh或只是好的舊JSP。后端開發(fā)人員將具有更強(qiáng)的Java,數(shù)據(jù)庫(SQL和NoSQL),消息(JMS / AQMP)和Web服務(wù)(SOAP / REST)的技能。
你也有所謂的“全棧”Java開發(fā)人員。這是我的個人技能。全棧開發(fā)人員作為前端開發(fā)人員和后端開發(fā)人員同樣熟練。這可能是難的跟蹤,只是因為涉及的技術(shù)的多樣性。有一天,你可能會在JQuery中調(diào)試一些東西,接下來你需要對Oracle數(shù)據(jù)庫查詢進(jìn)行性能調(diào)優(yōu)。成為一個完整的Java開發(fā)人員需要時間和經(jīng)驗。
從哪里開始?
對于有抱負(fù)的開發(fā)者,技術(shù)景觀可能是壓倒性的。技術(shù)景觀也在不斷發(fā)展。你冒險學(xué)習(xí)一些即將過時的東西嗎?
客戶端技術(shù)
我對新開發(fā)人員的建議是從基礎(chǔ)開始。HTML,CSS和Javascript。這些技術(shù)是Web開發(fā)的核心。這些技術(shù)也是通用的,因為無論您是Java Web開發(fā)人員還是Ruby Web開發(fā)人員,都沒有關(guān)系。
HTML
HTML - 超文本標(biāo)記語言。 這是什么使一個網(wǎng)頁。你需要對HTML有一個堅實的理解;氐饺f維網(wǎng)的開始HTML傳統(tǒng)上是由web服務(wù)器為瀏覽器提供的文件。這對靜態(tài)內(nèi)容非常有用。東西,從來沒有改變。但這是越來越少。人們想要動態(tài)內(nèi)容。因此,HTML不再是靜態(tài)文件,HTML是按需生成的。作為Java Web Developer,您將要編寫代碼,為Web瀏覽器生成HTML文檔。您將需要對HTML文檔的結(jié)構(gòu)有充分的了解。
CSS
CSS - 級聯(lián)樣式表。 這是什么樣式的頁面。它控制字體,顏色,布局。雖然HTML定義了網(wǎng)頁的內(nèi)容,但是CSS定義了在瀏覽器中呈現(xiàn)的樣子。例如,您可以為桌面Web應(yīng)用程序使用一組CSS規(guī)則,為移動應(yīng)用程序使用一組不同的CSS規(guī)則。相同的HTML,但是兩個完全不同的外觀,當(dāng)由瀏覽器呈現(xiàn)時。
Javascript
JavaScript的 -不要在網(wǎng)頁上的東西。不要將JavaScript與Java混淆。雖然有一些語法相似之處,這兩種是完全不同的編程語言。Javascript是什么真正推動Web 2.0應(yīng)用程序。通過使用Javascript,您可以基于用戶操作動態(tài)更改HTML / CSS,給予網(wǎng)頁更多的應(yīng)用程序像用戶的感覺。
HTTP
超文本傳輸協(xié)議 -在客戶機(jī)和Web服務(wù)器之間的通信。我看到太多的web開發(fā)人員不懂HTTP。這是絕對至關(guān)重要的你要了解。特別是當(dāng)你開始使用AJAX。你需要知道POST和GET之間的區(qū)別。您應(yīng)該記住HTTP狀態(tài)代碼200,301和404的含義 - 等等。作為一個Java Web開發(fā)人員,您將每天使用HTTP。
服務(wù)器端技術(shù)
Java
Java的 -現(xiàn)在的問題是如何成為一個Java Web開發(fā)人員。所以,當(dāng)然你要需要知道Java編程language.In除了剛才Java本身,你應(yīng)該熟悉 的Java Servlet API。有一些Java Web框架,這掩蓋了Java Servlet API的使用。當(dāng)出現(xiàn)問題時,你需要知道封面下發(fā)生了什么。
JPA
JPA - Java持久性API -使用數(shù)據(jù)庫。JPA是在Java中使用傳統(tǒng)關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)。 Hibernate的 是當(dāng)今流行的JPA實現(xiàn)。作為Java Web開發(fā)人員,您將使用數(shù)據(jù)庫。您將從數(shù)據(jù)庫獲取內(nèi)容以顯示在網(wǎng)頁上,或從用戶接收內(nèi)容以存儲在數(shù)據(jù)庫中。Java Web開發(fā)人員需要知道如何使用JPA。
Java應(yīng)用程序服務(wù)器
Java應(yīng)用程序服務(wù)器 -用于Java Web應(yīng)用程序的運行時容器。 Tomcat的 是,到目前為止,流行的Java應(yīng)用服務(wù)器。有一個Web應(yīng)用程序歸檔文件的Java標(biāo)準(zhǔn) - 也就是WAR文件。這些部署到應(yīng)用程序服務(wù)器(如Tomcat)以為Web應(yīng)用程序提供運行時環(huán)境。十年前,趨勢是在應(yīng)用程序和應(yīng)用程序服務(wù)器之間使用更復(fù)雜的耦合。然而,當(dāng)前的趨勢有利于您的應(yīng)用程序和應(yīng)用程序服務(wù)器之間的松散耦合。
Java框架
注意到目前為止,我沒有提到任何關(guān)于過多的Java框架可供你使用?到目前為止,我已經(jīng)描述了您將用作Java Web開發(fā)人員的不同技術(shù)?蛻舳思夹g(shù)完全獨立于服務(wù)器端技術(shù)。Firefox不在乎服務(wù)器是否運行Java,Python或.NET。新開發(fā)人員經(jīng)常似乎忘記這一點。
可以在不使用其中一個Java框架的情況下進(jìn)行Java Web開發(fā)。如果你這樣做,你將會編寫很多代碼來處理框架會為你處理的事情。這就是為什么在開發(fā)Java Web應(yīng)用程序時,您通常會想要使用其中一個框架。
Spring框架
Spring框架是用于構(gòu)建大規(guī)模web應(yīng)用程序的杰出工具集合。精確的度量很難確定,但我已經(jīng)看到一些估計,說Spring在超過60%的基于Java的Web應(yīng)用程序中使用。這真的不是太令人驚訝。你有Spring Core的IoC容器和依賴注入。Spring MVC,一個成熟和靈活的基于MVC的Web框架。Spring Security,用于保護(hù)您的網(wǎng)站的佳類工具。Spring數(shù)據(jù)來幫助持久化。Spring有其他項目,將幫助您構(gòu)建大規(guī)模應(yīng)用程序。
當(dāng)涉及到一個整體框架時,Spring沒有其他選擇。有各種春天項目的競爭技術(shù)。但是沒有單一的解決方案具有Spring Framework系列項目的深度和廣度。在我 介紹了Spring網(wǎng)上的教程,我給你的主要的Spring框架項目很好的概述以及如何使用它們來構(gòu)建企業(yè)級應(yīng)用程序。
Grails
Grails是一個建立在Spring之上的快速應(yīng)用程序開發(fā)框架。你得到一切Spring,然后是Groovy的生產(chǎn)力優(yōu)勢。我喜歡用Groovy包裝器將Grails描述為Spring。過于簡單肯定,但重要的是要記住,春天還在封面。
Grails在企業(yè)中越來越多地使用。Grails的優(yōu)勢之一是其出色的社區(qū)支持。
春天roo
Spring Roo是一個純Java框架,似乎試圖做Grails做的,沒有Groovy。我不是Spring Roo的粉絲,上次我沒有檢查市場。Spring Roo沒有被廣泛采用。
玩
基于Scala的框架。我沒有機(jī)會嘗試Play。我聽到很多關(guān)于Play在市場上的好東西。我覺得Play是一個有趣的選擇。但它只是沒有廣泛應(yīng)用于企業(yè)。還沒有至少。玩得到一些鼓舞人心的牽引力。
JBoss Seam
JBoss Seam可能是一個替代Spring框架的接近的事情。JBoss Seam遵循JEE標(biāo)準(zhǔn)。JBoss Seam是一個很好的選擇,有很好的支持,并在企業(yè)中采用。JBoss Seam經(jīng)常被批評為在開發(fā)和性能方面比Spring慢。一些更為關(guān)鍵的 JBoss Seam的。
結(jié)論
成為一個Java Web開發(fā)人員不是你可以成為一夜之間。沒有一本書叫“在21天內(nèi)教自己的Java Web開發(fā)”。沒有捷徑成為Java Web開發(fā)人員。有很多不同的技術(shù),你需要學(xué)習(xí)和掌握。每一個都需要時間學(xué)習(xí)。
作為一個Java Web開發(fā)人員可以是一個非常有益的事業(yè)。您可以開始只關(guān)注前端,或只是后端技術(shù)。更大的Java開發(fā)商店將允許你專注于一個領(lǐng)域的技術(shù),另一個。
如果我今天開始作為一個Java Web開發(fā)者,我可能會首先關(guān)注客戶端技術(shù)?蛻舳思夹g(shù)與服務(wù)器端技術(shù)無關(guān)。因此,當(dāng)你開始你將有更多的就業(yè)選擇?蛻舳思夹g(shù)的補(bǔ)償通常低于服務(wù)器端,但它是一個開始的好地方。你可以快速獲得可以就業(yè)的技能,然后轉(zhuǎn)移焦點和擴(kuò)大你的技能,以后尋求更好的就業(yè)機(jī)會。