目錄
- 前言
- 1.1 Web和 JavaWeb的概念
- 1.2 JavaWeb技術棧
- 1.2.1 B/S架構
- 1.2.2 靜態資源
- 1.2.3 動態資源
- 1.2.4 數據庫
- 1.2.5 HTTP協議
- 1.2.6 Web服務器
- 1.3 JavaWeb 學習內容
前言
博主將用 CSDN 記錄 Java 后端開發學習之路上的經驗,并將自己整理的編程經驗和知識分享出來,希望能幫助到有需要的小伙伴。
博主也希望和一直在堅持努力學習的小伙伴們共勉!唯有努力鉆研,多思考勤動手,方能在編程道路上行至所向。
由于博主技術知識有限,博文中難免會有出錯的地方,還望各位大佬包涵并批評指正,博主會及時改正;如果本文對小伙伴你有幫助的話,求求給博主一個贊支持一下,可以一起交流,一起加油!!
本文是博主在學習B站尚硅谷、黑馬程序員等機構的JavaWeb網課時整理的學習筆記,在這里感謝各個機構的優質網課,如果有興趣的小伙伴也可以去看看。
1.1 Web和 JavaWeb的概念
Web是全球廣域網,也稱為萬維網(www),能夠通過瀏覽器訪問的網站。
在我們日常的生活中,經常會使用瀏覽器去訪問百度、京東等網站,這些網站統稱為Web網站。如下就是通過瀏覽器訪問百度官網的界面:
我們知道了什么是 Web,那么 JavaWeb又是什么呢?顧名思義, JavaWeb就是用 Java技術來解決相關Web互聯網領域問題的技術棧。
等學習完 JavaWeb之后,同學們就可以使用 Java語言開發我們上述所說的網站。而國內很多大型網站公司也是首選 Java語言來解決 Web互聯網相關的問題。那都有哪些公司的系統是使用 Java語言的呢?如下圖:
使用 Java語言開發互聯網系統是有很多技術棧需要大家了解,具體都有哪些呢?接著往下看。
1.2 JavaWeb技術棧
了解 JavaWeb技術棧之前,有一個很重要的概念要介紹:B/S架構。
1.2.1 B/S架構
什么是 B/S架構?
B/S 架構:Browser/Server
,瀏覽器/服務器 架構模式。它的特點是,瀏覽器只需要使用瀏覽器,而應用程序的邏輯和數據都存儲在服務器端。瀏覽器只需要請求服務器,獲取Web資源,然后由服務器將 Web資源發送給瀏覽器即可。大家可以通過下面這張圖來回想下我們平常的上網過程:
- 打開瀏覽器訪問百度首頁,輸入要搜索的內容,點擊回車或百度一下,就可以獲取和搜索相關的內容。
- 思考下搜索的內容并不在我們自己的電腦上,那么這些內容從何而來?答案很明顯,是從百度服務器中返回給我們的。
- 日常百度的小細節,逢年過節百度的 logo會自動更換不同的圖片。也就是說服務器的數據發生變化,瀏覽器不需做任務事情就能獲取最新的數據。
所以說B/S架構的好處:易于維護升級,即服務器端升級后,瀏覽器無需任何部署就可以使用到新版本的服務器。
了解了什么是B/S架構后,作為后臺開發工程師的我們將來主要關注的是服務器的開發和維護工作。在服務器將來會放很多資源,那都有哪些資源呢?接著往下看。
1.2.2 靜態資源
靜態資源主要包含HTML
、CSS
、JavaScript
、圖片等,主要負責頁面的展示。
- 我們之前已經學過前端網頁制作三劍客(
HTML+CSS+JavaScript
),使用這些技術我們就可以制作出效果比較豐富的網頁,用來展現給用戶。但是由于做出來的這些網頁內容都是靜態的,這就會導致所有用戶看到的網頁內容都是一模一樣的。 - 在日常上網的過程中,我們除了可以看到這些好看的頁面以外,還會碰到很多動態內容,比如我們常見的百度登錄頁面效果:
張三登錄以后在網頁的右上角看到的是 張三,而 李四登錄以后看到的則是李四。所以不同的用戶訪問相同的網頁看到的內容大多數是不一樣的,而要想實現這樣的效果,光靠靜態資源是無法實現的。
1.2.3 動態資源
動態資源主要包含 Servlet
、JSP
等,主要用來負責業務邏輯處理。(后面我們會仔細解釋Servlet
,大家此處不用急著去弄懂,把它當成一個可以處理業務的資源即可)
- 動態資源處理完業務邏輯后會把得到的結果交給靜態資源來進行展示,動態資源和靜態資源要結合一起使用。
- 動態資源雖然可以處理業務邏輯,但是當用戶來登錄百度的時候,就需要輸入用戶名和密碼。這個時候我們就又需要解決的一個問題是:用戶在注冊的時候填入的用戶名和密碼都是數據,而這些數據將會存儲在哪里呢?當我們需要的獲取這些數據的時候又應該從哪里取呢?這時候便出現了數據庫的概念。
1.2.4 數據庫
數據庫主要負責存儲數據。
整個網絡的訪問過程就如下圖所示:
- 瀏覽器發送一個請求到服務器,去請求所需要的相關資源;
- 資源分為動態資源和靜態資源,動態資源可以是使用 Java代碼按照
Servlet
和JSP
的規范編寫的內容; - Java代碼可以進行業務處理也可以從數據庫中讀取數據;
- 服務器拿到數據后,將數據交給
HTML
頁面進行展示,再結合CSS
和JavaScript
使展示效果更好,這時候有了效果的這些頁面就是靜態資源; - 接著服務器將靜態資源響應給瀏覽器;
- 瀏覽器將這些靜態資源進行解析;
- 解析完成后將靜態資源的效果展示在瀏覽器上,用戶就可以看到最終的頁面效果。
從上面的網絡訪問過程可以看出,在整個Web網絡的訪問過程中,會設計到很多技術,這些技術有已經學習過的,也有還未涉及到的內容,都有哪些還沒有涉及到呢?接著往下看。
1.2.5 HTTP協議
HTTP協議:主要定義通信規則。
瀏覽器發送請求給服務器,服務器響應數據給瀏覽器,這整個過程都需要遵守一定的規則,之前大家學習過TCP、UDP協議,這些都是規則,這里我們需要使用的是HTTP協議,這也是一種規則。
1.2.6 Web服務器
Web服務器:負責解析 HTTP 協議,解析請求數據,并發送響應數據。
- 瀏覽器按照
HTTP
協議發送請求和數據,后臺就需要一個Web服務器軟件來根據HTTP
協議解析和處理瀏覽器發送的請求和數據,然后把處理的結果再按照HTTP
協議發送回給瀏覽器。 - Web服務器軟件有很多,我們課程中將學習的是目前最為常用的Tomcat服務器。以后就簡稱為Tomcat或者服務器。
到這為止,關于 JavaWeb中用到的技術棧我們就介紹完了,這里面就只有HTTP
協議、Servlet
、JSP
以及Tomcat
這些知識是沒有學習過的,所以整個Web核心主要就是來學習這些技術。
這些技術都該如何來使用,我們后面會一個個進行詳細的講解。接下來我們來學習下 HTTP、Tomcat 和 Servlet。
1.3 JavaWeb 學習內容
整個JavaWeb核心知識,我們總共有以下的學習內容,
- 一:HTTP、Tomcat、Servlet
- 二:ServletRequest(請求)、ServletResponse(響應)
- 三:會話技術(Cookie、Session)
- 四:Filter(過濾器)、Listener(監聽器)
- 五:Ajax、Vue、ElementUI
- 六:綜合案例
(1) ServletRequest
是從瀏覽器向服務器發出的請求對象,
(2) ServletResponse
是從服務器響應給瀏覽器的結果對象,
(3) 會話技術是用來存儲瀏覽器和服務器交互所產生的數據,
(4) 過濾器是用來攔截瀏覽器的請求,
(5) 監聽器是用來監聽特定事件,
(6) Ajax、Vue、ElementUI
都屬于前端技術
這些技術都該如何來使用,我們后面會一個個進行詳細的講解。下一篇博文我們來學習下 HTTP