zoukankan      html  css  js  c++  java
  • Servlet生命周期

    近期在学习javaweb方面的知识,借鉴视频教程上的例子,留作备注:

    Servelet代码如下:

    package com.liuxgnu;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class TestServlet extends HttpServlet {
     
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
     
            /**
             *构造方法
             */
        public TestServlet()
        {
            System.out.println("Constructor");
        }
     
     
            /**
             *get请求处理
             */
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                                 throws ServletException, IOException
        {
            doPost(request, response); //转向post
        }
     
     
            /**
             *Post请求处理
             */
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                                  throws ServletException, IOException
        {
            System.out.println("doPost");
        }
     
     
            /**
             *销毁
             */
        @Override
        public void destroy()
        {
            System.out.println("destroy");
        }
     
     
            /**
             *初始化
             */
        @Override
        public void init() throws ServletException 
        {
            System.out.println("init");
        }
    }

    Web.xml就不写了.

    第一次请求Servlet的时候,后台打印:

    Constructor
    init
    doPost

    由此可以看出,首先执行构造方法,然后执行初始化,然后才执行Post/Get方法.
    而第二次访问Servlet的时候,并没有执行构造方法和初始化方法,那就说明,这个类已经生存,且听视频上老师的讲解说”①常规Servlet容器仅生成一个Servlet对象”,有些似懂非懂的样子,但从后台打印出来的结果看,确实只生成了一个对象.

    第二次请求Servlet的时候,后台打印:

    Constructor
    init
    doPost
    doPost

    注解:①常规Servlet容器仅生成一个Servlet对象
    非分布式情况下,一个服务器端只生成一个Servlet实例.

  • 相关阅读:
    .net core使用NLog+Elasticsearch记录日志
    .net core使用EasyNetQ做EventBus
    .net core使用Apollo做统一配置管理
    .net core使用App.Metrics+InfluxDB+Grafana进行APM监控
    .net core使用Ocelot+Identity Server统一网关验证
    .net core微服务之基于Docker+Consul+Registrator服务注册服务发现
    windows上禁止某个软件联网
    Windows修改命令行默认启动路径
    Win10对调Esc和CapsLock键
    animation模块的使用
  • 原文地址:https://www.cnblogs.com/liuxgnu/p/3535485.html
Copyright © 2011-2022 走看看