了解最新公司動態(tài)及行業(yè)資訊
最近做了幾個Java Web項目,有公司的商業(yè)項目,也有自己做的好玩的小項目。我寫了一篇文章來記錄和總結收獲,并列出了項目全過程所需的技能和技能。知識點給沒有真正接觸過完整Java Web項目的同學一個比較完整的視角,提供了所謂的“大圖”,也方便同學們有針對性的學習更多。當然,這里使用的示例項目都是非常初級、簡單的項目。
首先,讓我們從網站的架構開始。通常,我們將網站分為前端和后端。前端主要負責頁面的展示,后端是業(yè)務邏輯的實現。由于html5的興起,前端領域越來越火,前端技術發(fā)展極其迅速。今天就不過多介紹了,因為現在的互聯網公司,前端工程師和Java工程師是兩個完全不同的技術崗位。所以我們還是從Java的角度來看一個項目。在前端還沒有那么流行的前幾年,或者在經典的 Java Web 開發(fā)模型中,我們使用 Jsp 技術作為表示層的實現,也就是所謂的前端。當然,只知道Jsp是不夠的。還需要了解一些基本的前端技術,如html、css、js、ajax。jsp技術起到外包裝的作用。后端呢?后端由一些 Java 代碼和實現業(yè)務邏輯的數據庫組成。說起來,可以啟動Web開發(fā)中經典的MVC模式,Model-View-。View,指表示層,Model是用來承載數據的抽象結構,是View和Model之間的橋梁。View存在于前端代碼中,Model存在于后端代碼中。在后端代碼中,為了保證代碼的整潔和可讀性,一般采用分層的方式,分為,,dao , 數據層或持久層(直接與數據庫打交道)自上而下。有時,為了達到解耦的目的,會在上述基礎層中間增加一個相應的接口層,將接口與實現分離。在更大的網站中服務器運維技術,會出現更復雜的架構。比如在dao層和數據層之間有一個緩存層,或者當訪問壓力增加的時候,需要用到集群、負載均衡等先進技術,但是這里我們就不深入討論復雜的架構了。會出現更復雜的架構。比如在dao層和數據層之間有一個緩存層,或者當訪問壓力增加的時候,需要用到集群、負載均衡等先進技術,但是這里我們就不深入討論復雜的架構了。會出現更復雜的架構。比如在dao層和數據層之間有一個緩存層,或者當訪問壓力增加的時候,需要用到集群、負載均衡等先進技術,但是這里我們就不深入討論復雜的架構了。
所以我們在上面可以看到,一個web項目的前端需要一個表現層,而后端有一個層、一個層、一個dao層、一個持久層。在表現層,除了剛才提到的html、css、js、ajax、jsp等基礎知識外,在實際開發(fā)中,我們還會使用很多框架技術,比如tiles,以及其他模板技術來簡化表示層的開發(fā)。在持久層,除了jdbc,還有其他的框架來提高開發(fā)效率。Java Web中最耀眼的就是,作為貫穿整個項目的框架,為項目開發(fā)帶來了依賴注入和面向方面的編程功能。除了這些,我們還需要熟練使用關系型數據庫,比如MySQL等。當然,
掌握了以上知識點,恭喜你,可以開始編寫Java Web項目了。但是只能寫不能部署,我們的項目還是不能用。那么到這里,我們的項目代碼已經寫好了,接下來我們該怎么做呢?當然,我們需要找到一個容器來運行我們的代碼。當然,這里的容器并不是指Java中的數據類型,而是指應用服務器。這里需要區(qū)分應用服務器和Web服務器。至于什么是web ,后面會介紹。(如果有同學對服務器的概念不是很清楚,可以先看下一段,再回過頭來。)目前市場上比較流行的應用服務器主要有Jetty、JBoss等。很多人會問我們?yōu)槭裁葱枰獞梅掌鳎款櫭剂x,應用服務器就是用來運行我們的應用代碼的。這里需要特別提一下的是,Java Web使用了像Jsp這樣的動態(tài)Web技術,這些技術的代碼必須運行在應用服務器中。所以在我們寫好應用代碼之后,我們需要將我們的應用部署到應用服務器上。應用部署后,用戶如何訪問?直接訪問應用服務器?此時,需要一個 Web 服務器。在 上,最強大的應用層協議是 http 協議。人們通過http協議訪問網站,而web服務器是支持http協議的服務器,所以稱為http服務器。Web 服務器接收到 http 請求,然后將請求轉發(fā)給應用程序服務器。有人會問用戶直接訪問應用服務器不好嗎?為什么先給web服務器再給應用服務器?在功能實現方面,是可以的。許多應用程序服務器,例如 Web 服務器,可以直接訪問。但是在實際生產環(huán)境中,由于負載均衡、cdn加速等原因,我們還是需要在應用服務器前面增加一個web服務器來提高訪問效率。常用的服務器是 Nginx。許多應用程序服務器,例如 Web 服務器,可以直接訪問。但是在實際生產環(huán)境中,由于負載均衡、cdn加速等原因,我們還是需要在應用服務器前面增加一個web服務器來提高訪問效率。常用的服務器是 Nginx。許多應用程序服務器,例如 Web 服務器,可以直接訪問。但是在實際生產環(huán)境中,由于負載均衡、cdn加速等原因,我們還是需要在應用服務器前面增加一個web服務器來提高訪問效率。常用的服務器是 Nginx。
我之前一直在談論這臺服務器和那臺服務器。我想知道我的同學是否感到困惑。其實在真正進入計算機專業(yè)領域之前,我們應該已經聽說過服務器這個概念。比如我們以前玩游戲,感覺卡住的時候,大家時不時就用服務器這個詞。但是我真正了解和學習了服務器之后才學習服務器運維技術,jetty。那么服務器究竟是什么?服務器的概念其實很簡單。它是一臺計算機。它和我們日常使用的電腦有什么區(qū)別?首先,它一般沒有顯示器,它只有一個主機。其次,它的操作系統(tǒng)不同于我們常用的Mac OS。更多的 *nix 系統(tǒng)。第三,它運行一些服務器端軟件。比如我們上面提到的Jetty、Nginx,實際上是服務器軟件,但是主機運行這些軟件,所以有時人們會混淆名稱。所以所謂的數據庫服務器,眾所周知,其實就是運行數據庫的主機。說到服務器,我們需要掌握的關鍵知識就是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上。現在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。但是主機運行這些軟件,所以有時人們會混淆名稱。所以所謂的數據庫服務器,眾所周知,其實就是運行數據庫的主機。說到服務器,我們需要掌握的關鍵知識就是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上。現在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。但是主機運行這些軟件,所以有時人們會混淆名稱。所以所謂的數據庫服務器,眾所周知,其實就是運行數據庫的主機。說到服務器,我們需要掌握的關鍵知識就是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上。現在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。所以所謂的數據庫服務器,眾所周知,其實就是運行數據庫的主機。說到服務器,我們需要掌握的關鍵知識就是服務器操作系統(tǒng),也就是*nix系統(tǒng),比如,等等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上?,F在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。所以所謂的數據庫服務器,眾所周知,其實就是運行數據庫的主機。說到服務器,我們需要掌握的關鍵知識就是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上。現在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。我們需要掌握的關鍵知識是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上?,F在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。我們需要掌握的關鍵知識是服務器操作系統(tǒng),也就是*nix系統(tǒng),如.net等。話雖如此,其實一個簡單完整的Java Web項目也差不多。讓我們簡單回顧一下,首先,我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上?,F在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上?,F在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。我們需要使用各種框架和開發(fā)技術來編寫應用程序代碼。接下來,我們需要一臺安裝了*nix系統(tǒng)的主機,在上面安裝web服務器軟件和應用服務器軟件,然后將我們的應用代碼部署到應用服務器上?,F在我們只需要獲取主機的 IP 地址就可以遠程訪問應用程序了。
知識點列表:
發(fā)展:
1. 視圖層技術 - HTML, CSS, JS, AJAX, Tiles,,
2. 持久層技術—,
3. ,MVC
4. 項目構建工具 Maven
5. 記錄 Log4j
6. 版本控制 Git
數據庫技術:
1. SQL 語句
2. 參數調優(yōu)
操作系統(tǒng):
1. 精通Linux系統(tǒng)、原理、Shell命令
服務器技術:
1. 熟練使用和理解某應用服務器技術原理()
2. 熟練使用和理解Web服務器技術(Nginx)的原理
額外的:
緩存技術:
1. 精通使用和理解一種緩存技術(Redis,,)
非關系數據庫
2. 熟練使用和理解非關系型數據庫()
中間件技術:
1. JMS: 和卡夫卡
2. RPC:Dubbo
設計模式:
1. 了解并能夠使用幾種主要的設計模式
互聯網:
1. 精通使用和理解一種Web開發(fā)技術(Netty)