Servlet、Servlet容器、Tomcat、session都是些什么玩意儿?
相信大家学习过Java后,一定对容器不陌生,常见的容器类(集合类)有List、Set、Map,而Servlet容器,也是容器的一种,它是一种特殊的容器。
(List是有顺序的,常用的主要有Vector、ArrayList、LinkedList三个容器类; Set是无序的,其中不能包含重复元素,常用的主要有:HashSet、TreeSet;Map是以键值对的方式存储数据的一种容器类,常用的有:HashMap、HashTable、TreeMap。关于集合类的具体内容将在下一篇详细讲解。)
对比ArrayList,当我们设置一个 int 型的ArrayList数组,此时,这个List集合只能存放 int 型数据,同理,可以把Servlet容器想象成只能放Servlet类型的区域,在Servlet容器中可以存放很多个Servlet。见下图:
那么,对以上内容理解之后,我们再回过头来看一下较为抽象的定义,这时再看,就很容易理解了。
Servlet是什么?
- 含义:Servlet翻译过来是Java服务器端的小程序(对应applet客户端小程序)
- 特点:
1、servlet是在服务器端调用和执行
2、用java编写
3、按照Servlet规范开发,
4、功能十分强大,可以完成几乎所有的网站功能
5、学习JSP基础
Tomcat是什么?它和Servlet有什么关系 ?
- Servlet容器其实就是JavaWeb服务器,其中包含多个不同的Servlet;例如, Tomcat、Netty就是常见的Servlet容器
- servlet容器(Tomcat)与servlet是一对多关系。
session是什么?
- 理解了Tomcat和Servlet的关系后,session就很容易理解了,在每个Servlet中都可以有很多个session,每当一个新的浏览器发送请求,就会产生一个session。
-每个session都有独一无二的session id ,用来区分不同的浏览器,也就是说,任何两个session都是不一样的。
-【注意】:虽说理论上任何两个session都是不同的,但允许存在两个除session id 以外,功能完全相同的两个session;
而一个Servlet容器中的所有servlet功能都是不同的
如上图所示,Servlet容器中有多个Servlet,用户通过浏览器发出请求,在相应的servlet生成一个session。
最后,附上一张终极图,理解它,意味着你已经完全掌握了Servlet的原理(图片来源于网络)