什么是Tomcat?

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

什么是Servlet?

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

什么是JSP?

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

jsp的本质就是Servlet。

当将jsp部署到Tomcat上的时候,訪问该页面的时候。会在tomcat的work\Catalina\localhost文件夹下产生*.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()方法来处理,之后在转到相应的doGet或doPost方法上。

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

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

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

Servlet在Tomcat上的运行流程:

通过上面这个图,能够看出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,从而提高编码的速度。

Tomcat与Servlet工作流程的更多相关文章

  1. [Servlet]Servlet工作流程及注意事项

    Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...

  2. 【Tomcat】Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  3. Servlet工作流程

    1.加载Servlet类 类加载器负责加载servlet类. 当Web容器接收到servlet的第一个请求时,将加载servlet类. 2.创建Servlet实例 Web容器在加载servlet类之后 ...

  4. tomcat匹配Servlet的流程(原创)

  5. Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制

    Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...

  6. tomcat中Servlet的工作机制

    在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法 ...

  7. 学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat

    学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat 2019-05-09   19:28:42 注:项目(MyEclipse)创建的时候选择:Web Service Pr ...

  8. Servlet工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  9. Struts2的工作原理及工作流程

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...

随机推荐

  1. 小甲鱼Python笔记(上)

    基于Python 3.4.3 一 二 三 四  基础 print 三版必须加括号,二版不用加 alt + n :上一条语句 alt + p :下一条语句 打印三条hello 没有大括号,用缩进来表示 ...

  2. css3实现立方体,并且自转效果

    先是HTML 一个父div包含四个绝对定位的div <div class='container container--realistic'> <div class='cube cub ...

  3. SQL Join简单介绍

    前沿 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等. 如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时 ...

  4. 【Sql Server】Sql语句整理

    use Person <--添加约束--> Alter table Student alter column Sno ) not null; Alter table Student Add ...

  5. OOD沉思录 --- 面向动作与面向对象 --- 避免全能类

    面向过程的软件开发通过非常集中化的控制机制来分解功能,在程序设计中表现就是大量的条件判断,深层次的循环嵌套等. 这种模式下,我们可以通过分析方法的参数,局部变量及其访问的全局变量来得到方法对数据的依赖 ...

  6. Java反序列化漏洞之殇

    ref:https://xz.aliyun.com/t/2043 小结: 3.2.2版本之前的Apache-CommonsCollections存在该漏洞(不只该包)1.漏洞触发场景 在java编写的 ...

  7. LibreOJ#143 质数判定 [Miller_Rabin]

    题目传送门 质数判定 题目描述 判定输入的数是不是质数. 输入格式 若干行,一行一个数 x. 行数不超过 $1.5\times 10^4$ 输出格式 对于输入的每一行,如果 x是质数输出一行 Y,否则 ...

  8. 洛谷P1291 [SHOI2002]百事世界杯之旅 [数学期望]

    题目传送门 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听, ...

  9. java 数组的基本概念

    1.数组的基本概念 数组指的是一组相关变量的集合.例如:如果说现在要定义100个整型变量,如果按照我们以前的思路,我们可能这样定义: public class demo { public static ...

  10. Spring MVC——搭建HelloWeb工程

    1.确保环境配置配置正确(Myeclipse(eclipse)+Tomcat) 2.新建web project 3.将Spring MVC所需的jar包粘贴到WebRoot/WEB-INF/lib下 ...