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

posted @ 2019-12-16 11:36  筱筱的春天  阅读(3322)  评论(0编辑  收藏  举报