Servlet基礎教程之呼叫流程

java知多少發表於2020-10-23

目錄

步驟 1 : 流程圖

步驟 2 : login.html

步驟 3 : /login路徑

步驟 4 : 找到對應的Servlet

步驟 5 : 例項化Servlet物件

步驟 6 : 呼叫doGet或者doPost

步驟 7 : request獲取引數

步驟 8 : response設定響應

步驟 9 : tomcat把html傳遞給瀏覽器


步驟 1 : 流程圖

大體思路圖就是這樣,接下來對思路圖裡的每個環節具體講解

流程圖

步驟 2 : login.html

首先訪問

http://127.0.0.1/login.html



開啟一個靜態的html頁面,在這個頁面中可以通過form,以post的形式提交資料

步驟 3 : /login路徑

在上一步的login.html中,用form,把賬號和密碼,提交到/login這個路徑,並且附帶method="post"

步驟 4 : 找到對應的Servlet

tomcat接受到一個新的請求:

http://127.0.0.1/login


其路徑是/login,接著就到配置檔案web.xml進行匹配,發現/login,對應的Servlet類是 LoginServlet。
接下來的工作,就會基於這個LoginServlet進行。

找到對應的Servlet

步驟 5 : 例項化Servlet物件

Tomcat 定位到了LoginServlet後,發現並沒有LoginServlet的例項存在,於是就呼叫LoginServlet的public無參的構造方法LoginServlet()例項化一個LoginServlet物件以備後續使用

步驟 6 : 呼叫doGet或者doPost

Tomcat從上一步拿到了LoginServlet的例項之後,根據頁面login.html提交資訊的時候帶的method="post",去呼叫對應的doPost方法。

步驟 7 : request獲取引數

接著流程進入了doPost方法中,

protected void doPost(HttpServletRequest request, HttpServletResponse response){

...

}



在這個方法中,通過引數request,把頁面上傳遞來的賬號和密碼資訊取出來
 

String name = request.getParameter("name");

String password = request.getParameter("password");

步驟 8 : response設定響應

接著,根據賬號和密碼是否正確(判斷是否是admin和123), 建立不同的html字串。

然後把html字串通過如下方式,設定在了response物件上。

PrintWriter pw = response.getWriter();

pw.println(html);



到這裡,Servlet的工作就做完了。

步驟 9 : tomcat把html傳遞給瀏覽器

在Servlet完成工作之後,tomcat拿到被Servlet修改過的response,根據這個response生成html 字串,然後再通過HTTP協議,這個html字串,回發給瀏覽器,瀏覽器再根據HTTP協議獲取這個html字串,並渲染在介面上。

這樣在效果上,瀏覽器就可以看到Servlet中生成的字串了。

關於HTTP協議,有專門的章節講解 : HTTP協議教程


更多內容,點選瞭解: https://how2j.cn/k/servlet/servlet-flow/775.html

相關文章