Servlet,Session和Cookie
Servlet
Servlet的生命周期
Servlet的生命周期很简单,只有一个主要的状态:初始化。如果Servlet没有初始化,那么要么正在初始化(运行其构造函数或init()
方法),正在撤销(运行destroy方法),要么就是还不存在。
Web容器首先加载Servlet类,然后初始化Servlet(运行其构造函数),接着调用init()
方法,它在Servlet的一生中只调用一次,而且必须在容器调用service()
之前完成。
接下来就需要调用service()
方法来处理客户的请求,每个请求都在一个单独的线程中运行。详细过程如下:用户点击一个链接,链接的URL指向一个Servlet;容器识别出请求指向的Servlet,创建请求对象和响应对象,并根据请求URL找到Servlet;然后容器为这个请求创建或分配一个线程,调用Servlet的service()
方法,此时会将响应和请求对象作为参数。这个时候service()
方法会根据HTTP方法确定要调用哪个Servlet中的方法(doGet,doPost等)。方法调用结束后Servlet使用响应对象将响应写至客户,响应通过容器传回,service()
方法结束。此时线程要么撤销,要么返回到容器管理的一个线程池,而请求和响应对象则失去了意义。