(JavaWeb笔记)Tomcat服务器启动+Servlet生命周期——关系分析

本文详细解读了Tomcat服务器启动流程,包括使用startup.bat命令解析web.xml映射关系,并介绍了Servlet的生命周期,从创建实例到destroy方法的调用,以及内存管理。重点关注Servlet的初始化与映射过程。
摘要由CSDN通过智能技术生成

目录

一、Tomcat服务器启动

二、Servlet生命周期


一、Tomcat服务器启动

        (1)使用命令startup.bat启动Tomcat服务器,Tomcat服务器查找扫描webapps目录下的web工程项目同时初始化Tomcat服务器配置参数的资源信息。

        (2)Tomcat服务启动连接成功后,不会执行创建Servlet实现类的实例对象,也就不会调用Servlet实现类的无参构造方法,而主要负责解析web.xml文件,将全部Servlet相关的映射信息中的<url-pattern>路径值与<servlet-class>完全限定名称值,解析后以键值对(key,value)形式存放在HashMap集合中,Tomcat不关闭或者不重启,HashMap集合装载映射数据一直存储。

        (3)HashMap集合只存放路径和类的对照关系,不是对象数据本身。


二、Servlet生命周期

        (1)实现jakarta.servlet.Servlet接口,需要重写5个实例方法,实现类必然需要创建对象才能调用。如下所示:

package jakarta.servlet;

import java.io.IOException;

public interface Servlet {
    void init(ServletConfig var1) throws ServletException;

    ServletConfig getServletConfig();

    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;

    String getServletInfo();

    void destroy();
}

        (2)第一次请求:用户在浏览器输入IP:端口/<url-pattern>路径值,点击回车。Tomcat服务器立刻接手到浏览器的request请求。

        (3)重点来了!重点来了!重点来了!——Tomcat依据请求携带参数的端口号找到webapps中与之对应的web应用软件,截取<url-pattern>路径值,作为HashMap集合中的key值进行查询匹配匹配无key就报错(404),匹配有key,就取出对应的value值(<servlet-class>完全限定名称值),利用Java反射机制,创建Servlet实现类的实例对象,同时只调用init()实例方法一次,初始化Servlet实例对象。再调用service()响应servlet请求。

        (4)第二次或多次请求:不再创建Servlet实例对象和调用init()实例方法,仅调用service()实例方法,请求n次,就调用service()实例方法。

        (5)关闭Tomcat服务:关闭前调用一次destroy()实例方法。destroy()因调用之前Sverlet对象还存在,通过对象才能调用destroy(),所以结束之后才执行销毁对象

        (6)HashMap是存储有Servlet对照映射关系的对象集合,该对象集合在堆内存中占有内存空间,关闭服务,就释放占有的内存资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电竞丶小松哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值