JavaWeb之 Web概述

目錄

  • 前言
  • 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網站。如下就是通過瀏覽器訪問百度官網的界面:

image-20240229141531124

我們知道了什么是 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資源發送給瀏覽器即可。大家可以通過下面這張圖來回想下我們平常的上網過程:

1627031933553

  • 打開瀏覽器訪問百度首頁,輸入要搜索的內容,點擊回車或百度一下,就可以獲取和搜索相關的內容。
  • 思考下搜索的內容并不在我們自己的電腦上,那么這些內容從何而來?答案很明顯,是從百度服務器中返回給我們的。
  • 日常百度的小細節,逢年過節百度的 logo會自動更換不同的圖片。也就是說服務器的數據發生變化,瀏覽器不需做任務事情就能獲取最新的數據。

所以說B/S架構的好處:易于維護升級,即服務器端升級后,瀏覽器無需任何部署就可以使用到新版本的服務器。

了解了什么是B/S架構后,作為后臺開發工程師的我們將來主要關注的是服務器的開發和維護工作。在服務器將來會放很多資源,那都有哪些資源呢?接著往下看。

1.2.2 靜態資源

靜態資源主要包含HTMLCSSJavaScript、圖片等,主要負責頁面的展示。

  • 我們之前已經學過前端網頁制作三劍客HTML+CSS+JavaScript),使用這些技術我們就可以制作出效果比較豐富的網頁,用來展現給用戶。但是由于做出來的這些網頁內容都是靜態的,這就會導致所有用戶看到的網頁內容都是一模一樣的。
  • 在日常上網的過程中,我們除了可以看到這些好看的頁面以外,還會碰到很多動態內容,比如我們常見的百度登錄頁面效果:

1627037814180

張三登錄以后在網頁的右上角看到的是 張三,而 李四登錄以后看到的則是李四。所以不同的用戶訪問相同的網頁看到的內容大多數是不一樣的,而要想實現這樣的效果,光靠靜態資源是無法實現的。

1.2.3 動態資源

動態資源主要包含 ServletJSP等,主要用來負責業務邏輯處理。(后面我們會仔細解釋Servlet,大家此處不用急著去弄懂,把它當成一個可以處理業務的資源即可)

  • 動態資源處理完業務邏輯后會把得到的結果交給靜態資源來進行展示,動態資源和靜態資源要結合一起使用。
  • 動態資源雖然可以處理業務邏輯,但是當用戶來登錄百度的時候,就需要輸入用戶名和密碼。這個時候我們就又需要解決的一個問題是:用戶在注冊的時候填入的用戶名和密碼都是數據,而這些數據將會存儲在哪里呢?當我們需要的獲取這些數據的時候又應該從哪里取呢?這時候便出現了數據庫的概念。

1.2.4 數據庫

數據庫主要負責存儲數據。

整個網絡的訪問過程就如下圖所示:

1627039320220

  1. 瀏覽器發送一個請求到服務器,去請求所需要的相關資源;
  2. 資源分為動態資源靜態資源,動態資源可以是使用 Java代碼按照ServletJSP的規范編寫的內容;
  3. Java代碼可以進行業務處理也可以從數據庫中讀取數據;
  4. 服務器拿到數據后,將數據交給HTML頁面進行展示,再結合CSSJavaScript使展示效果更好,這時候有了效果的這些頁面就是靜態資源
  5. 接著服務器將靜態資源響應給瀏覽器;
  6. 瀏覽器將這些靜態資源進行解析;
  7. 解析完成后將靜態資源的效果展示在瀏覽器上,用戶就可以看到最終的頁面效果。

從上面的網絡訪問過程可以看出,在整個Web網絡的訪問過程中,會設計到很多技術,這些技術有已經學習過的,也有還未涉及到的內容,都有哪些還沒有涉及到呢?接著往下看。

1.2.5 HTTP協議

HTTP協議:主要定義通信規則

瀏覽器發送請求給服務器,服務器響應數據給瀏覽器,這整個過程都需要遵守一定的規則,之前大家學習過TCP、UDP協議,這些都是規則,這里我們需要使用的是HTTP協議,這也是一種規則。

1.2.6 Web服務器

