• Tomcat与Servlet工作流程


    什么是Tomcat

        Tomcatserver是一个免费的开放源码的Web 应用server,属于轻量级应用server

    什么是Servlet

        Servlet是在server上执行的小程序。,说白了Servlet就一个应用程序。用于提供服务。

    什么是JSP

        JSP全名为Java Server Pages,中文名叫javaserver页面。其根本是一个简化的Servlet设计

     

        jsp的本质就是Servlet

    当将jsp部署到Tomcat上的时候,訪问该页面的时候。会在tomcatworkCatalinalocalhost文件夹下产生*.java文件。

     

        假设单纯的用Servlet 的out.Println()来输出网页你肯定会发疯的 jsp就是为了解决问题而诞生的

     

        JSP与Servlet一样。是在server端运行的。通常返回给client的就是一个HTML文本。因此client仅仅要有浏览器就能浏览。

     

     

    通过了解以上的概念。来分析一下Servlet的运行过程。

     

    Servlet的生命周期:

     

        Init()方法:Servlet的生命周期中,仅运行一次init()方法。

    在Tomcatserver装入Servlet时运行的。负责初始化Servlet对象。能够配置server,以在启动server或客户机首次訪问Servlet时装入Servlet。不管有多少客户机訪问Servlet,都不会反复运行init()方法。

     

        Service()方法:也是Servlet的核心,负责响应客户的请求。

     

        常常看到Servlet里面有doGet()方法和doPost()方法。

    在这三个方法中。Servlet默认情况下,不管是get请求还是post请求,都会经过service()方法来处理,之后在转到相应的doGetdoPost方法上。

     

        Destroy()方法:仅运行一次。在server端停止且卸载Servlet时运行该方法。

    当Servlet对象退出生命周期时,负责释放占用的资源。

    一个Servlet在运行service()方法时可能会产生其它的线程,因此须要确认在调用destroy()方法时,这些线程已经终止或完毕。

     

    ServletTomcat上的运行流程:

     

        通过上面这个图,能够看出Servlet在接收client请求的时候。分别创建一个request对象和一个response对象。

    然后把HttpRequest对象与HttpResponse对象作为參数传给HttpServlet 对象。

     

    创建Servlet对象的时机:

        1、Servlet容器启动时:读取web.xml配置文件里的信息,构造指定的Servlet对象。创建ServletConfig对象,同一时候将ServletConfig对象作为參数来调用Servlet对象的init方法。

        2、在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会推断内存中是否存在指定的Servlet对象。假设没有则创建它。然后依据客户的请求创建HttpRequest、HttpResponse对象。从而调用Servlet对象的service方法。

        3、ServletServlet容器在启动时自己主动创建Servlet。这是由在web.xml文件里为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

     

        通过了解了Servlet的声明周期以及运行过程。在改动调试Servlet的时候。才知道什么时候须要又一次启动Tomcat,从而提高编码的速度。

     

     

  • 相关阅读:
    Yii2 高级模板不使用Apache配置目录,将前后台入口移到根目录
    物理路径,相对路径,绝对路径以及根目录
    其他ip无法访问Yii的gii,配置ip就可以
    move_uploaded_file() 函数
    DetailView内匿名函数不可用
    instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 , 返回true或者false
    php 判断变量函数
    [HNOI2008] GT考试
    [Bzoj1006][HNOI2008]神奇的国度
    [BZOJ 1005] 明明的烦恼
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6736934.html
Copyright © 2020-2023  润新知