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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVAWEB入门之Sevlet的执行原理

發(fā)布時間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVAWEB入门之Sevlet的执行原理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一節(jié)我們學(xué)習(xí)了快速入門,

但是里面的問題是ServletDemo1里面既沒有創(chuàng)建對象,又沒有寫方法,竟然就被執(zhí)行了,為什么呢?

我們來分析一下Sevlet的執(zhí)行原理

1.當(dāng)服務(wù)器接收到客戶端瀏覽器的請求后,會解析請求URL路徑,獲取訪問的Servlet的資源路徑

2.查找web.xml文件,是否有對應(yīng)的<url-pattern>標(biāo)簽體內(nèi)容

3.如果有,則再找到對應(yīng)的<servlet-class>全類名

4.tomcat服務(wù)器,第一步將字節(jié)碼文件加載進(jìn)內(nèi)存,并且創(chuàng)建其對象

5.調(diào)用其方法

至于里面的<servlet-name>只是為了對應(yīng)名字可以互相匹配

?

Servlet中的生命周期:

1.被創(chuàng)建:執(zhí)行init方法,只執(zhí)行一次

疑問:默認(rèn)情況下,第一次被訪問時,Servlet被創(chuàng)建

? ? ? ? ? ?可以配置執(zhí)行Servlet的創(chuàng)建時機

? ? ? ? ? ?在<servlet>標(biāo)簽下配置

? ? ? ? ? ??

修改為-5,這時候再次啟動服務(wù)器,服務(wù)器并沒有init.....出現(xiàn),這說明

Servlet的init方法,只執(zhí)行一次,說明一個Servlet在內(nèi)存中只存在一個對象?,說明Servlet是單例的

多個用戶同時訪問時,可能存在線程安全問題

解決:盡量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對其修改值(賦值)

?

2.提供服務(wù):執(zhí)行service方法,執(zhí)行多次

每次訪問Servlet時,Service方法都會被調(diào)用一次

3.被銷毀:執(zhí)行destroy方法,執(zhí)行一次

Servlet被銷毀時執(zhí)行。服務(wù)器關(guān)閉時,Servlet被銷毀

只有服務(wù)器正常關(guān)閉時,才會執(zhí)行destroy方法

那么問題來了,Servlet先銷毀還是destroy先執(zhí)行呢?

結(jié)論是,先執(zhí)行destroy方法,一般用于釋放資源

?

?

總結(jié)

以上是生活随笔為你收集整理的JAVAWEB入门之Sevlet的执行原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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