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
servlet是什么?servlet到底是啥?的更多相关文章
- javaweb项目jsp跳转servlet Error instantiating servlet class 问题
问题: HTTP Status 500 - Error instantiating servlet class RecommenderServlet type Exception report mes ...
- Servlet过滤器,Servlet过滤器创建和配置
第一:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的3个方法. 第一方法是过滤器中的init()方法用 ...
- Servlet简介与Servlet和HttpServlet运行的流程
1.Servlet [1] Servlet简介 > Server + let > 意为:运行在服务器端的小程序. > Ser ...
- Java Servlet系列之Servlet生命周期
Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...
- javaWeb中servlet开发(3)——Servlet生命周期
生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...
- Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)
本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...
- 报错:严重: Servlet.service() for servlet [jsp] in context with path [/20161116-Struts2-6] threw exception [/index.jsp (line: 13, column: 20) No tag "textfiled" defined in tag library imported with prefix
严重: Servlet.service() for servlet [jsp] in context with path [/20161116-Struts2-6] threw exception [ ...
- javaWeb中servlet开发(2)——servlet与表单
1.重写doGet方法 public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req, ...
- 报javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception异常 的解决方案
后台错误信息如下: javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception org.a ...
- Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...
随机推荐
- Solr新特性【4.x,5.x,6.x,7.x】
一.Solr4.x新特性 1.近实时搜索 Solr的近实时搜索[Near Real-Time,NRT]功能实现了文档添加到搜索的快速进行,以应对搜索快速变化的数据. 2.原子更新与乐观并发 原子更新功 ...
- Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程
一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threadin ...
- 百度地图公交线路查询,并绘制到地图上并获取所有路径经纬度点(可供echarts 路径图使用)
github地址 https://github.com/a1115040996/MyHTML/tree/gh-pages/BDMap 源代码 <!DOCTYPE html PUBLIC &quo ...
- send fd 无法传
string success = "1"; string urlstr = "http://localhost:8080/getfilecontent?filename= ...
- 查看服务器被访问最大的ip
网站有时会很卡,可以先看看哪些ip访问最多,一行命令就可以列出来,如下所示 netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c ...
- 【坑】【数组的坑】1、对象assign复制的假深度,2、数组slice复制的坑,3、还有数组map复制的坑
1.对象复制的坑 Object.assign() Object.assign() //浅复制 基本没用 跟直接用= 一样 Object.assign(true,{}) // 以为是深拷贝,其实只是一级 ...
- react 沉思录
react = Virtual DOM + component + data flow + jsx 核心是Virtual DOM结构的状态维护.渲染机制及UI系统的DOM组织功能: 基于Virtual ...
- 2017icpc beijing-I题-Colored Nodes
题意 给定一个n个点m条边的无向图,一开始点i的颜色为i,在第i+kn秒开始时,与节点i相邻的节点会被染成i的颜色(k为自然数) 定义D(i,j)第j秒结束时颜色为i的节点个数,求: $F(i)=\l ...
- arduino 开发视频
http://blog.uctronics.com/downloads/shields/ArduCAM_Camera_Shield_V2_DS.pdf http://www.arducam.com/k ...
- 小程序&app 注册登录、绑定
前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录. 用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号.为避免同一用户 ...