1. 程式人生 > 其它 >javaweb學習筆記(一)

javaweb學習筆記(一)

基本概念

  • web開發

    • web,網頁的意思。

    • 靜態web:html,css,提供給所有人看的數不會發生變化

    • 動態web:所有人看到的資料始終會發生變化,不同事件不同地點看到的資訊不同。

    • 技術棧:Servlet/JSP,ASP,PHP

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

Web應用程式

  • Web應用程式:可以提供瀏覽器訪問的程式;

  • 所有能訪問到的頁面或者資源,都在世界上的某一個角落的計算機上。

  • URL

  • 這個統一的web資源會放在同一個資料夾下,web應用程式--->Tomcat:伺服器

  • 一個web應用由多個部份組成(靜態,動態)

    • html、css、js

    • jsp、servlet

    • Java程式

    • jar包

    • 配置檔案

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

靜態Web

  • *html、htm,這些都是網頁的字尾,如果伺服器上一直存在這些東西,我們就可以直接進行讀取。

  • 靜態web的缺點

    • web頁面無法動態更新,所有的使用者看到的都是一個頁面

      • 輪播圖,點選特效:偽狀態

      • JavaScript[實際開發中,它用的最多]

      • VBScrippt

    • 它無法和資料庫互動(資料無法持久化,使用者無法互動)

動態Web

  • 頁面會動態展示:展示效果因人而異。

  • 缺點

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

      • 停機維護

  • 優點

    • Web頁面可以動態更新,所有使用者看到的都不是一個頁面。

    • 它可以和資料庫互動

Web伺服器講解

技術講解

  • ASP

    • 微軟:國內最早流行的就是ASP;

    • 在HTML中嵌入了VB指令碼,ASP+COM

    • 在ASP開發中,基本一個頁面都有幾千行的業務程式碼,頁面極其混亂

    • 維護成本高!

    • IIS

    <h1>
        <h1>
            <%
            System.out.println("hello")
            %>
        </h1>
        <h1>
            
        </h1>
    </h1>
  • php

    • php開發速度很快,功能很強大,跨平臺,程式碼很簡單()

    • 無法承載大訪問量的情況

  • JSP/servlet

    • B/S:瀏覽器客戶端

    • C/S:客戶端和伺服器

    • sun公司主推的B/S框架

    • 基於Java語言的(所有的大公司和一些開源的元件,都是Java寫的)

    • 可以承載三高問題帶來的影響。

    • 語法像ASP,ASP-->JSP,加強市場強度。

web伺服器

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

  • IIS

    • 微軟的;ASP...,Windows中自帶的

  • 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 程式的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 伺服器,可利用它響應HTML標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 伺服器的擴充套件,但執行時它是獨立執行的,所以當你執行tomcat 時,它實際上作為一個與Apache 獨立的程序單獨執行的。

      訣竅是,當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上執行JSP 頁面和Servlet。另外,Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。不過,Tomcat處理靜態HTML的能力不如Apache伺服器。目前Tomcat最新版本為10.0.5

Tomcat

安裝tomcat

啟動tomcat

  • 資料夾作用

  • 啟動

  • 訪問測試:http://localhost:8080/

  • 可能遇到的問題

    • Java環境變數沒有配置

    • 閃退問題:需要配置相容性

    • 亂碼問題:配置問題

配置環境

  • 可以配置啟動的埠號

    • tomat預設埠號:8080

    • mysql:3306

    • http:80

    • https:443

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<!-- A "Connector" using the shared thread pool-->

  • 可以配置主機的名稱

    • 預設主機名為:localhost->127.0.0.1

    • 預設網站應用存放位置為:webapps

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

高難度面試題

  • 請你談談網站時如何進行訪問的

    1. 輸入域名,回車

    2. 檢查本機的c:\Windows\System32\drivers\etc\hosts配置檔案下有沒有這個域名的對映

      1. 有:直接返回對應的ip地址,在這個地址中,有我們需要的web程式,可以直接訪問。

      2. 沒有:去DNS(全世界的域名都在這裡)裡面找,找到的話就返回找不到。

釋出一個web網站

  1. 將自己寫的網站放到伺服器中指定的wbe應用下的資料夾下(webapps)下就可以訪問了。

Http

什麼是Http

  • 超文字傳輸協議(Hypertext Transfer Protocol,HTTP)是一個簡單的請求-響應協議,它通常執行在TCP之上。它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。請求和響應訊息的頭以ASCII形式給出;而訊息內容則具有一個類似MIME的格式。這個簡單模型是早期Web成功的有功之臣,因為它使開發和部署非常地直截了當。

  • 文字:Html,字串

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

  • 80

  • Https:安全的

  • 443

兩個時代

  • http1.0

    • HTTP/1.0:客戶點可以與web伺服器連線後,只能獲得一個web資源,斷開連線

  • http2.0

    • HTTP/1.1:客戶點可以與web伺服器連線後,可以獲得多個web資源

Http請求:

  • 客戶端-->發請求(Requast)--->伺服器

  • 請求行

    • 請求方式:POST/GET

    • GET:請求能夠攜帶的引數比較少,大小有限制,會在瀏覽器的URL位址列顯示資料內容,不安全,但高效

    • POST:能夠攜帶的引數沒有限制,大小沒有限制,不會再瀏覽器URL欄地址顯示資料內容,安全,但是不搞笑

  • 訊息頭

Accept:告訴瀏覽器,它所只是的資料型別
Accept-Encoding:支援哪種編碼格式  GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告訴瀏覽器他的語言環境
Accept-Control:快取控制
Cache-Control:告訴瀏覽器,請求完成時斷開還是連線
Host:主機

Http響應:

  • 伺服器----響應----客戶端

Cache-Control:private 快取控制
Connection:keep-Alive 連線
Connection-Encoding:gzip 編碼
Content-Type:text/html   型別

響應體

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

響應狀態碼

  • 200:代表請求響應成功

  • 3XX:請求重定向

    • 重定向:重新到給的新位置去;

  • 4XX:代表找不到請求資源

  • 5XX:伺服器程式碼錯誤

    • 502:閘道器錯誤

常見面試題

當你的瀏覽器中位址列輸入地址回車的一瞬間,到頁面展示回來,經歷了什麼

Maven

  • 我為什麼要學習這個技術

    1. 在javaWeb中,需要大量的jar包,需要我們手動匯入。

    2. 如何能夠讓一個東西自動幫我匯入和配置這個jar包

      • 由此Maven誕生了。

Maven專案架構管理

  • 核心思想:約定大於配置

    • 有約束,不要去違反

  • Maven會規定好你該如何去編寫我們的java程式碼,必須按照這個規範來

下載安裝Maven

官方網址: https://maven.apache.org/

下載後解壓即可

配置環境變數

在我們系統環境中配置

  • M2_HOME 路徑配置Maven目錄下的bin目錄

  • MAVEN_HOME 路徑配置Maven目錄

  • 在系統的path中配置 %MAVEN_HOME%\bin

配置阿里雲映象

  • 映象:mirrors

    • 作用:加速我們的下載

  • 在maven目錄下conf目錄下的settings檔案裡面新增mirror的配置

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/central/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

本地倉庫

建立一個倉庫

 <localRepository>D:\idea\apache-maven-3.8.1\maven-repo</localRepository>
  • 在settings中新增