Tomcat与Servlet工作流程
什么是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工作流程的更多相关文章
- [Servlet]Servlet工作流程及注意事项
Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...
- 【Tomcat】Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- Servlet工作流程
1.加载Servlet类 类加载器负责加载servlet类. 当Web容器接收到servlet的第一个请求时,将加载servlet类. 2.创建Servlet实例 Web容器在加载servlet类之后 ...
- tomcat匹配Servlet的流程(原创)
- Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制
Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...
- tomcat中Servlet的工作机制
在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法 ...
- 学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat
学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat 2019-05-09 19:28:42 注:项目(MyEclipse)创建的时候选择:Web Service Pr ...
- Servlet工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- Struts2的工作原理及工作流程
众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...
随机推荐
- django rest_framework中将json输出字符强制为utf-8编码
最近在和日本外包合作开发JIRA对接发布系统的版本单时, 遇到这个问题. 就是我们这边的输出浏览器显示为中文,而到了JIRA端就出现乱码. 查了文档,原来django rest_framework的默 ...
- 基于Token的授权(with srping mvc)
@Override public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOExce ...
- C++输入与输出
1 概述 C和C++都没有将输入和输出建立在语言中,C++将输入输出的解决方案放在类库中(由头文件iostream和fstream中定义的类) C++程序把输入和输出看作字节流.流充当了程序和流源流目 ...
- JS 数据类型转换以其他
JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...
- 原生js将数组分割成固定个数一组的小数组
reSetData(dataList,num) { let arr = []; let len = dataList.length; for (let i = 0; i < len; i += ...
- php计算两个坐标(经度,纬度)之间距离的方法
本文实例讲述了php计算两个坐标(经度,纬度)之间距离的方法.分享给大家供大家参考.具体如下: 这里使用php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米 function distan ...
- Wannafly挑战赛7 E - 珂朵莉与GCD
题目描述 给你一个长为n的序列a m次查询 每次查询一个区间的所有子区间的gcd的和mod1e9+7的结果 输入描述: 第一行两个数n,m之后一行n个数表示a之后m行每行两个数l,r表示查询的区间 输 ...
- JavaScript的类型体系
一:总体的类型系 基本类型:数字类型(number),字符串类型(string),布尔类型(boolean); 复合类型:对象(对象,函数,数组等); 无类型:null(有定义),undefined( ...
- 如何正确地使用Java的@deprecated标注
没有什么事情比看到一个没有任何说明的@deprecated标注更让人愤怒的事情了.这种做法只能让人困惑,我到底还要不要用这个已经‘废弃’的方法?如果开发者不希望某个方法再被人用的话,就要好好地为@de ...
- 【atcoder F - Namori】**
F- Namori http://agc004.contest.atcoder.jp/tasks/agc004_f Time limit : 2sec / Memory limit : 256MB S ...