91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中servlet的生命周期

發布時間:2020-11-02 12:14:49 來源:億速云 閱讀:189 作者:小新 欄目:編程語言

java中servlet的生命周期?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

 Servlet是Java Servlet的簡稱,稱為小服務程序或服務連接器,用Java編寫的服務器端程序,具有獨立于平臺和協議的特性,主要功能在于交互式地瀏覽和生成數據,生成動態Web內容,它通常用于在客戶端運行,結果得到為用戶進行運算或者根據用戶互作用定位圖形等服務。而servlet是在什么時候被銷毀呢?

java中servlet的生命周期

當服務器不再需要Servlet實例或重新裝入時,會調用destroy方法去銷毀servlet,使用這個方法,Servlet可以釋放掉所有在init方法申請的資源。一個Servlet實例一旦終止,就不允許再次被調用,只能等待被卸載。

順便帶大家一起回憶一下servlet的生命周期:

1.加載和實例化Servlet

當啟動Servlet容器時,容器首先查找一個配置文件web.xml,這個文件中記錄了可以提供服務的Servlet。每個Servlet被指定一個Servlet名,也就是這個Servlet實際對應的Java的完整class文件名。Servlet容器會為每個自動裝入選項的Servlet創建一個實例。所以,每個Servlet類必須有一個公共的無參數的構造器。

2.初始化

當Servlet被實例化后,Servlet容器將調用每個Servlet的init方法來實例化每個實例,執行完init方法之后,Servlet處于“已初始化”狀態。所以說,一旦Servlet被實例化,那么必將調用init方法。通過Servlet在啟動后不立即初始化,而是收到請求后進行。在web.xml文件中用<load-on-statup> ...... </load-on-statup>對Servlet進行預先初始化。

初始化失敗后,執行init()方法拋出ServletException異常,Servlet對象將會被垃圾回收器回收,當客戶端第一次訪問服務器時加載Servlet實現類,創建對象并執行初始化方法。

3.請求處理

Servlet 被初始化以后,就處于能響應請求的就緒狀態。每個對Servlet 的請求由一個Servlet Request 對象代表。Servlet 給客戶端的響應由一個Servlet Response對象代表。對于到達客戶機的請求,服務器創建特定于請求的一個“請求”對象和一個“響應”對象。調用service方法,這個方法可以調用其他方法來處理請求。

Service方法會在服務器被訪問時調用,Servlet對象的生命周期中service方法可能被多次調用,由于web-server啟動后,服務器中公開的部分資源將處于網絡中,當網絡中的不同主機(客戶端)并發訪問服務器中的同一資源,服務器將開設多個線程處理不同的請求,多線程同時處理同一對象時,有可能出現數據并發訪問的錯誤。

另外注意,多線程難免同時處理同一變量時(如:對同一文件進行寫操作),且有讀寫操作時,必須考慮是否加上同步,同步添加時,不要添加范圍過大,有可能使程序變為純粹的單線程,大大削弱了系統性能;只需要做到多個線程安全的訪問相同的對象就可以了。

4.銷毀Servlet

當服務器不再需要Servlet實例或重新裝入時,會調用destroy方法,使用這個方法,Servlet可以釋放掉所有在init方法申請的資源。一個Servlet實例一旦終止,就不允許再次被調用,只能等待被卸載。

Servlet一旦終止,Servlet實例即可被垃圾回收,處于“卸載”狀態,如果Servlet容器被關閉,Servlet也會被卸載,一個Servlet實例只能初始化一次,但可以創建多個相同的Servlet實例。如相同的Servlet可以在根據不同的配置參數連接不同的數據庫時創建多個實例。

感謝各位的閱讀!看完上述內容,你們對java中servlet的生命周期大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临澧县| 田东县| 济阳县| 堆龙德庆县| 扎赉特旗| 新安县| 巨野县| 宁津县| 平泉县| 田林县| 太原市| 青神县| 通化市| 马尔康县| 巴彦县| 辰溪县| 西乌| 格尔木市| 长沙市| 陆河县| 腾冲县| 托里县| 阳曲县| 南投县| 乃东县| 黔东| 白水县| 钟山县| 西华县| 柏乡县| 泾阳县| 绥德县| 闽清县| 麻栗坡县| 蒲江县| 洪泽县| 长武县| 宜兴市| 潞城市| 买车| 梨树县|