zoukankan      html  css  js  c++  java
  • 执行过程 —— WEB容器启动、执行到销毁全过程总结

    Step 1 —— 读取配置信息

    启动WEB项目时,容器(如Tomcat)会去读配置文件(web.xml)中的<listener/><context-param/>两个标签;

    Step 2 —— 创建监听类

    由容器创建<listener/>监听类实例,用于监听ServletContext、HttpSession的生命周期及属性变更;

    Step 3 —— 创建上下文

    由容器创建ServletContext(上下文)实例, 这时监听类实例会调用其contextInitialized(ServletContextEvent args)方法,并传入原先读取的<context-param/>键值对。在该方法中可以读取、操作ServletContext键值对(注意:这时WEB项目未完全启动完成,修改键值对等动作会比所有的Servlet都要早)

    ServletContext = ServletContextEvent.getServletContext();  

    Value = ServletContext.getInitParameter(Key);

    Step 4 —— 创建Servlet

    容器调用继承HttpServlet接口的类的构造方法创建Servlet

    Step 5 —— 创建ServletConfig

    容器创建ServletConfig对象(其中包含Servlet的初始化配置信息),并将ServletConfig对象与ServletContext对象关联。

    Step 6 —— 初始化Servlet

    容器调用Servlet对象的初始化init(ServletConfig config)方法,并传入ServletConfig参数初始化Servlet。

    Step 7 —— 接受请求

    当容器接到Servlet请求时,容器会创建ServletRequest和ServletResponse对象,然后调用service(HttpServletRequest,HttpServletResponse)方法,并传入参数。

    Step 8 —— 响应请求

    service()方法通过ServletRequest对象获得请求信息,并处理该请求,再通过ServletResponse对象生成响应结果。

    注:当Servlet容器把Servlet生成的响应结果发送给客户后,servlet容器会销毁ServletRequest和SevletResponse对象。

    Step 9 —— 销毁Servlet

    当Web应用被终止时,Servlet容器会先调用Web应用中所有的Servlet对象的destroy()方法,然后在销毁Servlet对象。此外容器还会销毁与Servlet对象关联的ServletConfig对象。在destroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭与数据库的连接。

  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9217461.html
Copyright © 2011-2022 走看看