Web服務器:負責解析 HTTP 協議,解析請求數據,并發送響應數據。

  • 瀏覽器按照HTTP協議發送請求和數據,后臺就需要一個Web服務器軟件來根據HTTP協議解析和處理瀏覽器發送的請求和數據,然后把處理的結果再按照HTTP協議發送回給瀏覽器。
  • Web服務器軟件有很多,我們課程中將學習的是目前最為常用的Tomcat服務器。以后就簡稱為Tomcat或者服務器

到這為止,關于 JavaWeb中用到的技術棧我們就介紹完了,這里面就只有HTTP協議、ServletJSP以及Tomcat這些知識是沒有學習過的,所以整個Web核心主要就是來學習這些技術。

這些技術都該如何來使用,我們后面會一個個進行詳細的講解。接下來我們來學習下 HTTP、Tomcat 和 Servlet。

1.3 JavaWeb 學習內容

1627043194238

整個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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712109.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712109.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712109.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Web自動化測試——代碼篇十二】自動化測試模型——數據驅動測試和關鍵字驅動測試

🔥 交流討論:歡迎加入我們一起學習! 🔥 資源分享:耗時200小時精選的「軟件測試」資料包 🔥 教程推薦:火遍全網的《軟件測試》教程 📢歡迎點贊 👍 收藏 ?留言 &#x1…

「優選算法刷題」:刪除字符串中的所有相鄰重復項

一、題目 給出由小寫字母組成的字符串 S,重復項刪除操作會選擇兩個相鄰且相同的字母,并刪除它們。 在 S 上反復執行重復項刪除操作,直到無法繼續刪除。 在完成所有重復項刪除操作后返回最終的字符串。答案保證唯一。 示例: 輸…

理解C#里面的集合有哪些?怎么用,什么是安全集合?

介紹 在C#中,集合是一種用于存儲和操作多個元素的數據結構。它們提供了各種操作,如添加、刪除、查找等,以及遍歷集合中的元素。集合通常根據其實現方式和行為特征進行分類。 集合繼承IEnumerable 在C#中,幾乎所有的集合類型都實現…

簡歷中自我評價,是否應該刪掉?

你好,我是田哥 年后,不少朋友已經開始著手準備面試了,準備面試的第一個問題就是:簡歷。 寫簡歷是需要一些技巧的,你的簡歷是要給面試官看,得多留點心。 很多簡歷上都會寫自我評價/個人優勢/個人總結等&…

2024有哪些免費的mac蘋果電腦深度清理工具?CleanMyMac X

蘋果電腦用戶們,你們是否經常感到你們的Mac變得不再像剛拆封時那樣迅速、流暢?可能是時候對你的蘋果電腦進行一次深度清理了。在這個時刻,擁有一些高效的深度清理工具就顯得尤為重要。今天,我將介紹幾款優秀的蘋果電腦深度清理工具…

一個Web3項目的收官之作,必然是友好的用戶界面(Web3項目三實戰之四)

正如標題所述,一個對用戶體驗友好的應用,總是會贏得用戶大加贊賞,這是毋庸置疑的。 甭管是web2,亦或是已悄然而至的Web3,能有一個外觀優美、用戶體驗效果佳的的界面,那么,這個應用無疑是個成功的案例。 誠然,Web3項目雖然核心是智能合約攥寫,但用戶界面也是一個DApp不…

【Leetcode每日一刷】哈希表|綱領、242.有效的字母異位詞、349. 兩個數組的交集

