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

        一:Servlet是什么

            Servlet是运行在Web服务器上的Java程序,作为处理来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。JSP在web服务器上要先转换成servlet,然后才能在JVM运行,并把结果拼接成浏览器可识别的文件(如html)传回浏览器显示。

        二:Servlet的应用场景

            单纯地对客户端的请求做处理时,如果我们用纯JSP文件(即:只有Java语句)来处理的话,还需要先转换为servlet才能运行。与其这样,我们可以直接定义servlet文件来处理来自页面的请求。

        三:Servlet的生命周期

              Servlet的生命周期主要有三个阶段:初始化——服务——销毁。

              初始化:主要包括 加载、配置、创建实例 三部分。
                       加载:在客户端首次请求该Servlet时,或着在web.xml配置该servlet属性 <load-on-startup>1</load-on-startup>则随着web服务器启动而加载
                       配置:为每个Servlet设置信息产生一个ServletConfig对象;

                       创建:调用Servlet接口的init()方法,并将产生的ServletConfig对象当作参数传入。在Servlet的生命周期中,仅执行一次init()方法。它在web服务器装入Servlet时执行,负责初始化Servlet对象。同一个类型的Servlet对象在web服务器中以单例的形式存在。                  

    init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法。

               服务:每一次请求来到容器时,会产生HttpServletRequest与HttpServlceResponse对象,并作为参数传给Service()。Service()负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要被调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。然后该方法自动进行匹配(根据request类型),调用doGet()或doPost()方法来处理请求。

    HttpServlet是GenericServlet的子类。 
    GenericServlet是个抽象类,必须给出子类才能实例化。它给 出了设计servlet的一些骨架,定义了servlet生命周期,还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的,也就是说 你有可能用非http协议实现它。 
    HttpServlet是子类,当然就具有GenericServlet的一切特性,还添加了doGet, doPost, doDelete, doPut, doTrace等方法对应处理http协议里的命令的请求响应过程。 
    一般没有特殊需要,自己写的Servlet都扩展HttpServlet 。

               销毁:在服务器端停止且卸载Servlet时调用destroy(),释放占用的资源。

  • 相关阅读:
    my15_ mysql binlog格式从mixed修改为row格式
    my14_mysql指定时间恢复之模拟从库
    my13_mysql xtrabackup备份的时间点
    必知必会的图论算法
    leetcde37. Sudoku Solver
    leetcode36. Valid Sudoku
    leetcode52. N-Queens II
    leetcode51. N-Queens
    First Missing Positive
    Maximum Gap
  • 原文地址:https://www.cnblogs.com/ygj0930/p/6582864.html
Copyright © 2011-2022 走看看