「怎麼才能成爲一個Java Web開發者?」對於這個問題,答案其實並不簡單。成爲一個Java Web開發人員包括不少方面。我從北京尚學堂畢業到如今遇到過很多的Java程序員,有的可能曾是優秀的前端開發人員,也可能之前是不錯的後端開發人員。所謂「前端」,通常指衆多瀏覽器端技術——HTML、CSS、Javascript,以及Java模板技術。後端開發人員有更堅實的Java、數據庫(SQL和NoSQL),消息傳遞(JMS/AQMP)和Web服務(SOAP/REST)技能。javascript
你應該也知道所謂的「全棧」Java開發人員。這是我的的技能集合。一個完整的全棧開發者應該一樣勝任前端開發和後端開發的工做。這多是難度係數最高的一條路了,由於所涉及得技術很是多樣。也許有一天,你前一秒還在jQuery調試,接下來就去性能調優Oracle數據庫查詢了。可是,成爲一個全棧Java開發人員是須要時間和經驗的。html
對於有抱負的開發人員,技術的前景會成爲壓倒一切的動力。可是技術也是在不斷變化發展中的。你會冒着學習的東西很快就會過期的風險嗎?前端
我建議新手開發人員能夠從基礎的學起;HTML,CSS和javascript。這些技術是web開發的核心。並且這些技術在某種意義上說也是通用的,不管你是Java web開發人員仍是Ruby Web開發人員都要用到。java
HTML——超文本標記語言。這是用來生成網頁的。你須要對HTML有一個深刻的瞭解。在萬維網初期,HTML習慣上是一個由網頁服務器向瀏覽器提供的文件。它對靜態內容很是有效。不會改變內容。可是,如今人們愈來愈傾向於動態的內容。因而,HTML再也不是靜態的文件,HTML開始按需生成。做爲一個Java web開發者,你得會編寫如何爲網頁瀏覽器生成HTML文件的代碼。你須要對HTML文檔的結構有一個深入的理解。程序員
CSS——層疊樣式表。這是用來顯示頁面樣式的。它控制字體、顏色和佈局。與HTML定義的是網頁的內容不一樣,CSS定義的是當在瀏覽器中呈現時網頁的外觀。例如,你能夠對桌面Web應用程序使用一套CSS規則,對移動應用程序使用另外一套不一樣的CSS規則。相同的HTML,當渲染在瀏覽器上時,就有了兩個徹底不一樣的外觀。web
Javascript——製做網頁上的東西。不要將Java與Javascript混淆。雖然它們有一些語法的類似性,但這是兩個徹底不一樣的編程語言。Javascript才能真正推進Web 2.0應用程序。經過使用Javascript,你能夠根據用戶的操做,動態地改變HTML/CSS,提供更有視覺感覺的網頁給用戶。數據庫
HTTP(超文本傳輸協議)——客戶端和Web服務器之間的通訊。有太多的web開發人員竟然對HTTP一無所知。HTTP絕對是你必學的關鍵技能。尤爲是當你要用AJAX工做的時候。你須要知道一個POST和一個GET之間的區別。你應該記住HTTP狀態碼200,301和404的含義——以及更多。做爲一個Java web開發人員,你的平常工做不可避免要與HTTP打交道。編程
Java——本文的問題就是如何成爲一個Java web開發人員。因此,你固然得知道Java編程語言。除了Java自己,你還應該熟悉Java Servlet API。有一些Java web框架,隱藏着JavaServlet API的用法。若是出現問題,那麼你須要知道幕後究竟發生了什麼事情。後端
JPA——Java持久性API——使用數據庫。JPA是Java傳統關係數據庫的標準。Hibernate是如今使用最普遍的JPA實現。做爲一個Java web開發人員,你確定要用到數據庫。你要從數據庫中獲得內容,以顯示在網頁上,或從用戶那裏接收內容存儲到數據庫中。因此,Java web開發人員須要知道如何使用JPA。瀏覽器
Java應用程序服務器——Java web應用程序的運行時容器。Tomcat是到目前爲止最流行的Java應用程序服務器。Web應用程序歸檔文件,又名WAR文件,有一個Java標準。這些被部署到應用程序服務器,如Tomcat,以此爲你的web應用程序提供運行環境。十年之前,還流行在應用程序和應用程序服務器之間應用更復雜的耦合。然而,如今的趨勢更支持應用程序和應用服務器之間的鬆散耦合。
請注意,到目前爲止,我尚未提到任何Java框架。我所描述的,都是你做爲一個Java web開發人員會用到的不一樣技術。客戶端技術徹底獨立於服務器端技術。Firefox不在意,服務器運行的是Java,Python仍是.NET。不過,新手開發人員彷佛經常遺忘這一點。
不使用Java框架的Java web開發也是能夠的。可是這樣一來,你須要額外寫不少代碼來處理本來框架能夠爲你辦到的事情。這就是爲何開發Java web應用程序時,你一般會想要使用某一個框架。
Spring框架是構建web應用程序一個很是棒的工具集合。雖然沒有精確的統計數據,但我看到有文章估算已有超過60%基於Java的web應用程序使用Spring。這其實也不奇怪。Spring Core有IoC容器和依賴注入。Spring MVC,是一款基於MVC的成熟又靈活的web框架。Spring Security是保護網站最好的工具。Spring Date有助於維護持久性。Spring還有其餘的項目,你能夠用來構建大範圍推廣的應用。
當涉及到總體框架時,真的找不到替代品代替Spring。哪怕存在着不少針對不一樣Spring項目的競爭技術。可是,沒有單一的解決方案,可以具有Spring框架系列項目的深度和廣度。在Spring入門在線教程上,我對主要的Spring框架項目作了一個很好的概述,並說明了如何使用它們來構建企業級應用程序。
Grails是創建在Spring之上的快速應用程序開發框架。它不但擁有Spring的全部內容,還借鑑了Groovy的生產力優點。我喜歡將Grails形容爲用Groovy包裝過的Spring。關鍵一點要記住的是,其背後依然是Spring。
Grails如今愈來愈受到企業的歡迎。Grails的優點之一就是其出色的社區支持。
Spring Roo是一個純Java框架,這彷佛和Grails的做用相同,不過它沒有Groovy。我不是Spring Roo的的粉絲,而且我最後一次使用Spring Roo也不是由於市場要求。Spring Roo尚未被普遍接受。
基於Scala的框架。雖然我尚未嘗試過Play。可是如今市場上面的反響不錯。因此有機會的話我會試一試。不過它目前尚未被企業中普遍採用。至少到如今爲止尚未。
JBoss Seam多是最接近Spring框架的替代品。JBoss Seam遵循JEE標準。JBoss Seam是一個很好的選擇,具備良好的支持而被企業所接受。不過,JBoss Seam常常由於在開發和性能方面比Spring慢而飽受詬病。可是有的批評對於JBoss Seam過於苛刻了。
成爲Java web開發人員是不可能一蹴而就的。沒有所謂的《21天自學成爲Java web開發者》的速成教材,也沒有捷徑。你須要學習和掌握不少不一樣的技術。而全部這些都須要時間來學習。
成爲Java web開發人員是一個很是有意義的事業。你剛入門的時候能夠只專一於前端技術,也能夠只專研後端技術。隨着之後開發的項目增多,你就能夠從這一技術領域轉移到另外一個技術領域。
我在北京尚學堂培訓學習的時候,老師講的好:做爲一個Java web開發人員入門的話,先專一於客戶端技術,由於客戶端技術獨立於服務器端技術。所以,等你入門了之後,你將會有更多的就業選擇。此外,雖然客戶端技術的薪酬一般比服務器端的低,但這會是一個良好的開端。你能夠快速得到技能以便於就業,而後再轉移焦點,拓寬技能集,以謀求更好的就業機會。
本博客更新會在第一時間推送到微信公衆號,歡迎你們關注。
更多猛料!歡迎掃描上方微信公衆號 ( 資料領取驗證消息:156)