尚硅谷--JavaWeb篇

參考內容

參考視頻:https://www.bilibili.com/video/BV1Y7411K7zz?p=325&vd_source=510ec700814c4e5dc4c4fda8f06c10e8

代碼地址:https://gitee.com/empirefree/SpringBoot-summarize/tree/尚硅谷-JavaWeb篇/

http協議: https://mp.weixin.qq.com/s/BdYOumBAXEXM3LOrDOSftw

csdn csdn csdn csdn csdn


🔥1. 基本內容

1.1.基本概念

1.1.0 JavaEE/JavaSE

​ JavaEE:指的是一種規範,包含了目前tomcat,servlet等等,也包含了jdk(javaSE就包含了jdk裏面的各種包)

1.1.1 JavaWeb

​ Javaweb 是指java語言編寫的可通過瀏覽器訪問的程序總稱

1.1.2 Tomcat

​ tomcat是輕量級的Javaweb容器支持對jsp,servlet這種動態資源的加載,是市面上流行的Javaweb服務器。

1.1.3 Servlet
1.1.3.1 基本概念

​ Servlet是JavaEE規範之一,規範也是接口,也是Javaweb三大組件之一。

​ JavaWeb三大組件:servlet,filter過濾器,listener監聽器,是服務器上的java程序,負責接收與響應客戶端請求

​ 各種不同版本支持的環境也有所不同tomcat -- servelet -- javaEE -- jdk環境

1.1.3.2 生命週期

​ 整體伴隨項目的啓動和結束

  1. 執行Servlet構造器方法,init初始化方法
  2. 每次都會調用Service方法
  3. 執行Destory銷燬方法
1.1.3.3 HttpServlet

​ 實際開發中,一般通過繼承httpServlet來實現Servlet接口

1.1.3.4 ServletConfig

​ Servlet配置信息類,可以獲取ServletContext對象

1.1.3.4 ServletContext

​ ServletContext是接口,表示上下文對象,一個web工程只有一個ServletContext對象實例,也是一個域對象(類似於Map對象)

1.1.3.5 HttpServletRequest/response

​ HttpServletRequest:tomcat接受到響應傳到Service的doget,dopost方法中,後續就可以HttpServletRequest使用入參數據。

​ HttpServletResponse:每次請求進來,Tomcat都會創建一個response對象傳給servlet使用

1.1.3.7 斜槓

​ 斜槓一般表示絕對路徑

1.1.3.8 文件上傳下載

​ 用Stream流進行傳輸

1.1.4 Http協議
1.1.4.1 基本概念

​ 客戶端、服務端之間通信需要遵守的協議,兩者之間傳輸的數據叫報文

1.1.4.2 Get/Post請求
	1. 請求行
   		1. 請求方式 get
   		2. 請求路徑: a.html
   		3. 請求協議版本號
	2. 請求頭
   		1. Accept: 客戶端可以接受的數據類型
   		2. Accept-Language:告訴服務器客戶端客戶接受的語言類型
   		3. User-Agent:瀏覽器信息
   		4. Host:請求服務器的ip和端口
   		5. Connection:服務器回傳數據馬上關閉還是保持一小段時間連接

image-20220630153658703

1.1.4.3 響應碼

​ 1XX:服務器收到請求,需要請求者繼續執行操作

​ 2XX:請求成功

​ 3XX:重定向

​ 4XX:客戶端錯誤

​ 5XX:服務器錯誤

1.1.4.3 MIME類型

​ MIME是HTTP協議數據類型,包含文本,音頻之類的

1.1.4.4 Http請求步驟
1. 域名到ip的解析:由域名經過瀏覽器緩存、系統緩存、hosts文件、路由器緩存、遞歸搜索根域名服務器(DNS解析)
2. TCP/IP連接
3. 瀏覽器發送http請求,經過路由器轉發,通過服務器防火牆,到達服務器,服務器處理並返回HTML界面
4. 瀏覽器解析該HTML並展示
5. 服務器進行TCP四次揮手斷開連接
1.1.4.5 Https

​ https是通過SSL或TLS的通信加密協議

1. 客戶端發送https請求到服務端443端口
2. 服務端生成公私鑰給客戶端,客戶端進行一個隨機值的加密給服務端,服務端收到後進行解密,然後內容加密給客戶端
3. 客戶端收到加密內容後就能進行解密展示

​ http與https區別:

1. 端口不同,http是80端口,https是443端口
1. https加密和開銷多
1.1.5.1 基本概念

​ 服務器通知客戶端保存數據的一種技術,默認獲取到了之後每次請求都帶上cookie,默認4KB

1.1.5.2 生命週期

​ Maxage:

​ 整數:指定秒數

​ 負數:瀏覽器一關就會被刪除

​ 0:馬上刪除cookie

1.1.6 Session
1.1.6.1 基本概念

​ Session就是一個接口(HttpSession),存在服務端,用來維護客戶端和服務端的會話。除了第一次調用是創建session之外,之後調用都是都是獲取前面創建好的session會話對象,默認超時時間30分鐘

  1. 客戶端第一次請求,服務端根據request.getSession()先創建Session,傳給瀏覽器後瀏覽器Cookie的Key是JESSIONID,值是SessionId。Session保存在服務端內存中,每次重啓就沒了。之前用了SpringSession代理導致誤以爲兩者id不一致!!!
  2. 後續客戶端設置了Cookie之後就再請求服務端就能獲取創建好的Session對象
  3. 所以無論是服務器重啓,還是說瀏覽器關掉之後、手動刪了客戶端Cookie,下次請求的時候沒有攜帶Cookie,服務器都會重新創建一個新的Session會話
1.1.7 Filter

​ filter過濾器也包含了init創建,銷燬這些步驟

​ Filter也可以給所有service方法包含try,catch方法

1.1.7 ThreadLocal

​ ThreadLocal用於解決線程併發下數據安全問題

1.1.8 i18n國際化

​ 語言規範,實現中英文轉換


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章