首先什么是Servlet:java
Servlet本质就是一个继承了HttpServlet的一个类文件,功能是在容器(服务器)根据客户端不一样请求给予相应的响应服务.web
Servlet的运行环境是Tomcat编程
Servlet提供服务的过程原理(Servlet生命周期):服务器
生命全过程:触发: URL请求触发多线程
加载: ClassLoader 加载相关须要用到的类 app
实例化: init()传递配置参数,为服务作准备webapp
初始化: 调用构造方法,建立servlet类的对象线程
服务: doGet() doPost() servlet()方法,提供服务xml
退出服务: destroy()死亡/销毁消除内存中的无用数据对象
从服务器开机开始,若是没有请求触发的话,就不会有相应的servlet对象
建立之后到结束,一直都只有一个servlet对象,而后以多线程的形式执行,多个请求到同一个servlet类
API中的过程:init()//只执行一次, 第一次初始化的时候public void init(ServletConfig config) throws ServletException
service()public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
destroy()//webapp 退出的时候public void destroy()
如下为Servlet生命周期图:
Servlet 编程接口 :
GenericServlet是全部Servlet的鼻祖
用于HTTP的Servlet编程都经过继承 javax.servlet.http.HttpServlet 实现
请求处理方法(应对Http协议请求):一、doGet 响应Get请求,经常使用
二、doPost 响应Post请求,经常使用
实例的个数:在非分布的状况下,一般一个Servlet在服务器中有一个实例
Servlet的多线程机制 :
Servlet体系结构是创建在Java多线程机制之上的,它的生命周期是由Web容器负责的。
当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,通常不会再实例化该Servlet类,也就是有 多个线程在使用这个实例。
Servlet容器会自动使用线程池等技术来支持系统的运行
注:不全面,只是我的记录.