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

    Servlet生命周期可被定义为创建到毁灭的整个过程。以下是遵循的过程:

    • Servlet通过init()方法进行初始化
    • Servlet通过service()方法来处理客户端的请求
    • Servlet通过调用destroy()方法终止(结束)
    • 最后,Servlet是由JVM的垃圾回收器进行垃圾回收的

    init()

    init()方法被设计成只调用一次。在第一次创建Servlet时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化

    service()

    service方法是执行实际任务的主要方法。servlet容器(即web服务器)调用service方法来处理来自客户端(浏览器的请求),并把格式化的响应写回给客户端。

    每次服务器接收到一个Servlet请求时,服务器会产生一个新的线程并调用服务。service()方法检查HTTP请求类型(get,post,put,delete等),并在适当的时候调用doGet,doPost,doPut,doDelete等方法

    service()方法由容器调用,service方法在适当的时候调用doGet,doPost,doPut,doDelete等方法。所以,不用对service方法做任何动作,只需要根据来自客户端的请求类型来重写doGet()或doPost()即可。

    doGet()和doPost()方法是每次服务请求中最常用的方法

    doGet()

    GET请求来自于一个URL的正常请求,或来自于一个未指定method的html表单,它由doGet()方法处理

    doPost()

    post请求来自于一个特别指定了method为post的html表单,它由doPOst()方法处理。

    destroy()

    destroy()方法只会被调用一次,在Servlet生命周期结束时被调用。destroy方法可以让你的servlet关闭数据库连接、停止后台线程、把Cookie列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

    在调用destroy()方法之后,servlet对象被标记为垃圾回收。

    Servlet生命周期

    • 第一个到达服务器的HTTP请求被委派到Servlet容器
    • servlet容器在调用service()方法之前加载Servlet
    • 然后servlet容器处理由多个线程产生的多个请求,每个线程执行一个单一的Servlet实例的service()方法
  • 相关阅读:
    LeetCode 1245. Tree Diameter
    LeetCode 1152. Analyze User Website Visit Pattern
    LeetCode 1223. Dice Roll Simulation
    LeetCode 912. Sort an Array
    LeetCode 993. Cousins in Binary Tree
    LeetCode 1047. Remove All Adjacent Duplicates In String
    LeetCode 390. Elimination Game
    LeetCode 1209. Remove All Adjacent Duplicates in String II
    LeetCode 797. All Paths From Source to Target
    LeetCode 1029. Two City Scheduling
  • 原文地址:https://www.cnblogs.com/xslzwm/p/9561581.html
Copyright © 2011-2022 走看看