#说实话

这个鬼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

最新文章

  1. linux服务器TCP并发连接数优化
  2. Tomcat(JVM)性能监控方法
  3. VC++ 动态生成 成组的 RadioButton 按钮组
  4. getpid 与 gettid 与 pthread_self
  5. JavaScript常用代码段
  6. jQuery--隐藏事件
  7. JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符
  8. cocos2dx 制作单机麻将(二)
  9. VC中基于 Windows 的精确定时
  10. HAOI 2012 高速公路
  11. [csdn markdown]使用摘记三 简便快捷的流程图
  12. ECMA Script 6_异步编程之 Promise
  13. 编写SHELL脚本--判断用户的参数
  14. spark on yarn详解
  15. 3、pandas的loc和iloc数据筛选
  16. 点击input触发弹出框的bug
  17. Beta冲刺——day5
  18. python中的 小数据池 is 和 ==
  19. 利用CSS生成精美细线Table表格
  20. sailsjs 不用写代码就能生成rest api 代码

热门文章

  1. UML类图 入门 (转载)
  2. tp5 模型中配置数据库连接信息
  3. ORA-12514: 监听程序当前无法识别连接描述符中请求的服务
  4. 破解CentOS7的root及加密grub修复实战
  5. pt-online-schema-change 最佳实践(转)
  6. .NET CORE 升级3.0遇到的问题the project must provide a value for configuration
  7. The Preliminary Contest for ICPC Asia Nanjing 2019 H. Holy Grail
  8. 生产环境碰到系统CPU飙高和频繁GC系统反应慢,你要怎么排查?(转)
  9. package的xml格式的改变
  10. 【转】Linux下tcp连接断开后不释放的解决办法