Java基础之Servlet

  • 千呼万唤始出来,那么开篇之前,读者们需要大概了解一下,什么是Servlet?
    1. Servlet,即Server Applet,全称Java Servlet。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
    2. 狭义上的Servlet是指Java语言实现的一个接口。
    3. 广义上的Servlet是任何实现了Servlet借口的类。

    看完上文后,相信大部分的读者已经知道Servlet是用来干什么的了。简单的说,Servlet就是服务器端用来处理请求和响应的代码块。但是,Servlet并不是一写出来就可以使用的,在某种程度上说,Servlet也需要“人”帮助才能发挥作用。

  • 是什么人帮助Servlet发挥作用?没错,就是web容器。
    1. Web容器帮助Servlet的概述如下:

      • 当新的请求到来的时候,必须由web容器实例化Servlet,或者至少创建一个新的线程来处理这个请求。
      • 必须由web容器调用servlet的**doPost()或者doGet()**方法处理该请求。
      • 当然,在请求的时候还需要传递两个参数给Servlet,即请求响应对象(HttpServletRequest/Response)。
    2. 那么,到底什么是Web容器?讲道理,市面容器产品有很多,比如tomcat、jetty等、

      • 其实,在服务器后台运行的Web服务应用程序(后台代码),每次得到一个指向Servlet的请求时,服务器(程序)并不是把这个请求直接交给该Servlet处理,而是交给部署该Servlet的Web容器。要由容器向Servlet提供请求或者响应,并且还要由容器调用Servlet的方法(doGet/Post)。

        在这里插入图片描述

  • 为什么要用容器统一管理Servlet,这样做有什么好处呢?
    1. 好处一,通信支持。利用容器提供的方法,能够轻松的让Servlet和服务器交互,而不必建立Socket来监听某个端口、创建流等。
    2. 好处二,生命周期的管理。Web容器控制着Servlet的生死,容器会负责类加载、实例化和初始化Servlet,调用相应的方法等,以使Servlet实例能够被GC回收。
    3. 好处三,多线程的支持。Web容器会自动地为每个Servlet请求创建一个新的Java线程。
    4. 好处四,JSP支持。其实JSP在某种程度上来说,就是Servlet。
  • 讲完容器,我们还是回到Servlet相关,并讲讲其生命周期。
    1. 大概流程:

      • Servlet类加载—>Servlet实例化—>调用init()方法—>调用service()方法—>调用destory()方法
        在这里插入图片描述
    2. Servlet实例化,一般是调用无参构造函数。

    3. 调用init方法,在Servlet整个生命周期只能调用一次,且必须在调用Service()之前完成。

    4. 调用Service()方法,在这个阶段,都是处理客户请求。

    5. 调用destory(),在Servlet被杀死之前(GC回收),有机会进行资源的清除处理。一生只能调用一次。

  • 讲了那么多,最后的生命周期在面试中经常被问到,准备面试的可以着重看,不懂的可以参考其他博文。

参考链接:

https://zh.wikipedia.org/wiki/Java_Servlet

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值