首先说说我们知道的服务器,比如 IIS, Tomcat, Jboss等.它们都与web利用有关,IIS是1种Web服务组件,包括Web服务器,FTP服务器,NNTP服务器和SMTP服务器; Tomcat属于轻量级Web服务器,中小型项目中我们常常用到; Jboss属于重量级的Web利用服务器,包括EJB容器和Web服务器,我们的ITOO项目用的就是Jboss.
我们来看看Web服务器和Web利用的关系.
Web服务器与Web利用属于不同的范畴,它们间需要借助标准的接口来协作,Servlet是主要的1个接口.
Servlet容器:
它是JavaWeb利用中最核心,最经常使用的组件.我们还记得在web.xml文件中配置过Servlet元素,这是由于客户要求访问特定Servlet前,Servlet容器需要创建1系列与Servlet有关的对象.我们来了解下这1进程.
客户端发出1个要求,有求就得有应啊,因而Servlet容器就站出来它说要接收,接收完要求得干活啊,因而它得解析这个要求,因而左创建1个ServletRequest对象,(包括了客户要求等信息).右创建1个ServletResponse对象.当Servlet容器调用特定Servlet的service方法的时候,ServletRequest和ServletResponse就被悄悄地送进去做参数了.特定的Servlet这下高兴了,从ServletRequest对象中获得客户要求信息,利用ServletResponse对象生成相应结果.Servlet容器1看,哇塞,结果出来了,转手就发给客户了.
Servlet容器是个神马玩意呢?好像它并没干多少活,就是要了客户的需求,造了两个小兵,让小兵背走需求去弄,它还告知小兵在service方法调用的时候,它要把需求倒背如流,弄完了就让另外一个小兵把结果给运回来.容器创造了对象并让对象调和工作,并能对外进行良好的沟通.啧啧啧,很牛.
说得好不如画的好,有图有真相.
Servlet接口:
所有的Servlet都实现了Servlet接口,接口中有5个方法.分别是:
Init();
Service();
destory();
getServletConfig();
getServletInfo();
其中,Init(),Service()和destory()是由容器调用的,在不同的Servlet生命周期阶段分别调用.容器初始化1个Servlet对象时,创建1个ServletConfig对象,包括这个Servlet的初始化参数信息.ServletConfig对象只对1个Servlet有效,不能被另外一个Servlet访问到.
在Servlet相干的对象中还有1个ServletContext对象,ServletContext和ServletConfig不同的是:ServletContext对任何Servlet都有效,是全局对象.我们会在下篇博客中对这2者进行详细的了解.