servlet是什么?servlet到底是啥?


 

#說實話

這個鬼servlet我聽說過它好多年了,但是我真的不知道它到底是干啥用的。內心里總覺得這是個很復雜的,絕對是讓人難以理解的東西,我真的感覺自己很抗拒它,不想知道,不想去了解。可是我還是不得不去研究下它,因為我想知道Tomcat這個鬼東西,要想知道Tomcat的事,就必須要知道跟Tomcat纏繞在一起的servlet。

今天之前我總覺得這個servlet一定跟http協議 , TCP/IP ,什么應用層,傳輸層 等這些亂七八糟的,一輩子都搞不懂的破事兒有關系。總把Servlet和太多東西聯系起來,以為它是個很復雜的東西。其實不是。

 

#servlet到底是啥?

既然上面說了servlet不復雜,那servlet到底是啥。 事實上,servlet就是一個Java接口。接口的作用是啥,是規范!

什么網絡協議,什么http,什么傳輸層應用層這些牛鬼蛇神 servlet統統管不着。

 

servlet這個接口只有5個方法。

 

 servlet接口定義的是一套處理網絡請求的規范。

其中最主要的是兩個生命周期方法init(),destroy(),還有一個處理請求的service().

所有想要處理網絡請求的類,都要回答這3個問題:

1)你初始化時要做什么
2)你銷毀時要做什么
3)你接受到請求時要做什么

這是Java給的一種規范

 

servlet是一個規范,那實現了servlet的類,就能處理請求了么?

不好意思,答案:不能

 

#是哪兒用到了servlet?

寫一個servlet的時候,我沒從來不會在servlet中寫什么監聽8080端口的代碼,servlet不會直接和客戶端打交道!那請求怎么來到servlet呢?答案是servlet容器,比如我們最常用的Tomcat ,

Tomcat才是與客戶直接打交道的家伙,它監聽端口,請求過來后,根據URL信息,確定要將請求交給哪個servlet去處理,然后調用那個servlet的service方法,service方法返回一個response對象,Tomcat再把這個response返回給客戶端。

 

 

參考 

https://www.zhihu.com/question/21416727

https://www.zhihu.com/question/21416727/answer/339012081


免責聲明!

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



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