文档章节

Servlet如何工作

陈玄礼
 陈玄礼
发布于 2017/09/05 20:37
字数 620
阅读 2
收藏 1

用户从浏览器向服务器发起的一个请求通常会包含如下信息,http://hostname:port/contextpath/servletpath ,hostname和port用来与服务器建立TCP连接,后面的URL才用来选择在服务器中的那个子容器服务用户的请求。

在Tomcat 7中,这种映射工作由专门的一个类来完成,这个类就是org.apache.tomcat.util.http.mapper,这个类保存了Tomcat的Container容器中所有子容器的信息,org.apache.catalina.connector.Request类在进入Container之前,Mapper将会根据这次请求的hostname和contextpath将host和context容器设置到Request的mappingData属性中,所以在Request进入Container之前,对于它要访问哪个子容器就已经确定了。

MapperListener作为一个监听器加到整个Container容器的每个子容器中,这样只要任何一个容器发生变化,MapperListener都将会被通知到,相应的保存容器关系的MapperListener的mapper属性也会被修改。

下图描述了一次Request请求时如何到达最终的Wrapper容器的,我们现在知道了请求如何到达正确的Wrapper容器,但是在请求达到最终的Servlet前还要完成一些步骤,必须执行Filter链,以及通知你在web.xml中定义的listener。

输入图片说明

接下来就要执行Servlet的service方法了。通常情况下,我们自己定义的servlet并不直接去实现javax.servlet.servlet接口,而是去集成更简单的HttpServlet类或者GenericServlet类,我们可以有选择地覆盖相应的方法去实现要完成的工作。

Servlet的确已经能够帮我们完成所有的工作了,但是现在的Web应用很少直接将交互的全部页面用Servlet来实现,而是采用更加高效的MVC框架来实现。这些MVC框架的基本原理是将所有的请求都映射到一个Servlet,然后去实现service方法,这个方法也就是MVC框架的入口。

当Servlet从Servlet容器中移除时,也就表明该Servlet的生命周期结束了,这时Servlet的destory方法将被调用,做一些扫尾工作。

© 著作权归作者所有

上一篇: Servlet中的Listener
下一篇: Servlet体系结构
陈玄礼

陈玄礼

粉丝 4
博文 11
码字总数 10123
作品 0
朝阳
后端工程师
私信 提问
Servlet 工作原理解析

该文深入的介绍了 J2EE 中使用最广泛的 Servlet 技术运行原理,不管对于初学者还是高手来说都非常值得一看。 从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与...

红薯
2011/02/25
8.3K
10
Tomcat 容器与servlet的交互原理

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器...

watermelon11
02/25
175
0
走进JavaWeb技术世界4:Servlet 工作原理详解

本文出自我的公众号:程序员江湖。 满满干货,关注就送。 从本篇开始,正式进入Java核心技术内容的学习,首先介绍的就是Java web应用的核心规范servlet 转自:https://www.ibm.com/developer...

你的猫大哥
2017/09/22
0
0
Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配...

ArlenXu
2015/01/24
144
0
[转]通俗易懂Tomcat中Servlet的生命周期,讲的非常详细

我在上一篇文章里详细的介绍了 HTTP协议工作的流程,其中最重要的就是如何理解HTTP请求头和HTTP响应头,现在在这里再来详细的说明Tomcat 容器(即Servlet 容器)到底是如何 管理Servlet的,S...

晨曦之光
2012/04/11
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

秒杀系统思路

业务分析 技术挑战 请求响应要快:无论成功失败,需要尽快返回给用户 架构设计   前端:静态化   站点层:限制请求数   服务层:乐观锁写缓存   数据库CAP:读写高可用,一致性,扩容...

雷开你的门
7分钟前
5
0
最全的教育行业大数据解决方案,个个针对痛点

大数据的悄然兴起也带动了教育行业的革新,移动教育、云课堂等的出现,使得教育行业再次成为了可以中长期保持高景气的行业。然而,初涉数据领域的教育行业同时也面临着相当大的难题,还需要更...

朕想上头条
11分钟前
3
0
预约模块设计分析

1.预约功能描述: 预约是小程序中常见的一种商品管理系统,商家可根据商品或服务的特性,灵活设置预约细节,为用户提供线上预约服务,如场地预约,商品预定等,实现高效经营。 预约场景: ...

鱼煎
15分钟前
3
0
阿里云日志服务构建网站实时分析大盘实战

场景分析 挖掘数据价值是当前企业级网站共同面临的问题。买买网是一个电商平台网站,每天拥有大量的用户访问和购买记录。为了引导用户直接消费,提升购买率和转化率,不同的用户类别需要推荐...

阿里云官方博客
16分钟前
2
0
TL665xF-EasyEVM开发板硬件处理器、NAND FLASH、RAM

广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高...

Tronlong创龙
19分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部