1. 程式人生 > >Servert以及Web專案詳解

Servert以及Web專案詳解

#今日內容:

一. 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)//虛擬路徑//資源名稱)進行訪問