Web应用体系结构

       Serlet也需要帮助。请求到来时,必须有人实例化 Servlet ,或者至少要建一个新的线程处理这个请求,必须有人调用 Servlet 的doPost() 或doGet()方法。另外,对了,这些方法还有一些重要的参数-----HTTP请求和HTTP响应对象,所以必须有人把请求和响应交给  Servlet  。还得有人管理S而vletde生与死以及 Servlet 的资源 。这个 “人” 就是Web容器。 

      不知道大家有没有发现 Servlet是没有Main()方法的,那它是怎么运行的呢?Servlt受控于另一个Java应用,这个应用称为容器。Tomcat就是这样一个容器。如果Web服务器应用(如Apache) 得到一个指向某Servlet的请求(而不是其他请求,如请求一个普通的静态HTML页面),此时服务器不是把这个请求交给Servlet本身,而是交给部署该Servlet的容器,然后由容器向Servlet提供HTTP请求和响应、由容器调用Servlet的doGet()方法和doPost()方法。如图:


       

        容器为我们提供了什么呢?又带来了什么样的额外的开销呢?

         一、通信支持。利用容器提供的方法,我们能轻松地让Servlet与Web服务器对话。无需自己建立 ServerSocket 、监听端口、创建流等。容器知道自己与服务器的协议和我们自己的Web代码之间的API。我们只需考虑如何在Servlet中实现业务逻辑。

         二、生命周期管理。容器控制着Servlet的生与死。它会负责加载类、实例化和初始化Servlet、调用servlet方法,并使用Servlet实例能够被回收。有了容器的控制,我们就不用考虑资源管理啦、

         三、多线程支持。容器会自动地为它接收的每个Servlet 请求创建一个新的Java线程。针对客户的请求,如果Servlet已经运行完相应的HTTP服务方法,这个线程就可以结束了(也就是说会死掉)。但这并不是说我们就可以不用考虑线程的安全问题了,我们还是会遇到线程同步问题的。容器只能帮我们创建和管理多个线程。

        四、声明方式实现安全。利用容器,可以使用XML部署描述文件来配置(和修改)安全性,而不必将其硬编码写到Servlet(或其他代码)中。想象

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值