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