2021年Android開發學習路線,精心整理
1 基本概念
1.1 基本概念
web開發:
- web,網頁的意思
- 靜態web
- html,css
- 提供給所有人看的資料,始終不會發生變化
- 動態web
- 幾乎是所有的服務型網站
- 提供給所有人看的會發生變化的資料,每個人在不同時間(地點等)看到的東西不同
- 技術棧:Servlet/JSP,ASP,PHP
在Java中,動態web資源開發的技術統稱為Javaweb
1.2 web應用程式
web應用程式,可以提供瀏覽器訪問的程式:
- a.html;b.html...這些web資源可以被外界訪問,對外界提供服務
- 能訪問到的任何一個頁面或者資源,都存在計算機上
- URL
- 這些統一的web資源會被放在同一個資料夾下,web應用程式----->Tomcat:伺服器
- 一個web應用由多部分組成
- html,css,js
- jsp,servlet
- Java程式
- jar包
- 配置檔案(Properties)
web應用程式編寫完畢後,若想提供給外界訪問,需要:
- 伺服器來統一管理
1.3 靜態web
.htm,.html等都是網頁字尾,如果伺服器一直存在這些,就可以直接讀取
- 靜態web存在缺點:
- web頁面無法動態更新,所有使用者看到的都是同一個頁面
- 輪播圖,點選特效:偽動態
- JavaScrip(實際開發中,用的最多)
- VBScrip
- 它無法和資料庫互動(資料無法持久化,使用者無法互動)
- web頁面無法動態更新,所有使用者看到的都是同一個頁面
1.4 動態web
頁面會動態展示,web的頁面展示效果因人而異
-
動態web存在缺點:
- 加入服務的動態web資源出現了錯誤,需要重新編寫後臺程式,重新發布
- 停機維護
- 加入服務的動態web資源出現了錯誤,需要重新編寫後臺程式,重新發布
-
動態web存在優點:
- web頁面可以動態更新,所有使用者看到的不是同一個頁面
- 它可以和資料庫互動(資料持久化:註冊,商品資訊)
2 web伺服器
2.1 技術
ASP:
- 微軟:國內最早流行
- 在HTML中嵌入VB的指令碼,ASP+COM
- 在ASP開發中,基本一個頁面都有幾千行的業務程式碼——頁面極其混亂
- 維護成本高
- 多用C#
- IIS
PHP
- PHP開發速度快,功能強大,跨平臺,程式碼簡單
- 無法承載大訪問量的情況(侷限性)——>適用於中小型企業(現在的大部分(70%))
JSP/Servlet
B/S:瀏覽和伺服器
C/S:客戶端和伺服器
- sun公司主推的B/S結構
- 基於Java語言的(所有的大公司,或者一些開源的元件,都是用Java寫的)
- 可以承載三高問題帶來的影響(高併發,高可用,高效能)
- 語法像ASP(ASP猿可以快速入手),加強市場強度
...
2.2 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 程式的首選。
目前Tomcat最新版本為9.0.37。
工作3-5年後,可以嘗試手寫Tomcat伺服器
3 Tomcat
3.1 Tomcat安裝
官網下載
3.2 Tomcat啟動和配置
Tomcat資料夾資訊
啟動/關閉
如果關閉(或未啟動),則無法訪問
訪問測試:——localhost:8080
Tomcat網頁資訊
apache-tomcat-9.0.37\webapps\ROOT包內
index.jsp是html程式碼
tomcat.css是css程式碼
配置
在conf下的server.xml檔案中,可以:
- 配置啟動埠號(預設8080)
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其中,8081就是改後的埠號,現在訪問,需要訪問localhost:8081
- 配置主機的名稱(localhost)
<Host name="www.cyb.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
C:/Windows/System32/drivers/etc/hosts
新增:
127.0.0.1 www.cyb.com
儲存
輸入www.cyb.com:8080獲得同樣效果
3.2.1 可能遇到的問題
- Java環境變數沒有配置
- 閃退問題(需要配置相容性)
- 亂碼問題(改startup.bat檔案(不推薦))
3.2.2 網站是如何進行訪問的
-
輸入一個域名,回車
-
檢查本機的C:/Windows/System32/drivers/etc/hosts配置檔案下有沒有這個域名的對映
-
有:直接返回對應的IP地址,這個地址中,有我們需要訪問的web程式,可以直接訪問
-
無:去DNS伺服器找,找到的話就返回,找不到就提示找不到
-
3.3 釋出一個Tomcat
把自己寫的網站,放到伺服器(Tomcat)中指定的web應用的資料夾(webapps)下,就可以訪問
5.
網站應有的結構:
- webapps:Tomcat伺服器的web目錄
- ROOT
- asdfasdfasd:網站的目錄名
- WEB-INF
- classes:Java程式
- lib:web應用所依賴的jar包
- web.xml:網站配置檔案
- index.html(或者jsp等等)(預設的首頁)
- static
- css
- js
- img
- ...
- WEB-INF
4 Http
4.1 What's HTTP
HTTP(超文字傳輸協議)
http是一個簡單的請求-響應協議,它通常執行在TCP之上。
它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。請求和響應訊息的頭以ASCII碼形式給出;而訊息內容則具有一個類似MIME的格式。
- 文字:html,字串...
- 超文字:圖片,音樂,視訊,定位,地圖...
HTTP(超文字傳輸協議)預設埠:80
HTTPS(安全的超文字傳輸協議)預設埠:443
4.2 兩個時代
-
HTTP/1.0
- 客戶端可以與web伺服器連線後,只能獲得一個web資源,之後則斷開連線
-
HTTP/1.1
- 客戶端可以與web伺服器連線後,可以獲得多個web資源
4.3 HTTP請求
- 客戶端---發請求---伺服器
4.4 HTTP響應
- 伺服器---響應---客戶端