zoukankan      html  css  js  c++  java
  • 简单完整讲述Servlet生命周期

    Servlet生命周期过程

    详解:

    1.加载web.xml文件——当前只去解析xml文件,知道servlet的存在,此时还没有去创建servlet。

    <!-- 声明servlet -->
        <servlet>
        <!-- servlet的别名 -->
            <servlet-name>first</servlet-name>
            <servlet-class>com.etime.servlet.FirstServlet</servlet-class>
        </servlet>
        
        <!-- 将servlet与URL绑定 -->
        
        <!-- servlet映射部分 -->
        <servlet-mapping>
            <servlet-name>first</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>

    2.创建构造函数——通过构造函数创建servlet对象
    在第一次访问servlet对应的URL时,执行FirstServlet构造函数,对servlet对象进行创建。

        public FirstServlet() {
            System.out.println("正在创建servlet对象");
        }

    3.调用init方法——通过init方法初始化servlet

        @Override
        public void init(ServletConfig config) throws ServletException {
            System.out.println("正在初始化servlet对象");
        }

    4.访问URL需要servlet提供服务,执行servlet方法——通过service或者doGet、doPost提供服务

        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //请求发来的参数
            String name = request.getParameter("name");
            //从前台发来的参数放在这个字符串里
            String html = "<h1 style = 'color:orange'>hello!"+name+"!</h1><hr>";
            System.out.println("返回浏览器的响应数据为:"+html);//这一步是为了更明了的显示运行步骤
            //服务器向浏览器返回的输出流
            PrintWriter out = response.getWriter();
            //通过out对象将html发送回浏览器
            out.println(html);

    5.销毁方法——在重启或关闭时自动对servlet进行销毁

        @Override
        public void destroy() { 
            System.out.println("正在销毁servlet对象");
        }

    总结:

    完整的servlet生命周期流程:
    1.加载web.xml文件。
    2.通过构造函数创建servlet对象。
    3.通过init方法初始化servlet。
    4.通过service,或者doGet、doPost提供服务。
    5.在重启或关闭时自动对servlet进行销毁。

    注意:通过这个例子我们可以知道tomcat全局中有且只有一个servlet对象,当一个servlet被访问时,之后的所有请求都被这一个servlet进行处理。

  • 相关阅读:
    简单了解enum
    PowerDesigner CDM 生成PDM时,外键的命名规则
    HADOOP docker(五):hadoop用户代理 Proxy user
    记一次云安全的安全事件应急响应
    docker学习笔记--重基础使用
    Elasticsearch学习随笔(二)-- Index 和 Doc 查询新建API总结
    Elasticsearch学习随笔(一)--原理理解与5.0核心插件部署过程
    ntopng-一款流量审计框架的安装以及应用
    Suricata规则编写——常用关键字
    浅谈运维中的安全问题-FTP篇
  • 原文地址:https://www.cnblogs.com/cwshuo/p/13578612.html
Copyright © 2011-2022 走看看