Servlet技术基于Request-Response编程模型 ---- HTTP协议也是基于请求响应模型
原理分析
Servlet中并没有main函数,由服务器来执行,也就是tomcat来调用来执行。
通过阅读api发现,servlet是一个接口,实现类 : GenericServlet ------ 子类 HttpServlet ------ 我们在编写Servlet 的时候继承HttpServlet即可。
Servlet生命周期
init(ServletConfig config) 初始化
ServletConfig 可以配置初始化数据,只能在配置Servlet获得,其它Servlet无法获得 ----- 每个Servlet程序都对应一个ServletConfig对象
ServletContext对象 为整个web应用共用的对象。
service(ServletRequest req, ServletResponse res) 提供服务方法
destroy() 销毁
1当tomcat服务器启动的时候,没有创建Servlet对象
2接下来当用户访问servlet的时候,执行init方法和service方法
3从第二次以后访问 tomcat 不会从新创建Servlet对象,也不会调用init ---- 每一次访问都会调用service ,会开一个新的线程去处理请求。
【注意:也就是说servlet不是线程安全的】
4当服务器重启或正常关闭时 调用destroy (正常关闭 shutdown.bat)强制关闭不会调用该方法,比如myeclipse中的强制关闭键。