Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】
- Java后端 學習路線 筆記匯總表【黑馬程序員】
Servlet和HTTP請求協議-學習筆記01【Servlet_快速入門-生命周期方法、Servlet_3.0注解配置、IDEA與tomcat相關配置】
Servlet和HTTP請求協議-學習筆記02【Servlet_體系結構與urlpartten配置、HTTP請求協議】
目錄
05 Servlet_體系結構與urlpartten配置
今日內容
Servlet_體系結構
給servlet設置虛擬訪問路徑
public class ServletDemo2 extends GenericServlet {}
HttpServlet
Servlet_urlpartten配置
06 HTTP請求協議
HTTP_概述
HTTP_請求消息_請求行
HTTP_請求消息_請求頭&請求體
05 Servlet_體系結構與urlpartten配置
今日內容
Servlet_體系結構
1. 概念
2. 步驟
3. 執行原理
4. 生命周期
5. Servlet3.0 注解配置
6. Servlet的體系結構?? ?
?? ?Servlet -- 接口
?? ??? ?|
?? ?GenericServlet(兒子)-- 抽象類
?? ??? ?|
?? ?HttpServlet(孫子)-- 抽象類
?? ?* GenericServlet:將Servlet接口中其他的方法做了默認空實現,只將service()方法作為抽象。
?? ??? ?* 將來定義Servlet類時,可以繼承GenericServlet,實現service()方法即可。
?? ?* HttpServlet:對http協議的一種封裝,簡化操作。
?? ??? ?1. 定義類繼承HttpServlet
?? ??? ?2. 復寫doGet/doPost方法
給servlet設置虛擬訪問路徑
package cn.itcast.web.servlet;import javax.jws.WebService; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException;@WebServlet(urlPatterns = "/demo1") // 設置虛擬訪問路徑 public class ServletDemo1 implements Servlet{@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("demo1-service...");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {} }public class ServletDemo2 extends GenericServlet {}
??
package cn.itcast.web.servlet;import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import java.io.IOException;@WebServlet("/demo2") public class ServletDemo2 extends GenericServlet {//不需要復寫Servlet其它方法,只需要復寫service方法//空實現Servlet其它方法,只寫方法生命、不寫方法體@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("demo2...");} }HttpServlet
package cn.itcast.web.servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebServlet("/demo3") public class ServletDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // super.doGet(req, resp);System.out.println("doGet...");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // super.doPost(req, resp);System.out.println("doPost...");} }Servlet_urlpartten配置
1. 概念
2. 步驟
3. 執行原理
4. 生命周期
5. Servlet3.0 注解配置
6. Servlet的體系結構?? ?
7. Servlet相關配置
?? ?1. urlpartten:Servlet訪問路徑
?? ??? ?1. 一個Servlet可以定義多個訪問路徑 : @WebServlet({"/d4","/dd4","/ddd4"})
?? ??? ?2. 路徑定義規則:
?? ??? ??? ?1. /xxx:路徑匹配
?? ??? ??? ?2. /xxx/xxx:多層路徑,目錄結構
?? ??? ??? ?3. *.do:擴展名匹配
??
??
06 HTTP請求協議
HTTP_概述
HTTP概念:Hyper Text Transfer Protocol 超文本傳輸協議
?? ?* 傳輸協議:定義了客戶端和服務器端通信時,發送數據的格式。
?? ?* 特點:
?? ??? ?1. 基于TCP/IP的高級協議
?? ??? ?2. 默認端口號:80
?? ??? ?3. 基于請求/響應模型的:一次請求對應一次響應
?? ??? ?4. 無狀態的:每次請求之間相互獨立,不能交互數據
?? ?* 歷史版本:
?? ??? ?* 1.0:每一次請求響應都會建立新的連接
?? ??? ?* 1.1:復用連接
HTTP_請求消息_請求行
HTTP請求消息數據格式
?? ?1. 請求行
?? ??? ?請求方式 請求url 請求協議/版本
?? ??? ?GET /login.html?? ?HTTP/1.1
?? ??? ?* 請求方式:
?? ??? ??? ?* HTTP協議有7種請求方式,常用的有2種。
?? ??? ??? ??? ?* GET:
?? ??? ??? ??? ??? ?1. 請求參數在請求行中,在url后。
?? ??? ??? ??? ??? ?2. 請求的url長度有限制
?? ??? ??? ??? ??? ?3. 不太安全
?? ??? ??? ??? ?* POST:
?? ??? ??? ??? ??? ?1. 請求參數在請求體中
?? ??? ??? ??? ??? ?2. 請求的url長度沒有限制
?? ??? ??? ??? ??? ?3. 相對安全
?? ?2. 請求頭
?? ??? ?請求頭名稱: 請求頭值
?? ?3. 請求空行
?? ??? ?空行
?? ?4. 請求體(正文)
?? ?* 字符串格式:
?? ??? ?POST /login.html?? ?HTTP/1.1
?? ??? ?Host: localhost
?? ??? ?User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
?? ??? ?Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
?? ??? ?Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
?? ??? ?Accept-Encoding: gzip, deflate
?? ??? ?Referer: http://localhost/login.html
?? ??? ?Connection: keep-alive
?? ??? ?Upgrade-Insecure-Requests: 1
?? ??? ?
?? ??? ?username=zhangsan
HTTP_請求消息_請求頭&請求體
HTTP請求消息數據格式
?? ?1. 請求行
?? ??? ?請求方式 請求url 請求協議/版本
?? ??? ?GET /login.html?? ?HTTP/1.1
?? ??? ?* 請求方式:
?? ??? ??? ?* HTTP協議有7種請求方式,常用的有2種。
?? ??? ??? ??? ?* GET:
?? ??? ??? ??? ??? ?1. 請求參數在請求行中,在url后。
?? ??? ??? ??? ??? ?2. 請求的url長度有限制
?? ??? ??? ??? ??? ?3. 不太安全
?? ??? ??? ??? ?* POST:
?? ??? ??? ??? ??? ?1. 請求參數在請求體中
?? ??? ??? ??? ??? ?2. 請求的url長度沒有限制
?? ??? ??? ??? ??? ?3. 相對安全
?? ?2. 請求頭:客戶端瀏覽器告訴服務器一些信息。
?? ??? ?請求頭名稱: 請求頭值
?? ??? ?* 常見的請求頭:
?? ??? ??? ?1. User-Agent:瀏覽器告訴服務器,我訪問你使用的瀏覽器版本信息
?? ??? ??? ??? ?* 可以在服務器端獲取該頭的信息,解決瀏覽器的兼容性問題
?? ??? ??? ?2. Referer:http://localhost/login.html
?? ??? ??? ??? ?* 告訴服務器,我(當前請求)從哪里來?
?? ??? ??? ??? ??? ?* 作用:
?? ??? ??? ??? ??? ??? ?1. 防盜鏈:
?? ??? ??? ??? ??? ??? ?2. 統計工作:
?? ?3. 請求空行
?? ??? ?空行,就是用于分割POST請求的請求頭和請求體的。
?? ?4. 請求體(正文):
?? ??? ?* 封裝POST請求消息的請求參數的
?? ?* 字符串格式:
?? ??? ?POST /login.html?? ?HTTP/1.1
?? ??? ?Host: localhost
?? ??? ?User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
?? ??? ?Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
?? ??? ?Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
?? ??? ?Accept-Encoding: gzip, deflate
?? ??? ?Referer: http://localhost/login.html
?? ??? ?Connection: keep-alive
?? ??? ?Upgrade-Insecure-Requests: 1
?? ??? ?
?? ??? ?username=zhangsan
冒泡排序,選擇排序,插入排序,快速排序,堆排序,歸并排序,希爾排序,桶排序,基數排序新年幫您排憂解難。
有向圖,無向圖,有環圖,無環圖,完全圖,稠密圖,稀疏圖,拓撲圖祝您新年宏圖大展。
最長路,最短路,單源路徑,所有節點對路徑祝您新年路路通暢。
二叉樹,紅黑樹,van?Emde?Boas樹,最小生成樹祝您新年好運枝繁葉茂。
最大流,網絡流,標準輸入流,標準輸出流,文件輸入流,文件輸出流祝您新年順順流流。
線性動規,區間動規,坐標動規,背包動規,樹型動歸為您的新年規劃精彩。
散列表,哈希表,鄰接表,雙向鏈表,循環鏈表幫您在新年表達喜悅。
O(1),?O(log?n),?O(n),?O(nlog?n),?O(n^2),?O(n^3),?O(2^n),?O(n!) 祝新年漸進步步高,穩上岸!?
2021 牛年 春晚,沒看,在學JavaWeb...? ?加油加油加油~
總結
以上是生活随笔為你收集整理的Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Servlet和HTTP请求协议-学习笔
- 下一篇: Request和Response-学习笔