Servlet處理請(qǐng)求的流程

針對(duì) Servlet 的每次請(qǐng)求,Web 服務(wù)器在調(diào)用 service() 方法之前,都會(huì)創(chuàng)建 HttpServletRequestHttpServletResponse 對(duì)象。其中,HttpServletRequest 對(duì)象用于封裝 HTTP 請(qǐng)求消息,簡(jiǎn)稱 request 對(duì)象。HttpServletResponse 對(duì)象用于封裝 HTTP 響應(yīng)消息,簡(jiǎn)稱 response 對(duì)象。瀏覽器訪問(wèn) Servlet 的交互過(guò)程如圖 1 所示。

圖 1 瀏覽器訪問(wèn)Servlet過(guò)程

在圖 1 中,首先瀏覽器向 Web 服務(wù)器發(fā)送了一個(gè) HTTP請(qǐng)求,Web 服務(wù)器根據(jù)收到的請(qǐng)求,會(huì)先創(chuàng)建一個(gè) HttpServletRequestHttpServletResponse 對(duì)象,然后再調(diào)用相應(yīng)的 Servlet 程序。

Servlet程序運(yùn)行時(shí),它首先會(huì)從 HttpServletRequest 對(duì)象中讀取數(shù)據(jù)信息,然后通過(guò) service()方法處理請(qǐng)求消息,并將處理后的響應(yīng)數(shù)據(jù)寫(xiě)入到 HttpServletResponse 對(duì)象中。最后,Web 服務(wù)器會(huì)從HttpServletResponse 對(duì)象中讀取到響應(yīng)數(shù)據(jù),并發(fā)送給瀏覽器。

需要注意的是,在 Web服務(wù)器運(yùn)行階段,每個(gè) Servlet 都只會(huì)創(chuàng)建一個(gè)實(shí)例對(duì)象,針對(duì)每次 HTTP 請(qǐng)求,Web 服務(wù)器都會(huì)調(diào)用所請(qǐng)求Servlet 實(shí)例的service(HttpServletRequest request,HttpServletResponse response)方法,并重新創(chuàng)建一個(gè) request 對(duì)象和一個(gè) response 對(duì)象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容