1. 程式人生 > >Servlet GET POST請求區別

Servlet GET POST請求區別

Servlet 介面,定義一些處理請求的方法。返回給客戶端動態資源。我們使用都是建立一個繼承於HTTPServlet類(實現了Servlet介面)的子類。處理doGet,doPost方法。 MyServlet–》HttpServlet–>GenericServlet

	Servlet 的生命週期

1 何時建立? 第一次請求時載入,並建立物件 2 何時消亡? destroy方法呼叫時,即伺服器關閉時

1 Init()方法 初始化方法 2 service()方法 處理請求方式,對於客戶端過來的請求無論是什麼方式的請求,都會攔截,如果存在doGet,則不會呼叫。 其實service方法只在HttpSerlvet類都已經確定好,而我們建立的servlet類都是HttpSerlvet子類,那麼我們無需再重寫此方法。 3 destroy()方法 serlvet物件生命消亡的方法,在關閉伺服器時呼叫。

Servlet3.0,使用註解的方式來表徵servlet的一些資料。 如果是Servlet3之前,那麼對於比如url mapping等資料需要展示在web.xml中。

Servlet3.0的方式(目前的方式): 建立servlet類時,會存在以下程式碼: @WebServlet( urlPatterns = { “/MyServlet”,

	}, 
	initParams = { 
			@WebInitParam(name = "username", value = "666")
	})

Servlet3.0之前的方式: 1有關建立。老版本的servlet的建立依託於web.xml,其中配置servlet時,何時建立由 1 當然預設值是0, 如果load-on-startup的值是>=0的數,代表伺服器啟動時就會載入serlvet。如果值>0,值越小,載入的優先順序越高。0最後載入代表最大整數。 如果是負數,代表第一次請求時載入。 Serlvet的特點: 1 servlet就是一個java類,繼承於HttpServlet 2 使用response物件對客戶端做響應資料的返回,通過getWriter()方法 3 處理客戶端向伺服器傳送的請求體 3.1以GET請求為例,請求體直接拼接在URL的?後,多個引數間用&隔開。

http://localhost:8080/LoginTest/LoginServlet?username=shm&password=666 1 通過request.getParameter(“username”)方法獲得客戶端傳送的請求體資料 2 為了防止亂碼,request和response都要設定編碼格式: request.setCharacterEncoding(“utf-8”); response.setCharacterEncoding(“utf-8”); 3.2 以post方式為例,使用jsp為依託,使用form表單 當點選登入按鈕,跳轉到serlvet,由servlet來處理請求。 post的url中是沒有資料,也就是說沒有?,所有的資料包裝成了請求體,相對於GET請求,沒有把使用者名稱和密碼裸露出來,安全。

Serlvet 對映 URL mappings 1 一個servlet對應多個URL 2 匹配? 2.1 精準匹配 /Servlet 2.2 模糊匹配 /* 2.3 字尾名匹配 .do 優先順序2.1>2.2>2.3 /a/b//c精準匹配

GET 請求與POST請求的區別: 1 GET 請求是將請求體放置在URL的後面,以?開頭作為標識,多個請求體的資料格式為: username=shm & password=666 類似於<K,V>結構。 而POST請求沒有把請求體放置在URL上。 2 GET請求的URL是有長度限制的。不同瀏覽器長度不同,IE是1024位元組。 3 安全性 POST請求不會把密碼這樣的資訊裸露出來,更安全。