• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      servlet的生命周期及servlet常用方法【Java面試題】

      更新時間:2021年07月12日11時59分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓

      (1)問題分析:

      考官主要想考核Java基本功的掌握和應用。一方面,是servlet的生命周期;另一方面,則是其單例非線程安全對于安全這塊的一個處理。

      (2)核心答案講解:

      1)init()方法

      在Servlet的生命周期中,僅執行一次init()方法,它是在服務器裝入Servlet 時執行的,可以配置服務器,以在啟動服務器或客戶機首次訪問Servlet時裝入 Servlet。無論有多少客戶機訪問Servlet,都不會重復執行init();

      2)service()方法

      它是Servlet的核心,每當一個客戶請求一個HttpServlet對象,該對象的 Service()方法就要調用,而且傳遞給這個方法一個“請求”(ServletRequest) 對象和一個“響應”(ServletResponse)對象作為參數。在HttpServlet中已存 在Service()方法。默認的服務功能是調用與HTTP請求的方法相應的do功能。

      3)destroy()方法

      僅執行一次,在服務器端停止且卸載Servlet時執行該方法,有點類似于C++的 delete方法。一個Servlet在運行service()方法時可能會產生其他的線程,因 此需要確認在調用destroy()方法時,這些線程已經終止或完成。

      (3)問題擴展

      如何解決servlet線程安全:

      第一種,繼承SingleThreadModel但是這樣每次都會創建一個新的servlet實例, 但這樣消耗服務器的內存,降低了性能,并且這個接口現在已經過時了,不推薦使 用。

      第二種:我們盡量避免使用全局變量,就我個人而言,我比較喜歡使用這種方法。

      第三種,我們可以通過使用ThreadLocal, 內部結構是一個Map結構,用當前線 程作為key,他會創建多個副本。get,set方法

      第四種,我們當然還可以來加鎖,進行解決線程問題。

      而且我還知道,向我們這種常用的MVC框架,struts1,spring這些MVC框架,都 是基于servlet發展而來的,就比如struts1 的核心總控制器是ActionServlet, 而springMVC的前端總控制器是dispatchServlet,在項目我們曾經用serlet來 生成 圖片驗證碼的,防止用戶進行暴力破解。

      (4)結合項目中使用

      servlet的配置文件 web.xml

      ImageCodeServlet   org.leopard.code.ImageCodeServlet
         ImageCodeServlet
         /d

      描述:

      在web.xml中,首先需要寫一個servlet標簽,servlet標簽中有兩個子標簽,一個叫servlet-name,這個name可以隨便起,但是要保證唯一性,除此之外,在這個servlet-name下有一個servlet-class,這個servlet-class對應的就是我后臺提高服務的servlet,除此之外還有一個servlet-mapping,這個里邊首先有一個servl-name。,這個servl-name首先要保證和上邊的servlet-name保持一致,除此之外還有一個url-pattern,這是一個虛擬路徑,是用來發送請求的url地址。

      Servlet的生命周期是由Servlet容器來控制的,它始于裝入Web服務器的內存時,并在終止或重新裝入Servlet時結束。

      在代碼中,Servlet生命周期由接口javax.servlet.Servlet定義。所有的Java Servlet 必須直接或間接地實現javax.servlet.Servlet接口,這樣才能在Servlet Engine上運行。






      猜你喜歡:

      使用Spring Boot注冊整合方式整合Servlet三大組件

      獲取servlet轉發和響應重定向的方式是什么?

      Java培訓之ServletContext讀取web應用中的資源文件

      傳智教育java開發培訓

      神马影院我不卡,农村丰满肥熟老妇女,午夜电影网,2018日日摸夜夜添夜夜添 网站地图 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>