1. 程式人生 > 其它 >JavaWeb學習(一)🧐

JavaWeb學習(一)🧐

涉及:伺服器知識、Tomcat知識、http知識、maven知識

JavaWeb

1、基本概念

1.1、前言

web開發:

  • web 網頁的意思 www.baidu.com
    • 靜態web
      • html、css
      • 提供給所有人看到的資料始終不會發生變化
    • 動態web
      • 頁面會動態變化,每個人都不一樣
      • 技術棧:Servlet/JSP、ASP、PHP

在 Java 中,動態 web 資源開發的技術統稱為 JavaWeb

1.2、web 應用程式

web 應用程式:可以提供瀏覽器訪問的程式

  • a.html、b.html ... 多個 web 資源可以被外界訪問,對外界提供服務
  • 這個統一的 web 資源會被放在同一個資料夾下,web 應用程式 ——> Tomcat:伺服器
  • 一個 web 應用有多部分組成
    • html、css
    • jsp、servlet
    • java 程式
    • jar 包
    • 配置檔案

web 應用程式編寫完畢後,若想提供給外界訪問:需要一個伺服器統一管理

1.3、靜態 web

  • *.html、 *.htm,這些都是網頁的字尾,如果伺服器一直存在這些東西,我們就可以直接讀取
  • 靜態 web 存在的缺點
    • Web 頁面無法動態更新
      • 輪播圖、點選特效、偽動態
      • JavaScript
      • VBScript
    • 無法與資料庫互動(資料無法持久化,使用者無法互動)

1.4、動態 web

頁面動態變化,因人而異

缺點:

  • 假如伺服器動態web資源出現錯誤,我們就要重新編寫我們的後臺程式
    ,重新發布

優點:

  • 可以和資料庫互動(資料持久化)

2、web 伺服器

2.1、技術詳情

  • ASP

    • 微軟
    • 在HTML中嵌套了VB指令碼
    • 在ASP開發當中,基本一個頁面都有幾千行程式碼,維護成本很高
      • 就是html程式碼裡面巢狀 java 程式碼 <% %>
  • PHP

    • 開發速度快,功能強大,跨平臺,程式碼簡單
    • 無法承載大訪問量的情況
  • JSP/Servlet

    • B/S:瀏覽器伺服器
    • sun公司主推的B/S架構
    • 基於java語言
    • 語法像ASP

2.2、伺服器

伺服器是一種被動的操作,用於處理使用者的一些請求和給使用者一些響應資訊

  • IIS

    • 微軟
    • window自帶
  • Tomcat

  • Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支援,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,Tomcat 5支援最新的Servlet 2.4 和JSP 2.0 規範。因為Tomcat 技術先進、效能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。

    Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。對於一個Java初學web的人來說,它是最佳的選擇

    Tomcat 實際上執行JSP 頁面和Servlet。Tomcat最新版本為10.0.5

3、Tomcat

3.1、安裝tomcat

官網:https://tomcat.apache.org/

3.2、tomcat啟動和配置

  1. tomcat 的 bin 包下的檔案,開啟即可
  1. http://localhost:8080/ 出現如下介面就說明開啟了
  1. 配置:config 檔案

    server.xml:伺服器核心配置檔案,可以修改埠號(預設8080),可以修改主機的名稱(預設 localhost —> 127.0.0.1,但是這個要去改系統)

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
    <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">
    
  2. 常見埠號

    tomcat:8080

    mysql:3306

    http:80

    https:443

3.3、高難度面試題

請你談談網站是如何進行訪問的?

  1. 輸入一個域名
  2. 檢查本機下的 C:\Windows\System32\drivers\etc\hosts 配置檔案有沒有這個域名的對映
    1. 有直接去對應的ip地址
    2. 沒有就去DNS找
    3. 再找不到就返回找不到

3.4、釋出一個 web 網站

不會就先模仿

4、Http

4.1、什麼是http

超文字傳輸協議(HTTP)是一個簡單的請求-響應協議,它通常執行在TCP之上。

  • 超文字:圖片、音樂、視訊、定位、地圖....
  • 埠:80

https:安全的

  • 埠:443

4.2、兩個時代

  • http1.0
    • http/1.0:客戶端可以與web伺服器連線後,只能獲得一個web資源
  • http2.0
    • http/1.1:可以獲得多個web資源

4.3、http請求

  • 客戶端 ——> 伺服器

百度:

Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK    狀態碼
Remote(遠端) Address: 14.215.177.39:443
Referrer Policy: no-referrer-when-downgrade
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9     語言:zh-CN
Cache-Control: max-age=0
Connection: keep-alive

4.3.1、請求行

  • 請求行的請求方法:GET
  • 請求方式:GET/POST(一個更高效、一個更安全)
    • get:請求能夠攜帶的引數比較少,大小有限制,會在瀏覽器的url位址列顯示資料內容,不安全,但是高效
    • post:請求攜帶的引數沒限制,大小沒限制,瀏覽器不會顯示,安全,但不高效

4.3.2、訊息頭

Accept:告訴瀏覽器,所支援的資料型別
Accept-Encoding:支援哪種編碼格式:utf-8...
Accept-Language:告訴瀏覽器,它的語言環境   
Cache-Control:快取控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連線
Host:主機

4.4、http響應

  • 伺服器 ——> 客戶端
Cache-Control: private   快取控制
Connection: keep-alive   連線:保持連線
Content-Encoding: gzip   編碼
Content-Type: text/html; 型別

4.4.1、響應體

Accept:告訴瀏覽器,所支援的資料型別
Accept-Encoding:支援哪種編碼格式:utf-8...
Accept-Language:告訴瀏覽器,它的語言環境   
Cache-Control:快取控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連線
Host:主機
Refresh:告訴客戶端多久重新整理一次
Location:讓網頁重新定位    

4.4.2、響應狀態碼

  • 200:請求響應成功 200
  • 3**:請求重定向
  • 4**:找不到資源 404
  • 5**:伺服器程式碼錯誤 500 502->閘道器錯誤