Servert以及Web專案詳解
阿新 • • 發佈:2018-12-11
#今日內容:
一. Servlet a.Servlet -- 介面(所有的web專案的類都要實現這個接口才能被Tomcat服務執行) b.GenericServlet -- 抽象類(實現了Servlet介面) c.HttpServlet -- 抽象類(繼承了GenericServlet類) 1.對http協議的一種封裝,簡化操作 2.複寫doGet/doPost方法 Servlet相關配置 1. urlpartten:Servlet訪問路徑 1. 一個Servlet可以定義多個訪問路徑 : @WebServlet({"/d4","/dd4","/ddd4"}) 2. 路徑定義規則: 1. /xxx:路徑匹配 2. /xxx/xxx:多層路徑,目錄結構 3. *.do:副檔名匹配 二. HTTP協議 * 概念:Hyper Text Transfer Protocol 超文字傳輸協議 * 傳輸協議:定義了客戶端和伺服器端通訊時,傳送資料的格式 * 特點: 1. 基於TCP/IP的高階協議 2. 瀏覽器訪問任何伺服器時的預設埠號:80 3. 基於請求/響應模型的:一次請求對應一次響應 4. 無狀態的:每次請求之間相互獨立,不能互動資料 * 歷史版本: * 1.0:每一次請求響應都會建立新的連線 * 1.1:複用連線 * 請求訊息資料格式 1. 請求行的內容: a.請求方式:“get” “post” b.請求的url:http//伺服器所在計算機的ip(127.0.0.1):伺服器的埠號(8080)//虛擬路徑//資源名稱 c.請求協議/版本 :HTTP/1.1版本 * 請求方式: * HTTP協議有7種請求方式 常用的有2種:get,post * get: 1. 請求引數在請求行中。 2. 請求的url長度有限制的 3. 不太安全 * post: 1. 請求引數在請求體中 2. 請求的url長度沒有限制的 3. 相對安全 * 請求頭:客戶端瀏覽器告訴伺服器一些資訊(在瀏覽器中按F12-->NetWork 顯示請求的資訊) 請求頭名稱: 請求頭值 A.常見的請求頭: 1. User-Agent:瀏覽器告訴伺服器,我訪問你使用的瀏覽器版本資訊 可以在伺服器端獲取該頭的資訊,解決瀏覽器的相容性問題 2. Referer:http://localhost/login.html 告訴伺服器,我(當前請求)從哪裡來? 作用: a. 防盜鏈:(例如:利用超文字連結指向優酷電影播放的路徑,當此請求向伺服器發出時,伺服器獲取當前請求來自於哪裡, 發現不是從優酷首頁傳送的請求,於是不允許播放,以達到維護版權的目的) b. 統計工作: B.請求空行 空行,就是用於分割POST請求的請求頭,和請求體的。 C.請求體(正文): 封裝POST請求訊息的請求引數的( password=532524 ) 示例: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 使用Tomcat的步驟: 第一步:下載Tomcat伺服器 第二步:整合Tomcat到IDEA開發環境中 方式: 點選IDEA選單欄 RUN - configurations - Defaults - Tomcat server(local)- 右上角Configure - 點選“+” - 選擇Tomcat安裝路徑 - OK 第三步:建立Web專案 (根據需要填寫虛擬目錄,一般選擇專案名稱作為虛擬目錄的名稱) 方式:右上角建立模組Module - 點選“+” - New Module - java Enterprise - javaee version(選擇jdk版本)- 下面視窗欄中下拉勾選 Web application - ok 第四步:建立一個類(DemoServlet)繼承 HttpServet ,複寫 doGet(),doPost()方法 第五步:配置檔案 方式一:web.xml <servlet> <servlet-name>demo</servlet-name> //為資源取一個名稱 <servlet-class>com.itheima.DemoServlet</servlet-class> //資源所對應的全類名 </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> //需要對映的資源名稱 <url-pattern>/demo</url-pattern> //將資源名稱對映成一個相對路徑 </servlet-mapping> 為何需要配置檔案? 解析:當用戶使用瀏覽器訪問伺服器時(http://127.0.0.1:8080/虛擬目錄/demo), Tomcat會檢索瀏覽器訪問的路徑,然後解析配置檔案,檢視是否有對應的資源路徑 /demo, 如果有此路徑,則繼續向上找到對應的資源名稱 demo ,最後找到 demo 所對應的全類名, 將此類載入進入記憶體 Class.forName(com.itheima.DemoServlet),獲取此類的位元組碼物件,並建立其物件 位元組碼物件.newInstance(),最後根據使用者傳送資料的方式 呼叫此類的doGet()或doPost()方法 方式二:註解配置 直接在實現類上新增 @Webservlet(“/demo”) 注意:可以按照以下方法配置路徑 1. /xxx:路徑匹配 2. /xxx/xxx:多層路徑,目錄結構 3. *.do:副檔名匹配 4. {“/xxx”,“/xxx/xxx”,“*.do”} 配置多個路徑,均可訪問 第六步:IDEA右上角開啟Tomcat 第七步:開啟任意瀏覽器 輸入:(http//伺服器所在計算機的ip(127.0.0.1):伺服器的埠號(8080)//虛擬路徑//資源名稱)進行訪問