zoukankan      html  css  js  c++  java
  • Servlet强化

    Servet的运行过程及生命周期

    Servlet程序是由WEB服务器调用,web服务器收到客户端的ServletWeb服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第(4)步,否则,执行第(2)步。

    访问请求后:

    (1)装载并创建该Servlet的一个实例对象。

    (2)调用Servlet实例对象的init()方法。

    (3)创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

    (4)WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。 

    Servet的生命周期:

    Servlet 的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。

    生命周期如下:

    • (1)通常情况下,服务器会在Servlet第一次被调用时创建该Servlet类的实例对象(servlet出生),创建出对象后立即调用init()方法做初始化操作;
    • (2)一旦被创建出来,该Servlet实例就会驻留在内存中,为后续对这个Servlet的请求做服务,每次对这个Servlet的访问都会导致Servlet中Service方法执行;
    • (3)当web应用被移除容器或者关闭服务器时,随着web应用的销毁,Servlet也会被销毁(servlet死亡)。在销毁之前服务器会调用Servlet的destroy方法做一些善后的工作。

    有3个方法代表了Servlet的生命周期:

    • init方法,负责初始化Servlet对象。
    • service方法,负责响应客户的请求(调用doGet或doPost等方法)。
    • destroy方法,当Servlet对象退出生命周期时,负责释放占用的资源。

    注:在Servlet的整个生命周期内,Servlet的init方法只有在servlet被创建时被调用一次,每次对这个Servlet的访问都会导致Servlet中Service方法执行。

    package com.vae.servlet;
     2 import java.io.IOException;
     3 import java.io.PrintWriter;
     4 import javax.servlet.ServletException;
     5 import javax.servlet.http.HttpServlet;
     6 import javax.servlet.http.HttpServletRequest;
     7 import javax.servlet.http.HttpServletResponse;
     8 //一般实现一个Servlet,只要继承HttpServlet类即可
     9 public class MyServlet extends HttpServlet {
    10     //Servlet初始化时调用的方法
    11     @Override
    12     public void init() throws ServletException {
    13         super.init();
    14         System.out.println("init....");
    15     }
    16     
    17     //Servlet被销毁时调用的方法
    18     @Override
    19     public void destroy() {
    20         super.destroy();
    21         System.out.println("destroy...");
    22     }
    23     //-------doGet/doPost 核心的业务处理方法(由service方法来调用)------------    
    24     @Override
    25     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    26             throws ServletException, IOException {
    27         //super.doGet(req, resp);
    28         doPost(req, resp);
    29         System.out.println("do service...");
    30     }
    31     
    32     @Override
    33     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    34             throws ServletException, IOException {
    35         //super.doPost(req, resp);
    36     }
    37 }
  • 相关阅读:
    web常用自动化库——selenium总结
    python协程总结
    python多进程总结
    python多线程总结
    Scrapy进阶知识点总结(六)——中间件详解
    Git用法总结
    Scrapy进阶知识点总结(五)——Settings
    Scrapy进阶知识点总结(四)——Item Pipeline
    Scrapy进阶知识点总结(三)——Items与Item Loaders
    Scrapy进阶知识点总结(二)——选择器Selectors
  • 原文地址:https://www.cnblogs.com/paoge/p/13659554.html
Copyright © 2011-2022 走看看