xxxservlet繼承HttpServlet類


“HttpServlet類被定義為抽象類,但是源碼里面沒有抽象方法。所以沒有一定要求實現的方法。之所以定義為抽象類,是因為他繼承了GenericServlet這個抽象類。並沒有全部實現里面的方法”   那我們自己寫的servlet里面不要實現GenericServlet這個抽象類中的方法?

   直接使用,不用填充抽象方法。

    為什么不用填充?

總的來說,大概如下.
容器會調用你注冊好的支持servlet接口的類.容器會自己new它
然后每次有請求來的時候會根據請求類型調用你這個類的get post head...方法, 在調用方法的時候會傳遞 response,request對象.

而這些調用過程中,可能會存在不同廠家的容器,那自然要用接口來統一,否則你搞你的,我搞我的,那就亂套了. 舉例如下:

 建立一個新類:
NewServlet繼承HttpServlet(必須如此)
然后給此類加上注解,@WebServlet(urlPatterns = {"/NewServlet"}) (你也可在web.xml里面去注冊,效果一樣,看自己愛好)

然后每次容器碰到有人訪問 /NewServlet 這個路徑的時候,就會根據請求方法調用你這個類的doGet doPost....等等方法 而你自己在這些方法中寫自己的代碼,例如輸出 hello world什么的. 當然第一次訪問的時候會自動new此類,並且保存在容器中。
所以此類只能由容器調用,不能自己new它,你自己new個instance出來,沒有任何用處,因為容器自動實例newservlet的時候會給其設置很多參數,而且每次調用其處理方法時還要傳遞兼容servletresponse,servletrequest接口的對象,你自己new instance誰給你傳遞對象啊.

直接注冊HttpServet沒有用處,其實把HttpServet理解成事件監聽類就可以了,專門監聽url訪問請求.





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM