Servlet 运行原理
文章目錄
- Servlet 如何運行
- 演示 Servlet 運行原理
Servlet 如何運行
用戶向瀏覽器地址欄輸入:http://ip:port/helloweb/sayHello?name=zs
瀏覽器使用 ip:port(端口號)連接服務器
瀏覽器將請求數據按照 http 協議打成一個數據包(請求數據包)發送給服務器
請求數據包的內容包含了請求資源路徑(/helloweb/sayHello?name=zs),另外,在請求數據包當中,還會包含瀏覽器自動生成的一些信息。
服務器創建兩個對象:請求對象(Request)和響應對象(Response)
服務器解析請求數據包,將解析之后的數據存放到請求對象里面,方便 servlet 讀取請求數據(因為 servlet 不用解析請求數據包,如果 要解析,需要理解 http 協議)。
請求對象是 HttpServletRequest 接口的一個實現。
響應對象是 HttpServletResponse 接口的一個實現,響應對象用于存放 servlet 處理的結果。
依據請求資源路徑找到相應的 servlet 配置,通過反射創建 servlet 實例。然后調用其 service() 方法。
在調用 service()方法時,會將事先創建好的請求對象(request)和響應對象(response)作為參數進行傳遞。在 servlet 內部,可以通過 request 獲得請求數據,或者通過 response 設置響 應數據。
服務器從 response 中獲取數據,按照 http 協議打成一個數據包(響應數據包),發送給瀏覽器。
瀏覽器會解析響應數據包,取出相應的數據,生成相應的界面。
演示 Servlet 運行原理
當用戶向瀏覽器地址欄輸入 http://ip:port/helloweb/sayHello?name=xxx
原理圖
說明:
建立連接
瀏覽器根據 IP 地址和端口號(port)和服務器建立連接
打包
瀏覽器將請求數據按 HTTP 協議打成數據包(http 請求數據包)
http 請求數據包包含“helloweb/sayHello”(請求資源路徑)
發送請求
瀏覽器向服務器發送請求數據包
創建 Request 對象
Servlet 引擎(Tomcat 負責通訊的模塊)創建請求對象(Request),方便我們自定義的 Servlet 獲得請求數 據包中的內容
該對象符合 HttpRequest 接口
創建 Response 對象
Servlet 引擎(Tomcat 負責通訊的模塊)創建相應對象(Response)
該對象符合 HttpResponse 接口
創建 HelloServlet 對象
服務器通過反射的方式創建 Servlet 實例
調用 Servlet 實例的 service(request , response)方法
7.1)訪問參數
在 service()方法中訪問 Request 對象,獲得用戶提交的一些參數
7.2)處理結果
在 service()方法中將處理結果放入 Response 對象
取數據
Servlet 引擎從 Response 對象中取出數據
打包
Servlet 引擎將取出的數據打包,該數據包符合 http 協議要求
發送響應
瀏覽器將響應數據包中的數據取出,生成界面
總結
以上是生活随笔為你收集整理的Servlet 运行原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统界面(linux系统的操作
- 下一篇: DAO 学习笔记