日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java web后台_java web 后台那些事

發(fā)布時(shí)間:2025/3/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web后台_java web 后台那些事 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java web 后臺(tái)運(yùn)行原理

當(dāng)Web服務(wù)器接收到一個(gè)HTTP請求時(shí),它會(huì)先判斷請求內(nèi)容——如果是靜態(tài)網(wǎng)頁數(shù)據(jù),Web服務(wù)器將會(huì)自行處理,然后產(chǎn)生響應(yīng)信息;如果牽涉到動(dòng)態(tài)數(shù)據(jù),Web服務(wù)器會(huì)將請求轉(zhuǎn)交給Servlet容器。此時(shí)Servlet容器會(huì)找到對應(yīng)的處理該請求的Servlet實(shí)例來處理,結(jié)果會(huì)送回Web服務(wù)器,再由Web服務(wù)器傳回用戶端。

針對同一個(gè)Servlet,Servlet容器會(huì)在第一次收到http請求時(shí)建立一個(gè)Servlet實(shí)例,然后啟動(dòng)一個(gè)線程。第二次收到http請求時(shí),Servlet容器無須建立相同的Servlet實(shí)例,而是啟動(dòng)第二個(gè)線程來服務(wù)客戶端請求。所以多線程方式不但可以提高Web應(yīng)用程序的執(zhí)行效率,也可以降低Web服務(wù)器的系統(tǒng)負(fù)擔(dān)。

下圖粗暴解釋了請求到容器流程

下圖解釋了請求到容器到servlet周期流程

文字解說:

1.客戶發(fā)出請求—>Web 服務(wù)器轉(zhuǎn)發(fā)到Web容器Tomcat;

2.Tomcat主線程對轉(zhuǎn)發(fā)來用戶的請求做出響應(yīng)創(chuàng)建兩個(gè)對象:HttpServletRequest和HttpServletResponse;

3.從請求中的URL中找到正確Servlet,Tomcat為其創(chuàng)建或者分配一個(gè)線程,同時(shí)把步驟2創(chuàng)建的兩個(gè)對象傳遞給該線程;

4.Tomcat調(diào)用Servlet的servic()方法,根據(jù)請求參數(shù)的不同調(diào)用doGet()或者doPost()方法;

5.假設(shè)是HTTP GET請求,doGet()方法生成靜態(tài)頁面,并組合到響應(yīng)對象里;

Servlet線程結(jié)束時(shí):Tomcat將響應(yīng)對象轉(zhuǎn)換為HTTP響應(yīng)發(fā)回給客戶,同時(shí)刪除請求和響應(yīng)對象。

可以理解Servlet的生命周期:Servlet類加載(對應(yīng)3步);Servlet實(shí)例化(對應(yīng)3步);調(diào)用init方法(對應(yīng)3步);調(diào)用service()方法(對應(yīng)4、5步);;調(diào)用destroy()方法(對應(yīng)6步)。

注意:

1.創(chuàng)建Servlet對象的時(shí)機(jī):

Servlet容器啟動(dòng)時(shí):讀取web.xml配置文件中的信息,構(gòu)造指定的Servlet對象,創(chuàng)建ServletConfig對象,同時(shí)將ServletConfig對象作為參數(shù)來調(diào)用Servlet對象的init方法。

在Servlet容器啟動(dòng)后:客戶首次向Servlet發(fā)出請求,Servlet容器會(huì)判斷內(nèi)存中是否存在指定的Servlet對象,如果沒有則創(chuàng)建它,然后根據(jù)客戶的請求創(chuàng)建HttpRequest、HttpResponse對象,從而調(diào)用Servlet 對象的service方法。

Servlet Servlet容器在啟動(dòng)時(shí)自動(dòng)創(chuàng)建Servlet,這是由在web.xml文件中為Servlet設(shè)置的屬性決定的。從中我們也能看到同一個(gè)類型的Servlet對象在Servlet容器中以單例的形式存在。

2.在Servlet接口和GenericServlet中是沒有doGet()、doPost()等等這些方法的,HttpServlet中定義了這些方法,但是都是返回error信息,所以,我們每次定義一個(gè)Servlet的時(shí)候,都必須實(shí)現(xiàn)doGet或doPost等這些方法。我們經(jīng)常使用的httpServlet是繼承于GenericServlet實(shí)現(xiàn)的。

總結(jié)

以上是生活随笔為你收集整理的java web后台_java web 后台那些事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。