Sertvlet請求與響應
Servlet
在Java Web中Servlet、請求和響應是最基本的三個物件,在Web容器的管理下,這三者能夠完成基本的HTTP請求處理。
Servlet是執行在伺服器端的程式,用於處理及響應客戶端的請求。
Servlet是個特殊的Java類,必須繼承HttpServlet。每個Servlet可以響應客戶端的請求。
Servlet相應客戶端請求的方法:
doGet():響應客戶端的Get請求
doPost():響應客戶端的POST請求
doPut():響應客戶端的PUT請求
doDelete():響應客戶端的DELETE請求
大部分時候,Servlet對於所有請求的響應都是一樣的,所以可以只重寫service()方法
建立Servlet類,在建立的時候可以自動配置這個RegistServlet類在web.xml中,
當然也可以自己手動寫,這個/RegisterServlet代表的就是那個jsp頁面提交的時候會找到對應的這個Servlet類
1、首先應該新建一個Servlet類,比如RegisterServlet,如果是普通java類必須繼承HttpServlet,然後自己配置web.xml檔案。
2、Servlet的配置
<servlet> <servlet-name>RegisterServlet</servlet-name><!-- 類名 --> <servlet-class>com.jiuyue.controller.RegisterServlet</servlet-class><!-- 包名.類名 --> </servlet> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name><!-- 類名 --> <!-- 使用者在客戶端點選一個連結,瀏覽器會向Web應用伺服器傳送一個Url請求,該Url會指向一個Servlet --> <url-pattern>/RegisterServlet</url-pattern><!-- /類名(就是jsp的Action要請求提交的Url路徑地址) --> </servlet-mapping>
Servlet的作用是為客戶提供服務。servlet的角色是接受一個客戶的請求,再返回一個響應。請求可能非常簡單,例如:給我提供一個歡迎頁面;也可能非常複雜,例如:為當前的購物車結賬,這個請求會帶一些客戶端傳來的引數,servlet需要知道自己如何使用請求中的引數,還需要知道該返回什麼樣的響應。
Servlet受容器管理
Java Web伺服器處理使用者請求的基本過程:使用者在客戶端點選一個連結,瀏覽器會向Web應用伺服器傳送一個URL請求,該URL會指向一個servlet;Web容器看出這個請求指向某個servlet A,就會建立兩個物件(HttpServletRequest和HttpServletResponse),並分配或建立一個執行緒,呼叫servlet A對應的service方法(上述請求和響應物件作為引數);service根據HTTP請求區分出客戶端發來的是GET還是POST請求,並呼叫對應的doGet()或doPost()方法;在doGet()或doPost()方法中進行業務邏輯的處理,處理完成後的結果通過響應物件返回寫回給客戶端。
Servlet的生命週期
(1)建立Servlet例項
(2)Web容器呼叫Servlet的init方法,對Servlet進行初始化
(3)Servlet初始化後,將一直存在於容器中,響應使用者請求。
(4)呼叫Servlet的destroy方法銷燬Servlet。
重定向是讓瀏覽器訪問新的Url完成工作,使用者會在瀏覽器位址列看到新的
請求派發是服務端的工作,是當前Servlet委託另外的Servlet完成請求,並給客戶端發回響應,使用者的瀏覽器位址列Url沒變