Servlet详解(一)

一、C/S与B/S模式

  1.CS(Client Server):客户端模式,即需要用户安装有客户端,并使用客户端与服务器进行交互,我们常见的网络游戏,PC软件等都是采用的CS模式。

   优点:由于很多工作可以通过服务器处理后再发送给服务器,大大利用了用户PC的处理能力,提高了响应速度。且将客户端与服务器分离,利于维护。

   缺点:需要用户安装客户端,且由于系统不同,需要不同的版本以及各版本的维护,每次升级维护都需要把所有客户端更新。

  

  2.BS(Brower Server):浏览器模式,即用户使用浏览器通过域名来访问服务器,与服务器交互。我们日常中使用浏览器浏览的网页都是采用的eBS模式。

    优点:维护,升级简单,仅仅需要修改服务器。使用方便,用户可以直接通过浏览器访问,可拓展性好,web平台无关性。

 

  3.在Java Web中我们使用的为BS模式。

二、Servlet

  1.Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层,换言之,Servlet是一个接受客户端请求,并执行Servlet程序,返回响应的一个程序。

  2.Servlet的优点:

            Servlet作为贡献资源的单线程,使得系统资源被有效利用(不过线程不安全);

            Servlet有线程池的概念,利用多线程优点,事先与数据库建立连接,需要时则申请一个连接使用。总体来说大大提高了响应速度。

            是MVC的基础,其他很多框架都是基于他实现的,且直接将底层api暴露给程序员,更容易清楚mvc特点,可被封装。

  3.Servlet的缺点:

            web.xml配置麻烦,每一个Servlet都需要配置一下;

            doget,dopost都需要传入request,response两个与容器相关的参数,具备容器依赖性,测试不便;

  4.Servlet的运行过程 :

           发起请求--》进入web.xml文件找到Servlet--mapping中的url-pattern找到Servlet-name--》再到Servlet配置中通过Servlet-name找到Servlet-class--》如果没有配置load-on-start ,则先初始化Servlet--》根据请求的方式(get或者post)找到相关方法,或者进入Service,由service自行寻找。--》执行Servlet方法--》返回响应给请求者。

           下图为在web.xml中的寻找路径。

                    

 

三、Servlet的生命周期

      1.Servlet的初始化:调用构造器创建,但是再调用后,会自行调用init初始化对象,不过与构造器相同,init对于一个Servlet只能调用一次(存疑,不过没意义)

          (1)load-on-start:当tomcat server实例被启动成功时,就会直接随着server而创建,推荐使用,在创建时启动,而不是每次访问时Servlet是再创建。

          (2)当第一次访问Servlet时,被创建并初始化。

      2.Servlet的服务:

          (1)使用service时,每次请求都会调用service,而service会自动判断请求是doget还是dopost,并跳转到get或则post执行。

          (2)直接重写service,会直接进入service,不会进入doget或则dopost,不过虽然没有调用doget方式,但是类似doget方式(所有信息在url中)

      3.Servlet的结束:

          (1)一般情况下,Serlet对象并不会直接被销毁,而是等到服务器关闭时才被先于服务器关闭前销毁,基本用于关闭掉一些关键的释放代码,destory()。

 

              

           

posted @ 2019-05-10 17:16  千千万花世界  阅读(207)  评论(0编辑  收藏  举报