- 简单认识:
理解:Servlet是一个Java接口。接口就是一种规范,这种规范能够帮助我们在Web上与服务器产生数据交互,从而生成动态的Web。
本质:Web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个面向请求/ 响应服务器的帮助程序,这个程序就是一个继承了HttpServlet的一个类文件。
功能:是在容器(服务器)根据客户端不同请求给予相应的响应服务.
环境:Servlet的运行环境是Tomcat
- Servlet提供服务的过程原理(Servlet生命周期):
生命全过程:
触发: URL请求触发
加载: ClassLoader 加载相关需要用到的类
实例化: init()传递配置参数,为服务做准备
初始化: 调用构造方法,创建servlet类的对象
服务: doGet() doPost() servlet()方法,提供服务
退出服务: destroy()死亡/销毁消除内存中的无用数据
从服务器开机开始,如果没有请求触发的话,就不会有相应的servlet对象,创建以后到结束,一直都只有一个servlet对象,然后以多线程的形式执行,多个请求到同一个servlet类
- Servlet 编程接口 :
用于HTTP的Servlet编程都通过继承 javax.servlet.http.HttpServlet 实现
请求处理方法(应对Http协议请求):1、doGet 响应Get请求,常用
2、doPost 响应Post请求,常用
实例的个数:在非分布的情况下,通常一个Servlet在服务器中有一个实例
- Servlet的多线程机制 :
Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有 多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行。
参考: