一直对servlet是个什么有些疑惑,不清楚到底是什么,在知乎上看到一段感觉不错,记录下来

本以为servlet是很复杂的东西,事实上,servlet就是一个Java接口,interface! 打开idea,ctrl + shift + n,搜索servlet,就可以看到是一个只有5个方法的interface!

所以,网络协议、http什么的,servlet根本不管!也管不着!那servlet是干嘛的?很简单,接口的作用是什么?规范呗
servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destroy(),还有一个处理请求的service(),也就是说,所有实现servlet接口的类,或者说,所有想要处理网络请求的类,都需要回答这三个问题:

  • 你初始化时要做什么内容
  • 你销毁时要做什么
  • 你接受到请求时要做什么

这是Java给的一种规范!就像阿西莫夫的机器人三大定律、行尸走肉里Rick的那三个问题一样,规范!

servlet是一个规范,那实现了servlet的类,就能处理请求了吗?

答案是,不能。

你可以随便谷歌一个servlet的hello world教程,里面都会让你写一个servlet,相信我,你从来不会在servlet中写什么监听8080端口的代码,servlet不会直接和客户端打交道!

那请求怎么来到servlet呢?答案是servlet容器,比如我们最常用的tomcat,同样,你可以随便谷歌一个servlet的hello world教程,里面肯定会让你把servlet部署到一个容器中,不然你的servlet压根不会起作用。

tomcat才是与客户端直接打交道的家伙,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。

servlet到底是什么东西相关推荐

  1. euv光刻机有什么用_EUV到底是什么东西?光刻机上为何频频提到EUV

    原标题:EUV到底是什么东西?光刻机上为何频频提到EUV 光刻机是目前半导体芯片行业的核心设备,其技术含量.价值含量极高.光刻机设备涉及到系统集成.精密光学.精密运动.精密物料传输.高精度微环境控制等 ...

  2. 刚才溜达论坛,看到一个刚开的论坛,就是敏捷开发,那他到底是啥东西呢?

    刚才溜达论坛,看到一个刚开的论坛,就是敏捷开发,那他到底是啥东西呢? 敏捷开发,是在学习RUBY的时候看到的,现在学一下这个到底是啥意思-- 且看网友们的回复~ 看帖子里的种种回复,还是很迷糊~ 说的 ...

  3. 经常听到的servlet,到底是什么意思

    在接触servlet的时候,还不了解servlet到底什么意思,所以即便学了一些关于servlet的知识,但还是不能使用. 后来我去网上查了一下servlet的介绍,然后自己做了几点总结,突然发现自己 ...

  4. 辐射为啥计算机发展差,辐射危机!为什么总听人说电脑有辐射,那么辐射到底是什么东西?...

    原标题:辐射危机!为什么总听人说电脑有辐射,那么辐射到底是什么东西? 那么很多喜欢打电脑游戏的同学,可能经常会遇到这样一种情形,当你玩游戏玩的很嗨的时候,你妈冷不丁的就会来一句,别玩了,电脑有辐射,对 ...

  5. Servlet到底是个什么东西???【【博采众长】】

    先来看一下百度百科的定义: Servlet是JavaServlet的简称,称为小服务程序或服务连接器, 用java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式的浏览和生成数据,生 ...

  6. 大家平时天天说的分布式系统到底是什么东西?

    目录 1.从单块系统说起 2.团队越来越大,业务越来越复杂 3.分布式出现:庞大系统分而治之 4.分布式系统所带来的技术问题 5.一句话总结:什么是分布式系统设计和开发经验 6.补充说明:中间件系统及 ...

  7. 关于RundownProtect到底是什么东西

    RundownProtect这个字段相信只要是读过WRK源码的都会看过这个东西,这个字段在进程和线程的结构中都存在.最典型的例子就是对进程要进行什么操作的时候会先引用这个字段进行加保护,等操作结束后再 ...

  8. python到底是什么东西,python到底是什么语言

    Python是什么? Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,由Guido van Rossum于1989年底发明,第一个公开版本发行于1991年. 像Perl语言一样,P ...

  9. mysql 2.71828_数学中的e=2.71828……到底是什么东西?

    这里的e是一个数的代表符号,而我们要说的,便是e的故事.这倒叫人有点好奇了,要能说成一本书,这个数应该大有来头才是,至少应该很有名吧?但是搜索枯肠,大部分人能想到的重要数字,除了众人皆知的0及1外,大 ...

最新文章

  1. 在Linux下进行Apache+tomcat整合
  2. 第二次作业+105032014098
  3. 如何:向 Windows 窗体组件附加智能标记
  4. Docker 制作自定义化的Tomcat镜像
  5. 堆和栈的区别(转过无数次的文章)
  6. 【0】python核心编程,第二章
  7. paramiko模块实现堡垒机的思路
  8. 计算文件的hash值方法 | 使用powershell 以及 使用python
  9. 火星人谚语系列之四:对问题最深入的认识是知道答案
  10. C语言26L,LNBH26L - 双路LNBS电源和控制IC,带升压和I²C接口 - STMicroelectronics
  11. 使用gson解决java对象循环引用问题
  12. 【10.8】每日NLP学术论文推荐
  13. https默认端口_Java企业信息化平台O2OA如何配置服务器来启用HTTPS(SSL)
  14. Python爬虫 获得淘宝商品评论
  15. [NOIP2016 提高组] 玩具谜题
  16. yapi token注入漏洞
  17. 峰值电流检测电路设计/自己备忘
  18. 回答完数据库连接池原理,面试官跪着求我入职他们公司
  19. 【问题小记】“安装打印机驱动后,依然不可打印”故障排除
  20. Java 切换win10壁纸

热门文章

  1. IIR 数字滤波器全极点格型的MATLAB实现
  2. 高频电子技术——总结
  3. 1.0、Linux-入门概述
  4. 斯尔福 实验室 平面布局原则
  5. dolphinscheduler 3.0.1数据质量
  6. 关于黑马手机卫士的学习总结
  7. “一个好的药鼎对于炼药师来说,就如同武士手中的宝剑一般重要。”
  8. 联想服务器ready卡位置,联想闪联任意通ReadyComm的教程
  9. java天地劫_[修改]手机版回合制RPG游戏《殇界痕》吾爱版首发及PC修改方法
  10. springboot+vue交流互动系统(源码+文档)