欢迎来到天天文库
浏览记录
ID:16605581
大小:393.00 KB
页数:19页
时间:2018-08-23
《servlet_工作原理解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Servlet工作原理解析许令波,developerWorks中国网站最佳作者,现就职于淘宝网,是一名Java开发工程师。对大型互联网架构设计颇感兴趣,喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章,也喜欢记录下工作和生活中的一些思考。个人网站是:HYPERLINK"http://xulingbo.net"http://xulingbo.net。简介: Web技术成为当今主流的互联网Web应用技术之一,而Servlet是JavaWeb技术的核心基础。因而掌握Servlet的工作原理是成为
2、一名合格的JavaWeb技术开发人员的基本要求。本文将带你认识JavaWeb技术是如何基于Servlet工作,你将知道:以Tomcat为例了解Servlet容器是如何工作的?一个Web工程在Servlet容器中是如何启动的?Servlet容器如何解析你在web.xml中定义的Servlet?用户的请求是如何被分配给指定的Servlet的?Servlet容器如何管理Servlet生命周期?你还将了解到最新的Servlet的API的类层次结构,以及Servlet中一些难点问题的分析。Moretags:
3、 配置从Servlet容器说起要介绍Servlet必须要先把Servlet容器说清楚,Servlet与Servlet容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展,这一切都是为了适应工业化生产的结果。从技术角度来说是为了解耦,通过标准化接口来相互协作。既然接口是连接Servlet与Servlet容器的关键,那我们就从它们的接口说起。前面说了Servlet容器作为一个独立发展的标准化产品,目前它的种类很多,但是它们都有自己的市场定位,
4、很难说谁优谁劣,各有特点。例如现在比较流行的Jetty,在定制化和移动领域有不错的发展,我们这里还是以大家最为熟悉Tomcat为例来介绍Servlet容器如何管理Servlet。Tomcat本身也很复杂,我们只从Servlet与Servlet容器的接口部分开始介绍,关于Tomcat的详细介绍可以参考我的另外一篇文章《Tomcat系统架构与模式设计分析》。Tomcat的容器等级中,Context容器是直接管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响Ser
5、vlet的工作方式。图1.Tomcat容器模型从上图可以看出Tomcat的容器分为四个等级,真正管理Servlet的容器是Context容器,一个Context对应一个Web工程,在Tomcat的配置文件中可以很容易发现这一点,如下:清单1Context配置参数下面详细介绍一下Tomcat解析Context容器的过程,包括如何构建Servlet的
6、过程。Servlet容器的启动过程Tomcat7也开始支持嵌入式功能,增加了一个启动类org.apache.catalina.startup.Tomcat。创建一个实例对象并调用start方法就可以很容易启动Tomcat,我们还可以通过这个对象来增加和修改Tomcat的配置参数,如可以动态增加Context、Servlet等。下面我们就利用这个Tomcat类来管理新增的一个Context容器,我们就选择Tomcat7自带的examplesWeb工程,并看看它是如何加到这个Context容器中的。清
7、单2.给Tomcat增加一个Web工程Tomcattomcat=getTomcatInstance();FileappDir=newFile(getBuildDirectory(),"webapps/examples");tomcat.addWebapp(null,"/examples",appDir.getAbsolutePath());tomcat.start();ByteChunkres=getUrl("http://localhost:"+getPort()+"/examples/serv
8、lets/servlet/HelloWorldExample");assertTrue(res.toString().indexOf("
此文档下载收益归作者所有