[Jweb] Servlet 生命周期, TestLifeCycleServlet extends HttpServlet
Servlet 生命周期
05_HelloWorldServlet_3 张志宇 这个视频讲解了 :
如何将本地javadocs 连接到 eclipse中的方法。F1出现自己设置的很好了。06_SERVLET声明周期 张志宇 开头讲解到了 :
如何解决 自动生成 override 方法参数 arg0 而不是 req 的方法。并且F3可以自己带源码。
Servlet 06 笔记
Servlet 的生命周期
* 生命全过程 :
加载 ClassLoader
实例化 new 对象
初始化 init(ServletConfig)
处理请求 service doGet doPos
退出服务 destroy()
* 只有一个对象
* API 中的过程:
init() 只执行一次,第一次初始化的时候。 tomcat 具有线程池,多线程处理多请求。每个线程访问的都是同一个Servlet对象。
public void init (ServletConfig config) throws ServletException
service()
public void service(ServletRequest req, ServletResponse res) throws ServletException, java, io, IOException
destroy() webapps 退出的时候,停止的时候。就是对象在内存中消失的时候
public void destroy()
TestLifeCycleServlet
我们看后台 {
还没有调用 destroy() 这里面涉及 servlet 的工作原理
我们刷新。。。
我们servlet只构建一个对象。。。
你访问两千遍也不会构建两个对象。。。省内存。。。
Interface SingleThreadMode1 已经被废弃啦。。。!
init() 只执行一次,第一次初始化的时候。。。
ServletConfig 也就是说初始化Servlet的时候,他会告诉这个Servlet,你的配置,我是怎么样配你的
我是怎么把你给配起来的,怎么配起来的,你想一想,就在
<servlet>
<servlet-name>TestLifeCycleServlet</servlet-name>
<servlet-class>TestLifeCycleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestLifeCycleServlet</servlet-name>
<url-pattern>/TestLifeCycleServlet</url-pattern>
</servlet-mapping>
这么配的
所以ServletConfig在这个对象里面保存着,我们对于这个Servlet的配置信息
import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestLifeCycleServlet extends HttpServlet { public TestLifeCycleServlet() { System.out.println("Constructor!"); } @Override protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { System.out.println("doGet...!"); } @Override public void destroy() { System.out.println("destory!"); } @Override public void init() throws ServletException { System.out.println("init"); } }