head first servlets and jsp 笔记1

     Servlet本身并没有main()方法,所以必须要有其他Java程序去调用它的方法(如doGet(),doPost()),这个Java程序就是Web容器(Container)(Servlet受控于web容器)。同时,服务器得到的请求也是要交给web容器,由容器向Servlet提供http请求。Tomcat就是一个容器。

       但很显然,使用容器管理控制Servlet势必会产生额外的开销,那我们到底为什么使用容器呢?因为我们需要容器做一些必须的、和我们的业务无关的、复杂的工作,这样我们就可以安心写我们个人的代码了。

      容器做了哪些工作?

       1.通信支持。不用再自己写ServerSocket监听端口blabla了

       2.生命周期管理。容器控制着Servlet的生与死

       3.多线程支持。容器会自动地为它接收的每一个Servlet请求创建一个新的Java线程

       4.声明方式实现安全。

       5.JSP支持。容器负责把JSP代码翻译成Java

 

       容器如何处理请求?

       1.用户点击一个指向servlet的链接,而不是指向静态页面的链接,容器创建两个对象:HttpSerlvetResponse和HttpServletRequest

           2.容器根据url找到是哪个servlet,并为这个请求创建/分配一个线程,把上面创建的请求和响应两个对象分配给线程

           3.容器调用servlet的service()方法,service()方法根据请求的类型是get还是post调用相应的doGet()/doPost()方法。此处假设是doGet()方法

           4.doGet()方法创建一个动态页面,并把这个页面放到响应对象里

           5.线程结束后,容器把响应对象转换为Http响应,发回客户。删除请求和响应对象。

 

      Servlet 生命周期

           第一,加载并实例化
           第二,初始化
           第三,服务,
           第四,销毁。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值