对Servlet的理解和认识
首先什么是Servlet:
Servlet本质就是一个继承了HttpServlet的一个类文件,功能是在容器(服务器)根据客户端不同请求给予相应的响应服务.
Servlet的运行环境是Tomcat
Servlet提供服务的过程原理(Servlet生命周期):
生命全过程:触发: URL请求触发
加载: ClassLoader 加载相关需要用到的类
实例化: init()传递配置参数,为服务做准备
初始化: 调用构造方法,创建servlet类的对象
服务: doGet() doPost() servlet()方法,提供服务
退出服务: 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协议请求):1、doGet 响应Get请求,常用
2、doPost 响应Post请求,常用
实例的个数:在非分布的情况下,通常一个Servlet在服务器中有一个实例
Servlet的多线程机制 :
Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。
当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有 多个线程在使用这个实例。
Servlet容器会自动使用线程池等技术来支持系统的运行
注:不全面,只是个人记录.