当前位置: 代码迷 >> 综合 >> [Jweb] Servlet 生命周期, TestLifeCycleServlet extends HttpServlet
  详细解决方案

[Jweb] Servlet 生命周期, TestLifeCycleServlet extends HttpServlet

热度:97   发布时间:2023-12-14 09:14:54.0

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!");}@Overrideprotected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {System.out.println("doGet...!");}@Overridepublic void destroy() {System.out.println("destory!");}@Overridepublic void init() throws ServletException {System.out.println("init");}
}

  相关解决方案