Servlet的学习:Servlet简介以及生命周期

1.Servlet简介

	Servlet运行在服务器端,是由Web服务器负责加载的,是独立于平台和协议的Java应用程序。Servlet并不限制所使用的协议,但是使用最多的协议是HTTP协议。

2.Servlet的生命周期

servlet 运行在servlet容器中,由容器来管理其生命周期。servlet生命周期包含四个过程:

  • 加载和实例化
    加载和实例化servlet是由servlet容器来实现的。加载servlet之后,容器会通过Java的反射机制来创建servlet实例。

  • 初始化
    在servlet实例创建完之后,容器会调用servlet的init()方法来初始化该servlet对象。初始化的目的是让Servlet对象在处理客户端请求前先完成一些初始化工作。对于每个servlet实例只会调用一次init()方法。

  • 执行
    当客户端请求到来后,Servlet 容器首先针对该请求创建ServletRequest和ServletResponse两个对象,然后Servlet容器会自动调用Servlet的service()方法来响应客户端请求,同时把ServletRequest和ServletResponse两个对象传给service()方法。通过ServletRequest对象,Servlet实例可以获得客户端的请求信息,处理完请求后,则将响应信息放置在ServletResponse对象中。最后销毁ServletRequest和ServletResponse对象。

  • 清理
    当Servlet实例需要从服务中移除时,容器会调用destroy()方法,让该实例释放掉它所使用的资源,并将实例中的数据保存到持久的存储设备中。之后,Servet实例便会被Java的垃圾回收器所回收。在Servlet的整个生命周期中,初始化和销毁都只发生一次,service()方法的执行次数取决于Servet 被客户端所访问的次数。

下面对servlet生命周期中的3个重要方法做个说明。
(1) init()方法
该方法在javax.servlet. Servlet接口中定义。创建Servlet实例时会调用init()方法,在init()方法中完成类似于构造方法的初始化功能,其参数为ServletConfig的实例。init()方法结束后,Servlet就可以接受客户端请求。
在Servlet的整个生命周期中,只执行一次init()方法。
(2) service()方法
该方法用来响应客户端发出的请求。service()方 法使用ServletRequest 接口和ServletResponse接口的对象作为参数,其中,ServletRequest对象用来处理请求,ServletResponse对象用来发送响应。
serivice()方法执行时会检查HTTP请求的类型,并相应地调用doGet()、doPost()等方法请求。因此,通常的做法是,不使用sevice()方法,而直接使doGet()、 doPost()等方法来处理。
(3) destroy()方法
当不再需要Servet实例或重新装入时,destroy()方法被调用。 使用destroy()方法可以释放掉所有在init()方法中申请的资源。一个 Servlet 实例一旦终止, 就不允许再次被调用,只能等待被卸载。
destroy()方法通常用来执行 一些清理任务,在destroy()方法中一 般安排释放资源的代码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值