• [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");
        }
    }
    

  • 相关阅读:
    virtualenv的使用
    node.js报错:Cannot find module 'xxx'的解决办法
    mysql
    cProfile分析程序性能
    python实现一个无序单链表
    修改pycharm中的flask项目名遇到的坑
    Model class apps.goods.models.GoodsType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS
    已安装的nginx添加其他模块
    pip install 一个本地包时提示error: Microsoft Visual C++ 14.0 is required.
    解决adober reader已停止工作的问题
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786562.html
Copyright © 2020-2023  润新知