綱領 🔗代碼隨想錄理論部分 關于哈希表這個數據結構就不再重復講了,下面對幾個關鍵點記錄一下: 哈希碰撞 解決方法1:拉鏈法 解決方法2:線性探測法 下面針對做題要用到的三種結構講一下(也是重復造輪子了…

vue.config.js publicPath 和 vue-router base 結合配置項目根目錄為二級目錄案例

背景: 同個域名下需要有 PC 管理后臺, H5 端, 企業微信 ......等多個端, 需要在一個域名下通過不同的路徑來區分不同的項目; 例如: abc.com/pc, abc.com/h5, abc.com/wx-work.... 此處做個記錄 步驟: 1. 修改 vue.config.js 中的 publicPath module.exports {outputDir:…

MATLAB|【免費】概率神經網絡的分類預測--基于PNN的變壓器故障診斷

目錄 主要內容 部分代碼 結果一覽 下載鏈接 主要內容 ?《MATLAB神經網絡43個案例分析》共有43章,內容涵蓋常見的神經網絡(BP、RBF、SOM、Hopfield、Elman、LVQ、Kohonen、GRNN、NARX等)以及相關智能算法(SVM、決策…

Java 下載excel文件

一、背景 微信小程序需要導出excel文件,后端技術Java,前端使用uniapp框架,使用excel模板。 二、excel 報表模板 需要補充的內容是以下標記問號的,其中有個表格,內容是動態添加的 三、Java端代碼實現 關鍵步驟&…

Topaz Video AI:一鍵提升視頻品質,智能重塑影像魅力 mac/win版

Topaz Video AI是一款革命性的視頻智能處理軟件,它利用先進的機器學習和人工智能技術,為視頻創作者提供了前所未有的視頻增強和修復功能。無論您是專業視頻編輯師、攝影師,還是熱愛視頻創作的愛好者,Topaz Video AI都能幫助您輕松…

webpack打包效率優化,webpack打包體積優化

優化 webpack 打包效率的方法 使用增量構建和熱更新:在開發環境下,使用增量構建和熱更新功能,只重新構建修改過的模塊,減少整體構建時間。避免無意義的工作:在開發環境中,避免執行無意義的工作&#xff0c…

2403C++,C++20協程庫

原文 基于C20協程的http庫--cinatra cinatra是基于C20無棧協程實現的跨平臺,僅頭,高性能,易用的http/https庫(http1.1),包括httpserver和httpclient,功能完備,不僅支持最普通的getpost等請求,還支持restfulapi,websocket,chunked,ranges,multipart,靜態文件服務和反向代理等功…

Python程序的流程

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! 🌎歡迎各位→點贊 👍 收藏? 留言?📝 年輕是我們唯一擁有權利去編制夢想的時…

【前端素材】推薦優質后臺管理系統Annex平臺模板(附源碼)

一、需求分析 1、系統定義 后臺管理系統是一種用于管理網站、應用程序或系統的管理界面,通常由管理員和工作人員使用。它提供了訪問和控制網站或應用程序后臺功能的工具和界面,使其能夠管理用戶、內容、數據和其他各種功能。 2、功能需求 后臺管理系…

利用python爬取本站的所有博客鏈接

目錄 前因 首先的嘗試 解決辦法 導入包 定義一個json配置文件 打開瀏覽器執行操作 注意 提取源代碼并且進行篩選鏈接 執行結果 前因 由于自己要把csdn的博客同步到hugo中,把博客轉為md格式已經搞好了,但是由于csdn的圖片具有防盜鏈,…

vue實現商品評分效果(通過插件實現)

Vue.js 實現了一個簡單的商品評分功能。用戶可以通過點擊星星來修改商品的評分&#xff0c;并且評分顯示了相應的星星數。 廢話不多說&#xff0c;直接上代碼 方法一&#xff1a; <template><div><avue-form :model"formData"><avue-form-it…

2024年經典【自動化面試題】附答案

一、請描述一下自動化測試流程&#xff1f; 自動化測試流程一般可以分為以下七步&#xff1a; 編寫自動化測試計劃&#xff1b; 設計自動化測試用例&#xff1b; 編寫自動化測試框架和腳本&#xff1b; 調試并維護腳本&#xff1b; 無人值守測試&#xff1b; 后期腳本維…

【數據結構】深入探討二叉樹的遍歷和分治思想(一)

&#x1f6a9;紙上得來終覺淺&#xff0c; 絕知此事要躬行。 &#x1f31f;主頁&#xff1a;June-Frost &#x1f680;專欄&#xff1a;數據結構 &#x1f525;該文章主要講述二叉樹的遞歸結構及分治算法的思想。 目錄&#xff1a; &#x1f30d;前言&#xff1a;&#x1f30d;…

Sora 原理與技術實戰筆記一

b 站視頻合集 【AIX組隊學習】Sora原理與技術實戰&#xff1a;Sora技術路徑詳解 Sora 技術報告&#xff08;OpenAI&#xff09; huggingsd 文生圖視頻系列的一個開源項目 最強視頻生成模型Sora相關技術解析 https://github.com/lichao-sun/SoraReview 驚艷效果&#xff1a; 長…